Donné:
- une géodatabase A qui contient 100 jeux de données nommés a 1 .. a 100
- une géodatabase B qui contient 100 jeux de données nommés b 1 .. b 100
Je veux déterminer par programme (*) pour chaque paire d'ensembles de données ( a i , b i ) si elles ont un contenu identique. Puisque je compare 100 paires, j'ai besoin d'une méthode de comparaison efficace. Idéalement, toute la comparaison ne prendrait que quelques secondes.
(*) Remarque: Je mentionne le terme "programmatique", non pas parce que je recherche des exemples de code (bien que je les accepte volontiers), mais pour souligner que je recherche une méthode de comparaison très rapide, qui ne être possible lors de la comparaison manuelle de 100 paires d'ensembles de données.
Je prévois d'implémenter cette méthode de comparaison moi-même, donc ce que je recherche essentiellement, c'est un algorithme , et non un outil prêt à l'emploi (sauf peut-être lorsqu'il est open-source).
Je suis conscient que je demande probablement l'impossible, car cela nécessiterait de comparer le contenu complet des jeux de données (peut-être avec les outils du jeu d'outils Gestion des données → Comparaison des données ); ou au moins de comparer les hachages / résumés des ensembles de données, mais pour générer des résumés, il faudrait également parcourir d'abord toutes les données des ensembles de données.
Par conséquent, ma meilleure approche jusqu'à présent est la suivante:
Déterminer d' abord que l' ensemble de données paires ( a i , b i ) ne peuvent éventuellement avoir un contenu identique.
Effectuez une comparaison complète des données uniquement pour les paires d'ensembles de données restantes.
Mes questions:
ArcGIS arrive-t-il à calculer automatiquement une sorte de résumé d'ensemble de données que je pourrais interroger? Si c'est le cas, comment?
(Je ne suis au courant de rien de ce genre, donc je m'attends à ce que la réponse soit «non». Veuillez me prouver le contraire.)
Quels sont les moyens très efficaces et fiables de déterminer si deux ensembles de données ne peuvent pas avoir un contenu identique?
(J'ai jusqu'à présent envisagé de comparer les horodatages de modification, bien que je ne sache pas à quel point ils sont fiables, et de comparer les schémas des ensembles de données. Quelle est la fiabilité des horodatages dans une géodatabase ArcGIS? Existe-t-il d'autres caractéristiques d'ensemble de données qui pourraient servir à cette fin?)
Réponses:
Vous pouvez créer un champ sur la table d'attributs d'entité et calculer un hachage, par exemple MD5 , sur l' entité en utilisant IEditEvents ou une extension de classe.
Le hachage serait calculé sur une représentation sous forme de chaîne de l' entité (json ou xml), où WKT pourrait être utilisé pour le champ de forme.
la source
J'examinerais les rayons X pour comparer les schémas, puis comparer les fonctionnalités, comparer les tables, etc. à partir du jeu d'outils de comparaison de données pour comparer le contenu lorsque les schémas correspondent. Si vous avez déjà essayé cette approche, faites-nous savoir où cette approche peut échouer.
la source