Regroupement de polygones contigus touchant les coins à l'aide d'ArcGIS Desktop?

12

À l'aide d'ArcGIS 10, j'ai une classe d'entités que j'ai convertie à partir d'un raster (GRID) (outil raster vers polygone).

  • Il y a env. 180 000 polygones.
  • La table attributaire contient un champ [grid_code] que je dois conserver.
  • Si un ou plusieurs polygones sont contigus avec des coins touchant ET qu'ils ont la même valeur [grid_code], alors je voudrais les regrouper (une dissolution essentiellement) en un seul polygone (enregistrement).
  • Ensuite, je dois calculer l'aire du polygone groupé.

À l'aide de l'outil Sélectionner par emplacement, je suis en mesure de sélectionner avec succès les polygones que je dois grouper, mais comment puis-je les convertir en UN polygone, tout en préservant le [code_grille]?

mjn
la source
3
Avez-vous envisagé d'exécuter la commande Groupe de régions avant de convertir les rasters en polygones?
Kirk Kuykendall
1
Kirk a tout à fait raison: vous voulez faire ce calcul avec la grille d'origine, où il sera rapide et efficace, plutôt que dans le format vectoriel de sortie, où il sera lent et douloureux.
whuber
2
Merci Kirk et Bill. Oui, le groupe de régions est le bon outil. Malheureusement, l'utilisation du groupe de régions sur mon grand ensemble de données provoque un entrelacement horizontal, une erreur connue de Spatial Analyst. Ces rayures ont été documentées dès décembre 2009, mais maintenant, avec ArcGIS 10, ces problèmes existent TOUJOURS. Vous pouvez tout lire ici: [lien] ( forums.arcgis.com/threads/… ) Mon travail consiste à écrire la sortie de l'outil Groupe de régions dans un bon ancien ArcInfo Workspace sous forme de GRID. Cela semble le réparer!
mjn
Sans cette solution de contournement, et compte tenu du bogue RegionGroup, vous devrez effectuer un calcul de variété focale 2x2 pour identifier les coins potentiels (la variété doit être 3 ou 4), puis les utiliser pour créer un tableau des coins potentiels à les relations entre les coins des polygones, ce qui pourrait (considérablement) rationaliser la recherche de polygones touchant les coins. Quelle douleur ...
whuber
Gardez à l'esprit que si les polygones ne partagent qu'un seul sommet, vous introduisez une auto-intersection et invalidez ainsi la géométrie.
Jim B

Réponses:

2

Vous pouvez dissoudre des polygones contigus avec des valeurs id communes à l'aide de l' outil Dissoudre .

  1. Sélectionnez votre champ Grid code comme votre "Dissolve_Field (facultatif)"
  2. En bas du formulaire d'outil, cochez la case "Lignes non fractionnées (facultatif)".
  3. Créer un champ de zone
  4. Cliquez avec le bouton droit sur le champ de la zone et sélectionnez Calculer la géométrie
oeuvre21
la source
2

Cela fait beaucoup de polygones. Je trouverais également une solution au format raster en premier lorsque la topologie est plus facile à gérer. Mais si vous ne voulez pas écrire de code, vous pouvez:

  1. Sélectionnez un code de grille donné.
  2. tampon ce code de grille par une très petite quantité (option tampons fusionnés)
  3. tampon le résultat négativement par le même très petit environ.

Il y aura un léger arrondi dans la géométrie.

Pour créer une seule couche, coupez les couches de code de grille résultantes et nettoyez pour supprimer les polygones de ruban.

AnserGIS
la source
-1

Personnellement, j'écrirais du code qui faisait une boucle à travers les polygones et vérifiais que les 4 coordonnées de coin d'un polygone étaient les mêmes que tous les autres coins de polygone et l'appellerais récursivement - Remplissage par inondation en tant que tel.

Je le fais avec des grilles netCDF pour créer des polygones similaires similaires.

Une autre option consisterait à le faire par programme à la racine avec la grille.

Poilu
la source
Les commentaires ont été purgés lorsqu'ils se sont dégradés en querelles inutiles et / ou en bruit, et l'ensemble entier est irrécupérable.
Mapperz