Ist es möglich, jede Geometrie in einem Feature-Layer eindeutig zu identifizieren?
Im Wesentlichen habe ich einen Polygon-Feature-Layer mit vielen Datenzeilen, die durch dieselbe Geometrie dargestellt werden. Ich möchte 1 Zeile für jede eindeutige Geometrie. Daher suche ich nach einer sofort einsatzbereiten Methode, um Attribute basierend auf der Form der Geometrie zu kombinieren.
Ich komme aus einer Postgres-Welt und kann dieses Problem dort lösen, aber ich weiß nicht, wie ich es machen soll (oder ob es möglich ist), es nicht programmatisch mit ESRI-Tools zu machen.
arcgis-desktop
arcmap
arcgis-10.0
geometry
Dylan Hettinger
quelle
quelle
Antworten:
Wenn Sie über eine erweiterte Lizenz verfügen, können Sie Identisch suchen oder Identisch löschen verwenden .
Beide können zum Suchen / Löschen von Features mit identischen Attributen oder, wenn das Feld "Form" angegeben ist, identischen Geometrien verwendet werden.
Wenn Sie keine erweiterte Lizenz haben, ist dieser Beitrag hilfreich.
Kurz gesagt, Sie fügen zwei Felder für X, Y in Ihre Attributtabelle ein und führen eine Überblendung für diese Felder aus.
Wenn Sie Polygone haben, die denselben Schwerpunkt haben, aber geometrisch nicht identisch sind, können Sie zwei weitere Felder hinzufügen (Umfang und Fläche). Das sollte ausreichen, um für fast alle Normalfälle identische Geometrien zu identifizieren. Siehe @ whubers Kommentare unten.
quelle
Ich habe einen Datensatz basierend auf Umfragedaten. Mein Problem ist, dass alte Features nicht immer entfernt werden, bevor die neuen Umfrageaufnahmen importiert werden. Daher haben wir 'Duplikate' mit unterschiedlicher Geometrie: IE die Umfrageaufnahmen können 1/4 ft voneinander entfernt sein. Bei einem 12000-Feature-Dataset ist es schwierig, die einzelnen Elemente zu vergrößern und zu identifizieren. Verwenden von ArcMap Basic 10.2: Hier ist ein Hacky-Modell, das ich mir ausgedacht habe.
Ich habe das Rad neu erfunden. Außerdem war ich frustriert über Model Builder und habe im Grunde genommen die ganze Sache verpatzt. Es muss eine elegantere Lösung geben. Kritik und Anregungen nehme ich gerne entgegen.
Außerdem scheint dies nur in Model Builder korrekt zu funktionieren. Ich benutze eine Toolbox und speichere die Pufferebene nicht.
quelle
Ich habe seit einiger Zeit nach einer Antwort auf dieselbe Frage gesucht, um die Abflachung des Problems überlappender Pufferpolygone zu überwinden, und denke, ich habe eine robuste Lösung dafür gefunden. In der Tat @ Whubers Kommentar,
on @ Pauls Antwort war für mich der Haupttrieb, es weiter zu versuchen. Es wird der ARE_IDENTICAL_TO- Operator des Spatial Join-Tools verwendet , da dieser unter anderen identischen Detektoren am effizientesten ist. Hier sind die Schritte:
Die folgenden Schritte können auf zwei Arten ausgeführt werden, WITH Python oder WITHOUT:
MIT PYTHON
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
.Beachten Sie, dass ich die zweite Kopie des Dummy-OID-Felds verwende, in meinem Fall EX_OID_1.
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. Das Ergebnis zeigt Ihnen die einheitlichen Merkmale der überlappenden Teile. Es gibt hier jedoch eine Größenbeschränkung von 30.000 Zeichen. Um dieses Problem zu beheben, müssen Sie die Schritte "ohne Python" ausführen.OHNE PYTHON
Verwenden Sie das Tool "Häufigkeit", um eindeutige Werte in der zweiten Kopie des OID-Dummy-Felds aufzulisten, in meinem Fall EX_OID_1.
Verknüpfen Sie zuletzt das Feld OBJECTID der ursprünglichen Feature-Class mit der Ausgabe von EX_OID_1 des Frequenz-Tools, indem Sie die Option "Nur übereinstimmende Datensätze beibehalten " auswählen.
quelle