Ho un'idea di cosa potrebbe funzionare per te. Si baserà su alcuni presupposti, ma aiuterebbe a restringere l'elenco delle possibili caratteristiche identiche. Questo non sarebbe un processo automatizzato, ma richiederebbe di esaminare manualmente i duplicati. Sulla base dei commenti, sembra che gli strumenti automatizzati non confrontino gli attributi, quindi questo ti aiuterebbe a non eliminare accidentalmente le funzionalità.
Utilizzando ArcMap
(1) Crea una copia del tuo file di forma in caso di problemi.
(2) Aggiungi una colonna al tuo file di forma in doppio.
(3) Calcola l'area per ogni funzione usando il formato più descrittivo (più preciso) che puoi. Qualcosa in cui l'arrotondamento potrebbe non essere un problema.
(4) Esegui un riepilogo (riepilogo) su quella colonna. Assicurati di selezionare un identificatore univoco nel riepilogo e contrassegna sia il primo che l'ultimo.
(5) Nella tabella di output, cerca quei record in cui il campo di conteggio è maggiore di 1.
(6a) Controllare manualmente le funzionalità e ripetere il processo fino a quando non ci sono più duplicati.
(6b) Potresti semplicemente creare un elenco di quegli ID univoci ed eliminare le funzionalità tramite arcpy, ma hai la possibilità di avere due funzionalità non identiche con la stessa area.
Un'altra tecnica che utilizza ArcPy
Mentre stavo costruendo la risposta di cui sopra, ho pensato alla possibilità che in qualche modo i molteplici autori di questi dati possano aver effettivamente utilizzato gli stessi identificatori univoci per funzioni duplicate. In tal caso, potresti essere in grado di trovare duplicati attraverso il looping in arcpy.
Il modo in cui penserei di farlo usando ArcPy potrebbe essere tassare sul tuo sistema e richiedere un po 'di tempo.
(1) Crea una copia del tuo file di forma (nel caso di nuovo)
(2) Aggiungi una nuova colonna per indicare i duplicati. Qualcosa che prende come 'y' o 'n' o 0 o 1 o qualunque cosa funzioni.
(3) Crea un elenco in Python per memorizzare l'identificatore univoco.
(4) Esegui un cursore di aggiornamento ( arcpy.UpdateCursor('LAYERNAME')
). Per ogni record, controlla l'elenco per vedere se contiene quell'identificatore e segna la colonna per i duplicati, se è presente.
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) Quindi puoi confrontare o fare quello che vuoi con quelle colonne contrassegnate.
Probabilmente ci sono modi migliori per fare questi confronti, ma quelli sono due che credo dovrebbero funzionare o almeno iniziare.
modificare
Sulla base del commento di elrobis , è possibile utilizzare il rettangolo di delimitazione minimo per ridurre ulteriormente la possibilità di rimuovere funzioni errate.
Utilizzando ArcMap, è possibile eseguire lo strumento Geometria limite minima in Gestione dati. Dopo aver verificato le opzioni, penso che usare l' opzione CONVEX_HULL sarebbe probabilmente la cosa migliore.
Se si confrontano i campi MBG_APodX / Y1 , MBG_APod_X / Y2 con MBG_Orientation per i duplicati, si dovrebbe essere in grado di avere una buona idea delle funzionalità duplicate. Suggerirei di utilizzare il metodo di riepilogo che ho descritto sopra per confrontare. Scegli uno dei vertici (coordinate) dal rettangolo di delimitazione per trovare duplicati. Potresti ottenere alcune 'corrispondenze' accidentali, ma una volta aggiunti gli altri vertici più l'orientamento, sarebbe una scommessa abbastanza sicura che le caratteristiche dei risultati siano duplicate.
Anche se non l'ho usato e non sono del tutto sicuro dei risultati di questo strumento, potresti trovare più facile esaminare il file di forma risultante se hai utilizzato lo strumento Statistiche riassuntive in ArcMap. Sembra che tu possa riassumere più colonne in quel modo invece della mia opzione a colonna singola.
Non penso che ci sarebbe un modo completamente automatizzato di farlo senza avere la preoccupazione di eliminare una funzione non duplicata. Questi metodi dovrebbero aiutare a limitare il numero di funzionalità che dovresti rivedere manualmente però.