J'ai une idée de ce qui peut vous convenir. Cela va être basé sur certaines hypothèses, mais cela aiderait à affiner votre liste de fonctionnalités identiques possibles. Ce ne serait pas un processus automatisé, mais il faudrait examiner manuellement les doublons. Sur la base des commentaires, il semble que les outils automatisés ne comparent pas les attributs, ce qui vous aiderait à ne pas supprimer accidentellement des fonctionnalités.
Utilisation d'ArcMap
(1) Faites une copie de votre fichier de formes en cas de problème.
(2) Ajoutez une colonne à votre fichier de formes sous forme de double.
(3) Calculez l'aire de chaque entité en utilisant le format le plus descriptif (le plus précis) possible. Quelque chose où l'arrondi peut ne pas être un problème.
(4) Exécutez un résumé (résumé) sur cette colonne. Assurez-vous de sélectionner un identifiant unique dans le résumé et marquez le premier et le dernier.
(5) Dans votre tableau de sortie, recherchez les enregistrements dont le champ de comptage est supérieur à 1.
(6a) Vérifiez manuellement les fonctionnalités et répétez le processus jusqu'à ce qu'il n'y ait plus de doublons.
(6b) Vous pouvez simplement créer une liste de ces identifiants uniques et supprimer les fonctionnalités via arcpy, mais vous courez la chance d'avoir éventuellement deux fonctionnalités non identiques avec la même zone.
Une autre technique utilisant ArcPy
En construisant la réponse ci-dessus, j'ai pensé à la possibilité que les multiples auteurs de ces données aient en fait utilisé les mêmes identificateurs uniques pour les fonctionnalités dupliquées. SI c'est le cas, vous pourrez peut-être trouver des doublons en bouclant dans arcpy.
La façon dont je penserais à le faire en utilisant ArcPy pourrait être lourde de conséquences pour votre système et prendre un peu de temps.
(1) Faites une copie de votre fichier de formes (au cas où encore)
(2) Ajoutez une nouvelle colonne pour indiquer les doublons. Quelque chose qui prend comme un «y» ou «n» ou 0 ou 1 ou quoi que ce soit qui fonctionnerait.
(3) Créez une liste en python pour stocker l'identifiant unique.
(4) Exécutez un curseur de mise à jour ( arcpy.UpdateCursor('LAYERNAME')
). Pour chaque enregistrement, vérifiez votre liste pour voir si elle contient cet identifiant et marquez votre colonne pour les doublons s'il est là.
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) Ensuite, vous pouvez comparer ou faire ce que vous voulez avec ces colonnes marquées.
Il existe probablement de meilleures façons de faire ces comparaisons, mais ce sont deux qui, à mon avis, devraient fonctionner ou au moins vous aider à démarrer.
Éditer
Sur la base du commentaire d' elrobis , vous pouvez utiliser le rectangle de délimitation minimum pour réduire davantage les chances de supprimer des fonctionnalités incorrectes.
À l'aide d'ArcMap, vous pouvez exécuter l' outil Géométrie de contour minimum dans la gestion des données. Après avoir vérifié les options, je pense que l'utilisation de l' option CONVEX_HULL serait probablement la meilleure.
Si vous comparez les champs MBG_APodX / Y1 , MBG_APod_X / Y2 avec MBG_Orientation pour les doublons, vous devriez pouvoir vous faire une bonne idée des fonctionnalités dupliquées. Je suggère d'utiliser la méthode de résumé que j'ai décrite ci-dessus pour comparer. Choisissez l'un des sommets (coordonnées) du rectangle englobant pour trouver des doublons. Vous pouvez obtenir quelques `` correspondances '' accidentelles, mais une fois que vous ajoutez les autres sommets plus l'orientation, il serait assez sûr que les fonctionnalités de résultats sont des doublons.
Bien que je ne l'aie pas utilisé et que je ne sois pas tout à fait sûr des résultats de cet outil, vous trouverez peut-être plus facile d'examiner le fichier de formes résultant si vous utilisez l' outil Statistiques récapitulatives dans ArcMap. Il semble que vous puissiez résumer plusieurs colonnes de cette façon au lieu de mon option de colonne unique.
Je ne pense pas qu'il y aurait une façon complètement automatisée de le faire sans avoir le souci de supprimer une fonctionnalité non dupliquée. Ces méthodes devraient cependant aider à limiter le nombre de fonctionnalités que vous auriez besoin d'examiner manuellement.