Tausende kleiner überlappender Polygone reparieren?

21

Ich verwende ArcMap 10.3.

Ich habe eine Schicht verschiedener Landnutzungstypen. Ich fand heraus, dass sich viele Polygone überlappen und dass dasselbe Polygon daher zwei verschiedene Landnutzungstypen aufweist.

Unter Verwendung der Antwort von @ radouxju habe ich eine Topologie für die Landnutzungsschicht erstellt (mit der Regel, dass keine Überlappungen auftreten dürfen). Dann habe ich zusammengeführt, um die großen überlappenden Polygone zu fixieren.

Ich habe jedoch Tausende von kleinen überlappenden Polygonen. Ich kann alle manuell beheben, was zeitaufwändig sein wird.

Gibt es eine schnellere Möglichkeit, alle diese Fehler zu beheben?

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben


Ich habe die Karte aktualisiert, um alle Landnutzungstypen anzuzeigen. Polygone überlappen sich gegenseitig. keine Splitter.

glänzend
quelle
2
Würde das Integrieren-Tool für Sie funktionieren?
Fezter
@Fezter Ich glaube nicht, weil die Polygone nicht die gleiche Fläche haben und ich nicht die gleiche XY-Toleranz für die gesamte Ebene verwenden kann.
glänzend
1
@aelwan: Was ist dein Ziel mit diesen Daten? Erstellen Sie diese Daten, um sie von anderen zu verwenden (als ob Sie der Urheber der Daten wären)? Oder versuchen Sie es "aufzuräumen", um es in einer Karte oder Analyse zu verwenden? Der Grund, den ich frage, ist, dass diese Daten wie Mülldaten aussehen. Es ist jenseits der GIS-Analyse, es muss vollständig neu digitalisiert werden und jemand mit Autorität (Arbeitswissen) muss fundierte Entscheidungen treffen, wo diese Grenzen sein sollen. Ansonsten würde ich die Daten einfach so lassen, wie sie sind.
AlexGIS
@alexGIS Ich stimme Ihnen voll und ganz zu, wie schlecht die Daten sind. Dies sind jedoch die BESTEN Daten, die ich erhalten habe. Ich versuche, für die Analyse zu reinigen.
glänzend

Antworten:

6

Die von @Adam Cara geäußerte Besorgnis ist sehr berechtigt. Als ich mir jedoch die Selbstkreuzung ansah, stellte sich heraus, dass die meisten von ihnen entweder dünne Teile an der Grenze zwischen zwei massiven Polygonen oder getrennte Teile / Inseln eines großen Polygons in einem anderen sind. In diesem Fall kann das Löschen von Überlappungen und das Zuweisen aufgelöster Überlappungen das Attribut des nächsten Nachbarn (je nachdem, was zuerst eintritt) bewirken.

Verarbeiten:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Prüfung:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Botschaft:

  • Ausführen: "Gelöste #" überschneiden D: \ Scratch \ test.shp ALL # INPUT
  • Startzeit: Freitag, 22. April, 10:16:07 Uhr 2016
  • Lese-Features ...
  • Cracking-Funktionen ...
  • Montagefunktionen ...
  • WARNUNG 000117: Warnung Leere Ausgabe generiert.
  • Erfolgreich beendet am Fr 22 Apr 10:16:09 2016 (Verstrichene Zeit: 2,34 Sekunden)

Beachten Sie, dass diese Meldung bedeutet, dass die Ausgabe von final Dissolve keine Selbstüberschneidungen enthält

Ergebnis:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing

FelixIP
quelle
1
Diese Lösung macht es "ordentlich", aber nicht "richtig". Wenn OP sich nicht darum kümmert, dass ein Bereich, der sich mit "Dairy" und "Sheep / Beef" überschnitten hat, jetzt in "Builtup / Parks / Others" und andere solche willkürlichen Neueinstufungen eingeteilt wird, die ich sehe, wenn ich die Eingabe mit der Ausgabe vergleiche Diese Lösung funktioniert. Abgesehen davon ist es ein eleganter Workflow, gute Arbeit.
alexGIS
1
Mit solchen Daten weiß niemand, was richtig ist
FelixIP
7

Wenn es sich bei Ihren Polygonen um Splitter handelt, können Sie sie mit dem Befehl "Entfernen" entweder in das Polygon mit größerer Fläche oder in die längste Kante einfügen.

Wenn es sich bei den Polygonen um Überlappungen handelt, gibt es möglicherweise einen einfacheren Weg, aber ich würde die Überlappungen auf einer separaten Ebene auswählen, sie dann wieder zusammenfügen, die Splitter erstellen und den Befehl "Entfernen" verwenden.

Bryan Waller
quelle
Vielen Dank für Ihre Zeit und Ihre Hilfe. Meine Polygone überlappen sich. Wie kann ich die Überlappungen auf einer separaten Ebene auswählen, um Ihrer Antwort zu folgen? Die Überlappungen werden als Bereichsfehler angezeigt, nachdem ich die Topologie erstellt habe.
glänzend
Führen Sie einfach die Überschneidung ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) auf dem Polygon-Layer aus. Das Ergebnis von Intersect sind alle Überlappungen in dieser Ebene.
iRfAn
@iRfAn Danke, ich fahre die Kreuzung und habe die Überlappung.
glänzend
@ Bryan Waller Ich habe versucht, dem zu folgen, was Sie vorgeschlagen haben: Ich habe die Überlappungen mit "intersect" auf einer separaten Ebene ausgewählt. Vereinige sie dann wieder in "ABER KEINE SILBER WURDEN ERSTELLT". Nachdem ich den Befehl "Entfernen" verwendet habe, kann ich immer noch feststellen, dass dasselbe Polygon zwei verschiedene Landnutzungstypen hat. Jede Hilfe wäre dankbar. Die Landnutzungsschicht finden Sie hier goo.gl/0aE3wq
glänzend
6
  1. Wählen Sie einen kleinen Bereich aus und konvertieren Sie ihn in zwei Formdateien, um festzustellen, ob dieser Prozess funktioniert.
  2. Erstellen Sie ein neues Feld mit dem Namen test (number) in s1 und s2.
  3. Schneide zwei Formdateien S1 und S2.
  4. Überlappende Bereiche werden in einer separaten Datei identifiziert, z. B. Common1 (schraffierter Bereich in Abbildung).
  5. Berechnen Sie den Feldtest als 1 in Common.
  6. Union S1 und Common
  7. Wählen Sie 1Bildbeschreibung hier eingeben aus dem Testfeld und löschen Sie den schraffierten Bereich.
  8. Jetzt s2 zusammenführen und gemeinsam nutzen. Mit dem Befehl Löschen können Sie den gemeinsamen Bereich löschen.
Shampa
quelle
@Shampe Danke für Ihre Hilfe. Die Überlappungen, die ich habe, befinden sich in demselben Shapefile, nicht in zwei Shapedateien.
glänzend
6

Haben Sie darüber nachgedacht, die einzelnen Landnutzungsklassen in separate Shapefiles zu unterteilen, um auf diese Weise mit ihnen zu arbeiten? Ich dachte zuerst daran, eine Kreuzung zu fahren, aber ich sah, dass das oben fehlgeschlagen ist. Wenn Sie jedoch sieben separate Shapefiles haben, können Sie diese möglicherweise einfacher bearbeiten.

Die Hauptfrage, die ich habe, ist, ob es Überlappungen gibt. Haben Sie eine Hierarchie, für welche Klasse gewinnt und am Ende angezeigt werden soll? Zum Beispiel: Wenn sich Cropping und Dairy überlappen, welche behalten Sie bei? Sobald Sie diese Hierarchie festgelegt haben, schneiden Sie jeweils zwei Klassen, beginnend mit der niedrigsten und endend mit der höchsten. Wenn Ihre Ausgabe an einem bestimmten Schnittpunkt leer ist, bedeutet dies, dass sie sich nicht überschneiden.

Adam Kara
quelle
2
Hier bringen Sie das wichtigste Thema zur Sprache: Wie klassifizieren Sie Überlappungen? Nur die Daten "ordentlich" zu machen, bedeutet nicht, dass sie "richtig" sind.
AlexGIS
@alexGIS Auch hier stimme ich Ihnen zu. Angesichts des Ziels dieser Analyse und der kleinen Fläche der überlappenden Polygone der Daten ist die Kategorie der Überlappung jedoch nicht das Hauptziel im Vergleich zur Korrektur der Überlappungen.
glänzend
Dies könnte aus einem anderen Grund eine gute Idee sein. Die Überlappungen können Änderungen der Feldgrenzen und ein zeitliches Beschneiden darstellen.
Nmtoken
5

Nachdem Sie eine Topologie erstellt haben, haben Sie die Fehler identifiziert.

In der Liste, die die Fehler anzeigt, können Sie alle Fehler des gleichen Typs auswählen, mit der rechten Maustaste auf diese Liste klicken und eine "Korrektur" auswählen. In Ihrem Fall wäre die Korrektur "Feature erstellen", wodurch ein neues Polygon erstellt wird, wenn sich zwei Polygone überlappen. Dies ist der erste Schritt (beachten Sie, dass Sie ein ähnliches Ergebnis erzielen können, indem Sie das Vereinigungswerkzeug mit Ihrer Landnutzungsebene als einzelne Eingabe verwenden und dann das Werkzeug "Mehrteilig zu Einzelteil" verwenden. In diesem Fall überlappen sich die Überlappungen weiterhin, sodass Sie eine der beiden Ebenen löschen müssen den Attributwert) oder konvertieren Sie Ihr Polygon in Linien und dann wieder in Polygon (aber wenn Sie das Attribut verlieren, benötigen Sie eine räumliche Verknüpfung, um die Attribute wiederherzustellen))

Der zweite Schritt würde darin bestehen, die kleinen Polygone zu entfernen. Das Problem ist, dass Sie nicht wirklich eine Regel haben, um zu entscheiden, welchen Attributwert Sie behalten möchten. Mein Lieblingswerkzeug ist dann das Entfernungswerkzeug , mit dem Sie auswählen können, zu welchem ​​benachbarten Polygon die kleinen Polygone zusammengeführt werden sollen (basierend auf der größten gemeinsamen Grenze oder dem größten Bereich).

Letzte Bemerkung: Wenn Sie eine Regel für die prioritäre Landnutzungsklasse haben, wählen Sie iterativ die kleinen Polygone (die keine Bezeichnung haben) nach Ort aus, um jede Landnutzungsklasse durch Verringern der Prioritätsreihenfolge zuzuweisen, und verwenden Sie den Feldrechner, um ihre zuzuweisen Etikette.

radouxju
quelle
4

Während ich mich mit anderen darüber einig bin, ob es sich um überlappende Polygone oder um Splitter handelt, zeigen Sie nach dem, was ich hier mit diesem Bild sehe, alle. Ich empfehle Ihnen, die Symbologiefarben für die Landnutzung zu ändern. Auf diese Weise können Sie sehen, welche gehen oder die andere sein sollte. Die eine Farbe, die Sie uns in Pink gezeigt haben, ist wirklich schwer zu lesen und kann für Sie zeitaufwändig sein.

Im zweiten Teil würde ich alle Überlappungs- oder Splitterpolygone auswählen und sie in ein neues Shapefile exportieren. Auf diese Weise können Sie sie identifizieren, was sie in Landnutzung sind.

PROBERT
quelle
Danke für Ihre Hilfe. Ich habe die Karte aktualisiert, um die Farben für alle Landnutzungen anzuzeigen.
glänzend
4

Wenn Sie über Spatial Analyst oder 3D Analyst verfügen, können Sie die Flächennutzungspolygone mithilfe des Werkzeugs (Polygon-zu-Raster-Konvertierung) in ein Rasterbild konvertieren, um sicherzustellen, dass keine überlappenden Polygone beendet werden, da sich die Pixel nicht überlappen. Konvertieren Sie dann das Raster mit dem Werkzeug (Raster in Polygon) zurück in Polygone, falls Sie es noch im Vektorformat benötigen. In diesem Fall wählen Sie eine hochauflösende Zellengröße (detaillierte Zellengröße), um Polygone mit guter Qualität zu erhalten. Sie müssen jedoch den Speicher berücksichtigen. Möglicherweise müssen Sie es mehrmals versuchen, indem Sie die Zellengröße ändern, bis Sie mit den Ergebnissen zufrieden sind. Möglicherweise müssen Sie die Ausgabepolygone etwas glätten, wenn sie nicht perfekt sind. Dies hängt jedoch davon ab, ob Sie mindestens die Standardlizenz haben für ArcGIS Desktop. Ich weiß, es ist keine leichte Aufgabe, aber es kann Ihr Problem lösen.

ahmadhanb
quelle
4

Überprüfen Sie die wenigen Lücken oder Überlappungen zwischen Polygonen, um die Toleranz zu ermitteln, und verwenden Sie das Integrationswerkzeug von Arctoolbox mit den richtigen Toleranzwerten.

Bildbeschreibung hier eingeben

Venug
quelle