Est-il possible d'identifier de manière unique chaque géométrie dans une couche d'entités?
J'ai essentiellement une couche d'entités surfaciques avec de nombreuses lignes de données représentées par la même géométrie. Je voudrais 1 ligne pour chaque géométrie unique. Je recherche donc une méthodologie prête à l'emploi pour combiner des attributs basés sur la forme de la géométrie.
Je viens d'un monde Postgres et je peux résoudre ce problème là-bas, mais je ne sais pas comment le faire (ou si c'est possible) pour le faire sans programmation avec les outils ESRI.
arcgis-desktop
arcmap
arcgis-10.0
geometry
Dylan Hettinger
la source
la source
Réponses:
Si vous disposez d'une licence avancée, vous pouvez utiliser Rechercher identique ou Supprimer identique .
Les deux peuvent être utilisés pour rechercher / supprimer des entités qui ont des attributs identiques ou, si le champ Forme est spécifié, des géométries identiques.
Si vous n'avez pas de licence avancée, ce message vous sera utile.
En bref, vous ajoutez deux champs pour X, Y dans votre table attributaire et exécutez un fondu sur lesdits champs.
Si vous avez des polygones qui partagent le même centroïde, mais qui ne sont pas géométriquement identiques, vous pouvez ajouter deux autres champs (Périmètre et Aire). Cela devrait suffire à identifier des géométries identiques pour presque tous les cas normaux. Voir les commentaires de @ whuber ci-dessous.
la source
J'ai un ensemble de données basé sur des données d'enquête. Mon problème est que les anciennes fonctionnalités ne sont pas toujours supprimées avant l'importation des nouveaux plans d'enquête. Par conséquent, nous avons des «doublons» de géométrie différente: IE, les plans de levé peuvent être séparés de 1/4 de pied les uns des autres. Sur un jeu de données d'entités 12000, il est difficile de zoomer sur chacune d'elles et de les identifier. Utilisation d'ArcMap Basic 10.2: voici un modèle hacky que j'ai trouvé.
J'ai réinventé la roue. De plus, j'ai été frustré par le constructeur de modèles et j'ai essentiellement tout bulldogé. Il doit y avoir une solution plus élégante. J'accepterai volontiers les critiques et suggestions.
De plus, cela semble ne fonctionner correctement qu'à partir de Model Builder, je cours à partir d'une boîte à outils et cela n'enregistre pas la couche tampon.
la source
Je cherche depuis un certain temps une réponse à la même question pour surmonter l'aplatissement du problème des polygones tampons qui se chevauchent et je pense avoir trouvé une solution robuste à cela. En fait, le commentaire de Whuber,
la réponse de @ Paul a été pour moi la principale motivation pour continuer à essayer. Il utilise l' opérateur ARE_IDENTICAL_TO de l'outil Spatial Join car il est le plus efficace parmi d'autres détecteurs identiques. Voici les étapes:
Les étapes suivantes peuvent être effectuées de deux manières, AVEC Python ou SANS:
AVEC PYTHON
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
.Sachez que j'utilise la deuxième copie du champ OID factice, qui est EX_OID_1 dans mon cas;
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. Le résultat vous montrera les caractéristiques unifiées des parties qui se chevauchent. Il y a cependant une limite de taille, 30 000 caractères. Pour surmonter ce problème, vous devez suivre les étapes «sans python».SANS PYTHON
Utilisez l'outil Fréquence pour répertorier les valeurs uniques dans la deuxième copie du champ OID factice, qui est EX_OID_1 dans mon cas;
Enfin, joignez le champ OBJECTID de la classe d' entités d'origine à la sortie des EX_OID_1 de l'outil Fréquence en sélectionnant les options "Conserver uniquement les enregistrements correspondants".
la source