Gruppieren von eckberührenden zusammenhängenden Polygonen mit ArcGIS Desktop?


12

Mit ArcGIS 10 habe ich eine Feature-Class, die ich aus einem Raster (GRID) konvertiert habe (Werkzeug "Raster in Polygon").

  • Es gibt ca. 180.000 Polygone.
  • Die Attributtabelle enthält ein [grid_code] -Feld, das ich aufbewahren muss.
  • Wenn ein oder mehrere Polygone aneinander grenzen und die Ecken UND berühren, haben sie denselben [grid_code] -Wert, dann möchte ich sie (im Grunde genommen eine Überblendung) in einem Polygon (Datensatz) zusammenfassen.
  • Dann muss ich die Fläche des gruppierten Polygons berechnen.

Mit dem Werkzeug "Nach Position auswählen" kann ich die zu gruppierenden Polygone erfolgreich auswählen. Wie konvertiere ich sie dann in EIN Polygon, wobei der [grid_code] beibehalten wird?


3
Haben Sie die Lauf betrachtet Region Group Befehl , bevor die Umwandlung der Rastern in Polygone?
Kirk Kuykendall

1
Kirk hat vollkommen recht: Sie möchten diese Berechnung mit dem ursprünglichen Raster durchführen, in dem sie schnell und effizient ist, und nicht mit dem Ausgabevektorformat, in dem sie langsam und schmerzhaft ist.
whuber

2
Vielen Dank, dass Sie Kirk und Bill. Ja, Region Group ist das richtige Werkzeug. Leider führt die Verwendung der Regionsgruppe in meinem großen Dataset zu horizontalem Striping, einem bekannten Spatial Analyst-Fehler. Diese Streifen wurden bereits im Dezember 2009 dokumentiert. In ArcGIS 10 sind diese Probleme jedoch noch vorhanden. Hier können Sie alles darüber lesen: [link] ( forums.arcgis.com/threads/… ) Meine Aufgabe besteht darin, die Ausgabe des Werkzeugs "Regionsgruppe" als GRID in einen guten, altmodischen ArcInfo-Arbeitsbereich zu schreiben. Das scheint es zu beheben!
18.01.12

Ohne diese Umgehung müssten Sie angesichts des RegionGroup-Fehlers eine 2 × 2-Brennpunktsortenberechnung durchführen, um potenzielle Ecken zu identifizieren (die Sorte muss 3 oder 4 sein), und diese dann verwenden, um eine Tabelle potenzieller Ecken zu erstellen. Eckbeziehungen zwischen den Polygonen, die die Suche nach eckberührenden Polygonen (stark) rationalisieren könnten. Was für ein Schmerz ...
whuber

Denken Sie daran, dass Sie, wenn die Polygone nur einen einzigen Scheitelpunkt gemeinsam haben, eine Selbstüberschneidung einführen und dadurch die Geometrie ungültig machen.
Jim B

Antworten:


2

Sie können mit Hilfe des zusammenhängenden Polygone mit gemeinsamen ID - Werten auflösen auflösen Werkzeug .

  1. Wählen Sie Ihr Gittercodefeld als "Dissolve_Field (optional)"
  2. Aktivieren Sie am unteren Rand des Werkzeugformulars das Kontrollkästchen "Aufgeteilte Linien (optional)".
  3. Bereichsfeld erstellen
  4. Klicken Sie mit der rechten Maustaste auf das Bereichsfeld und wählen Sie Geometrie berechnen

2

Das sind viele Polygone. Ich würde auch zuerst eine Lösung im Rasterformat finden, wenn die Topologie einfacher zu handhaben ist. Wenn Sie jedoch keinen Code schreiben möchten, können Sie:

  1. Wählen Sie einen bestimmten Rastercode aus.
  2. Puffern Sie diesen Grid-Code um einen sehr kleinen Betrag (Option für zusammengeführte Puffer)
  3. puffern das ergebnis negativ um das selbe sehr kleine ca.

Die Geometrie wird leicht abgerundet.

Um eine einzelne Ebene zu erstellen, schneiden Sie die resultierenden Rastercode-Ebenen und entfernen Sie die Splitterpolygone.


-1

Ich persönlich würde Code schreiben, der die Polygone durchläuft und die 4 Eckkoordinaten eines Polygons überprüft, die mit allen anderen Polygonecken identisch sind, und es rekursiv als "Fülle als solches" bezeichnen.

Ich mache dies mit netCDF-Gittern, um entsprechend ähnliche Polygone zu erstellen.

Eine andere Möglichkeit wäre, dies programmatisch an der Wurzel mit dem Raster zu tun.


Kommentare wurden gelöscht, wenn sie zu sinnlosem Zank und / oder Rauschen geführt haben, und der gesamte Satz ist nicht mehr zu retten.
Mapperz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.