Ich habe eine Idee, was für Sie arbeiten könnte. Es wird auf einigen Annahmen basieren, aber es würde helfen, Ihre Liste möglicher identischer Funktionen einzugrenzen. Dies wäre kein automatisierter Prozess, sondern würde ein manuelles Betrachten der Duplikate erfordern. Basierend auf den Kommentaren scheinen die automatisierten Tools keine Attribute zu vergleichen, sodass Sie Features nicht versehentlich löschen können.
Verwenden von ArcMap
(1) Erstellen Sie eine Kopie Ihres Shapefiles, falls etwas schief gehen sollte.
(2) Fügen Sie Ihrem Shapefile eine Spalte als Double hinzu.
(3) Berechnen Sie die Fläche für jedes Feature mit dem aussagekräftigsten (genauesten) Format, das Sie können. Etwas, bei dem Rundungen möglicherweise kein Problem darstellen.
(4) Führen Sie eine Zusammenfassung (Zusammenfassung) für diese Spalte aus. Stellen Sie sicher, dass Sie in der Zusammenfassung eine eindeutige Kennung auswählen und sowohl die erste als auch die letzte markieren.
(5) Suchen Sie in Ihrer Ausgabetabelle nach den Datensätzen, bei denen das Zählfeld höher als 1 ist.
(6a) Überprüfen Sie die Funktionen manuell und wiederholen Sie den Vorgang, bis keine Duplikate mehr vorhanden sind.
(6b) Sie könnten einfach eine Liste dieser eindeutigen IDs erstellen und die Features über arcpy löschen, aber Sie haben die Möglichkeit, möglicherweise zwei nicht identische Features mit demselben Bereich zu haben.
Eine andere Technik mit ArcPy
Während ich die obige Antwort konstruierte, dachte ich an die Möglichkeit, dass die mehreren Autoren dieser Daten tatsächlich tatsächlich dieselben eindeutigen Kennungen für doppelte Merkmale verwendet haben. WENN dies der Fall ist, können Sie möglicherweise Duplikate durch Schleifen in arcpy finden.
Die Art und Weise, wie ich dies mit ArcPy tun würde, könnte Ihr System belasten und ein wenig dauern.
(1) Erstellen Sie eine Kopie Ihres Shapefiles (falls erneut)
(2) Fügen Sie eine neue Spalte hinzu, um Duplikate zu kennzeichnen. Etwas, das wie ein 'y' oder 'n' oder 0 oder 1 oder was auch immer dauert, würde funktionieren.
(3) Erstellen Sie eine Liste in Python, um die eindeutige Kennung zu speichern.
(4) Führen Sie einen Aktualisierungscursor aus ( arcpy.UpdateCursor('LAYERNAME')
). Überprüfen Sie für jeden Datensatz Ihre Liste, um festzustellen, ob sie diesen Bezeichner enthält, und markieren Sie Ihre Spalte für Duplikate, falls vorhanden.
myList = []
rows = arcpy.UpdateCursor("layername")
for row in rows:
if str(row.UniqueIdentifier) in myList:
#value duplicated
row.DuplicateColumnName = "y"
else:
#not there, add it
myList.append(row.UniqueIdentifier)
rows.updateRow(row)
(5) Dann können Sie mit diesen markierten Spalten vergleichen oder tun, was Sie wollen.
Es gibt wahrscheinlich bessere Möglichkeiten, diese Vergleiche durchzuführen, aber das sind zwei, von denen ich glaube, dass sie funktionieren oder zumindest den Einstieg erleichtern sollten.
Bearbeiten
Basierend auf dem Kommentar von elrobis können Sie das minimale Begrenzungsrechteck verwenden, um die Wahrscheinlichkeit des Entfernens falscher Features weiter zu verringern.
Mit ArcMap können Sie das Werkzeug Minimale Begrenzungsgeometrie in der Datenverwaltung ausführen . Nach dem Überprüfen der Optionen denke ich, dass die Verwendung der Option CONVEX_HULL wahrscheinlich am besten ist.
Wenn Sie die Felder MBG_APodX / Y1 , MBG_APod_X / Y2 mit MBG_Orientation für Duplikate vergleichen, sollten Sie in der Lage sein, eine gute Vorstellung von doppelten Funktionen zu erhalten. Ich würde vorschlagen, die oben beschriebene Summarize- Methode zum Vergleich zu verwenden. Wählen Sie einen der Eckpunkte (Koordinaten) aus dem Begrenzungsrechteck aus, um Duplikate zu finden. Möglicherweise erhalten Sie einige zufällige "Übereinstimmungen", aber wenn Sie die anderen Scheitelpunkte plus Ausrichtung hinzufügen, ist es ziemlich sicher, dass die Ergebnismerkmale Duplikate sind.
Obwohl ich es nicht verwendet habe und mir der Ergebnisse dieses Tools nicht ganz sicher bin, ist es möglicherweise einfacher, das resultierende Shapefile zu untersuchen, wenn Sie das Tool " Zusammenfassungsstatistik" in ArcMap verwendet haben. Es sieht so aus, als könnten Sie auf diese Weise mehrere Spalten anstelle meiner Option für eine einzelne Spalte zusammenfassen.
Ich glaube nicht, dass es eine vollständig automatisierte Möglichkeit gibt, dies zu tun, ohne die Sorge zu haben, dass eine nicht doppelte Funktion gelöscht werden könnte. Diese Methoden sollten helfen, die Anzahl der Funktionen zu begrenzen, die Sie manuell überprüfen müssten.