Trouver des différences entre les fichiers de formes à l'aide d'ArcGIS for Desktop?


12

Chaque mois, je dois QA / QC quelques données de rues pour un comté entier (plus de 47 000 enregistrements). La première étape consiste à comparer les deux fichiers. Actuellement, j'utilise un outil qui a été créé en interne via VBA il y a environ 5 ans. Il fonctionne compare les deux fichiers et rapporte les différences en fonction de quelques facteurs (enregistrements ajoutés, enregistrements supprimés, changements d'adresse, changements de ville, longueur de segment / changements de sommets). Je les exporte ensuite vers des fichiers de formes individuels. En outre, l'outil fonctionne dans ArcGIS 9.3mais ne fonctionnera plus dansArcGIS 10.1

L'outil fonctionne très bien, mais il faut environ une heure pour le terminer.

J'espère avoir commencé à travailler sur l'amélioration de cet outil pour accélérer les performances. J'ai examiné une variété de méthodes, y compris le Compare Feature Toolet Select by Location.

Ces deux outils fonctionnent beaucoup plus rapidement, mais ils ne semblent pas capturer tout ce dont j'ai besoin. Le gros problème que j'ai avec le, Compare Feature Toolc'est que je ne peux pas choisir sur quel champ comparer. Par défaut, il s'agit d'ObjectID lorsque j'ai besoin de comparer par Segment_ID. Il n'y a pas d'option pour le sélectionner.

Quelqu'un at-il une bonne solution ou des idées sur la façon de réaliser une comparaison complète comme je l'ai décrit?


Pour une raison quelconque, ArcGIS ne reconnaît pas la jointure que j'essaie selon la réponse de RyanDalton.

Mais

En suivant les conseils d'une jointure, j'ai trouvé comment trouver les enregistrements ajoutés et les enregistrements supprimés dans les deux fichiers:

  1. Joindre le fichier de formes du mois précédent au fichier de formes du mois en cours via le champ Segment_ID
  2. Exécution d'une requête de définition où Segment_ID IS NULL
  3. Exporter cela vers un nouveau fichier de formes (fonctionnalités ajoutées)

J'inverse ensuite les jointures et trouve les fonctionnalités supprimées

Toujours en train de trouver un moyen de trouver les autres différences répertoriées, puis de les enchaîner dans un modèle.


Je peux trouver tous les enregistrements qui ont changé en effectuant un enregistrement de sélection par emplacement dans l'un des ensembles de données qui sont identiques à l'autre ensemble de données. Je change ensuite de sélection et cela me donne tous les enregistrements qui ne sont pas identiques.

Je vais tout mettre dans un modèle et j'espère que cela fonctionne aussi bien.

Réponses:


11

Avec le Compare Feature Tool, vous devez simplement choisir votre Segment_IDchamp comme champ de tri dans la boîte de dialogue.

Le ou les champs [trier] [sont] utilisés pour trier les enregistrements dans la table de base d'entrée et la table de test d'entrée. Les enregistrements sont triés par ordre croissant. Le tri par un champ commun dans les fonctionnalités de base d'entrée et les fonctionnalités de test d'entrée garantit que vous comparez la même ligne de chaque jeu de données d'entrée.

Si vous êtes désireux d'obtenir le champ ID_segment dans le cadre de votre table de sortie, essayez de joindre la sortie Compare Featuretable source Test Tablesur cf.Object_ID=tt.Object_ID, puis exporter la table jointe avec votre ID_segment.

Vous pouvez facilement mettre cela dans un modèle pour une répétabilité plus facile.


J'ai fait cela, cependant, la table créée via l'outil de comparaison n'inclut pas le champ Segment_ID (qui est l'identifiant unique). Au lieu de cela, il répertorie simplement l'ID d'objet qui ne me fait vraiment aucun bien.
Craig

Mise à jour de ma réponse pour refléter l'entrée Segment_IDdans votre table de sortie.
RyanKDalton

l'ajout de la jointure provoque le blocage d'ArcMap à chaque fois. Retour à la planche à dessin.
Craig

1

Dans mes expériences, la comparaison de fonctionnalités utilise toujours FID ou ObjectID comme base de la comparaison même si segment_id est sélectionné comme champ de tri. Les FID de fichiers de formes sont recyclés (réorganisés), donc après quelques modifications, de nombreux FID, sinon tous, sont différents pour leurs zones géographiques correspondantes. Ils auront donc une "vraie" erreur de comparaison de caractéristiques. Si vous utilisez un ObjectID de GeoDatabase ou GISquirrel, les ID ne sont pas recyclés et vous pouvez compter sur cet outil. Vous devez conserver les bases de données clouées sur la période de temps afin que les ObjectIds ne soient jamais réorganisés.

Quoi qu'il en soit, la description du champ de tri dans l'aide de l'outil GP est TRÈS trompeuse. Cet outil serait formidable si la base de comparaison pouvait être le segment_ID.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.