Comment dissoudre des polygones qui se chevauchent?


10

J'ai une question concernant la dissolution des entités surfaciques dans ArcGIS 9.3. Je n'ai que la licence bare-bones et une connaissance extrêmement basique de VB.

J'ai un grand fichier de formes avec environ 4500 polygones et je veux savoir s'il est possible de dissoudre ceux qui se chevauchent? Je veux essentiellement transformer cette couche en un fichier de formes qui contient des zones distinctes, donc là où un polygone est seul, il restera mais où plusieurs polygones se chevauchent, ils se dissolvent en 1, chaque zone séparée ayant son propre ensemble d'attributs. Le fichier de formes change assez fréquemment et jusqu'à présent, je les ai tous passés en revue et dissous manuellement les zones qui se chevauchent à l'aide de l'outil d'édition, mais je suis sûr qu'il existe un moyen beaucoup plus rapide de le faire!

Avez-vous une idée de la façon dont cela pourrait être réalisé?


J'ai essayé d'utiliser l'outil de dissolution et de rejoindre la table des attributs exportés et cela fonctionne parfaitement! Je pensais que l'outil de dissolution ne fonctionnait que sur les attributs et non sur la localisation spatiale, ce qui est extrêmement utile à savoir. Le code ModelBuilder est également


Excellentes réponses. Brad Nesom, comment obtenez-vous la valeur de la table d'attributs d'origine dans le fichier de formes dissous?
Gunnar

J'ai besoin de ce que vous avez fait, mais lorsque j'exécute l'outil de dissolution, il fusionne tout ce qu'il présente dans ma forme et ne fonctionne donc pas. Comment l'avez-vous fait fonctionner?
Federico Gómez du

Réponses:


13

Il me manque peut-être quelque chose, mais l'outil de fusion de base (quelque part dans la boîte à outils de gestion des données) ne le fera-t-il pas pour vous? Pas besoin de jouer avec n'importe quel code comme dans la réponse de artwork21. Ouvrez simplement l'outil de dissolution, sélectionnez votre classe d'entités, ne sélectionnez aucun champ sur lequel dissoudre, puis décochez 'Créer des poygons en plusieurs parties', sinon tous vos poly deviendront un grand poly en plusieurs parties.

Je n'ai pas Arc devant moi en ce moment, mais si je lis bien votre question, je l'ai fait avant d'utiliser cette méthode. La seule préoccupation ici est les attributs du tableau. Vous connaissez les données, vous devrez donc choisir comment combiner chaque champ dans la partie Champs statistiques de l'outil.

Si ce processus est effectué très fréquemment ou si vous souhaitez qu'il se fasse automatiquement, faites-le avec le générateur de modèles et exportez-le vers un script, mais cet outil devrait prendre 10 secondes pour être rempli.


14

@ Tom Parker - MWrenn a raison.
Vous avez la possibilité de sélectionner un attribut sur lequel dissoudre (cela fera un attribut se dissoudra) ou aucun attribut (cela fera un fondu spatial).

choisissez les statistiques et les attributs que vous souhaitez reporter. (cela ne fonctionnera pas tout à fait comme vous le souhaitez).

les options

Avant de faire la dissolution. créer un nouveau champ et y calculer le FID.
Exportez ensuite un dbf de vos attributs et vous pouvez (les relier quelque peu avec les polygones par la suite).

Si vous avez besoin d'aide pour cela, faites-le moi savoir et je publierai plus de captures d'écran ou trouver de l'aide sur le centre de ressources arcgis.com.

Si vous remarquez dans la capture d'écran suivante, le nom est le même dans tous les polygones (9.3.1 ne semble pas se dissoudre correctement depuis arcmap). Essayez-le depuis arccatalog.

après dissoudre

Peut-être que quelqu'un d'autre aura une meilleure méthode.

La seule autre façon dont je peux penser est de sélectionner par emplacement (polygones qui se coupent).
Exportez-les dans un fichier séparé, puis dissolvez-les.
Ensuite, après avoir dissous chaque fichier, vous pouvez utiliser les couches de fusion gratuites (dans et-geo-wizards)


4

Vous pouvez créer un modèle dans Model Builder et exporter le script, puis copier et coller ce script dans un UIButtonControl dans ArcMap vba. Voir l'exemple de script ci-dessous.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 
  "MULTI_PART", "DISSOLVE_LINES"

End Sub
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.