Comparaison d'entités (Gestion des données)
Récapitulatif
Compare deux couches ou classes d'entités et renvoie les résultats de la comparaison. La fonction Comparaison d'entités peut signaler des différences de définitions de champ, de géométrie, de valeurs tabulaires et de référence spatiale.
Utilisation
-
L'outil renvoie des messages qui affichent le résultat de la comparaison. Par défaut, l'outil cesse de s'exécuter dès lors qu'il rencontre la première erreur de comparaison. Pour rapporter toutes les différences, activez l'option Continuer la comparaison.
-
Plusieurs champs de tri peuvent être spécifiés. Le premier champ est trié, puis le deuxième champ, et ainsi de suite, dans l'ordre croissant. Effectuer une opération de tri sur la base d'un champ commun à la fois dans les Entités de base en entrée et les Entités test en entrée permet de garantir que la comparaison porte sur la même ligne dans chaque jeu de données en entrée.
-
Par défaut, le type de comparaison est défini sur ALL (tout). Cela signifie que toutes les propriétés des entités qui sont comparées sent activées, y compris la référence spatiale, les propriétés du champ, les attributs et la géométrie. Toutefois, vous pouvez choisir un différent type de comparaison pour activer uniquement des propriétés spécifiques des entités comparées.
-
L'option Ignorer les options offre une certaine souplesse en permettant d'omettre des propriétés telles que les attributs de mesure, les attributs z, les attributs d'identifiant de point et les propriétés d'extension. Deux classes d'entités peuvent être identiques bien que l'une ait des mesures et des coordonnées z et l'autre pas. Vous pouvez choisir d'ignorer ces propriétés. L'option IGNORE_EXTENSION_PROPERTIES fait référence aux informations supplémentaires ajoutées à une classe d'entités ou une table. Par exemple, les entités de deux classes d'entités annotations peuvent être identiques mais les classes d'entités peuvent avoir des propriétés d'extension différentes, comme des symboles différents dans la collection de symboles et un comportement lors de la mise à jour différent.
-
Par défaut, la tolérance XY est déterminée par la tolérance XY par défaut des Entités de base en entrée. Pour minimiser le risque d'erreur, attribuez la plus petite valeur possible à la tolérance de comparaison. Si la valeur zéro est entrée pour la Tolérance XY, une correspondance exacte est recherchée.
-
La Tolérance M par défaut et la Tolérance Z par défaut sont déterminées par la Tolérance M par défaut et la Tolérance Z par défaut des Entités de base en entrée. Les unités sont identiques à celles des Entités de base en entrée. Si la valeur zéro est entrée pour la Tolérance M et la Tolérance Z, une correspondance exacte est recherchée.
-
Lors de la comparaison de GEOMETRY_ONLY, les références spatiales doivent correspondre. Si les références spatiales sont différentes, une erreur de comparaison est reportée. Si le système de coordonnées est différent pour l'une des entrées, les entités produisent une erreur de comparaison. Cet outil ne fait pas de projection à la volée.
-
Le paramètre Ignorer des champs est une liste des champs qui ne sont pas compris dans le compte des champs de la comparaison. Leurs définitions et leurs valeurs tabulaires sont ignorées.
-
Les tolérances attributaires ne peuvent être spécifiées que pour les types de champ numérique.
-
Le Fichier de comparaison en sortie contiendra toutes les similitudes et toutes les différences trouvées entre les Entités de base en entrée et les Entités test en entrée. Il s'agit d'un fichier texte délimité par des virgules qui peut être visualisé et utilisé comme table dans ArcGIS. Par exemple, cette table peut être interrogée pour obtenir toutes les valeurs ObjectID de tous les enregistrements différents. Le champ "has_error" indique que l'enregistrement contient une erreur. Vrai indique qu'il existe une différence.
Une des premières comparaisons réalisées est le calcul du nombre d'entités. Si le nombre d'entités est différent et si le paramètre Continuer la comparaison est défini sur True, les messages de comparaison suivants risquent de ne pas refléter précisément les différences supplémentaires entre les Entités de base en entrée et les Entités test en entrée. Cela est dû au fait que l'outil Comparaison d'entités n'est pas capable de savoir si des entités ont été ajoutées aux Entités test en entrée ou supprimées de celles-ci et passe simplement à la ligne suivante dans chaque table attributaire. Là où une entité a été ajoutée à la table attributaire ou supprimée de celle-ci, l'outil passe simplement à la ligne suivante et commence à comparer l'entité de base par rapport à la mauvaise entité de test, car l'entité correcte a été supprimée des données de test en entrée ou une entité a été ajoutée avant celle-ci.
-
L'objet de résultat des outils de comparaison sera 'vrai' lorsque aucune différence n'est trouvée, et 'faux' lorsque des différences sont détectées.
Syntaxe
Paramètre | Explication | Type de données |
in_base_features |
Les Entités de base en entrée sont comparées avec les Entités test en entrée. Les Entités de base en entrée font référence aux données que vous avez déclarées valides. Ces données de base comportent les définitions de géométrie, les définitions de champ et la référence spatiale correctes. | Feature Layer |
in_test_features |
Les Entités test en entrée sont comparées par rapport aux Entités de base en entrée. Les Entités test en entrée font référence aux données auxquelles vous avez apporté des modifications en mettant à jour ou en compilant de nouvelles entités. | Feature Layer |
sort_field [sort_field,...] |
Le ou les champs utilisés pour trier les enregistrements de la Table de base en entrée et de la Table test en entrée. Les enregistrements sont triés dans l'ordre croissant. Effectuer une opération de tri sur la base d'un champ commun à la fois dans les Entités de base en entrée et les Entités test en entrée permet de garantir que la comparaison porte sur la même ligne dans chaque jeu de données en entrée. | Field |
compare_type (Facultatif) |
Type de comparaison. ALL est le format par défaut. Par défaut, toutes les propriétés des entités sont comparées.
| String |
ignore_options [ignore_option,...] (Facultatif) |
Ces propriétés ne seront pas comparées lors du processus de comparaison.
| String |
xy_tolerance (Facultatif) |
Distance qui détermine la plage dans laquelle des entités sont considérées comme identiques. Pour minimiser le risque d'erreur, attribuez la plus petite valeur possible à la tolérance de comparaison. Par défaut, la tolérance de comparaison correspond à la tolérance XY des entités de base en entrée. | Linear unit |
m_tolerance (Facultatif) |
La tolérance de mesure correspond à la distance minimale entre des mesures avant qu'elles ne soient considérées comme étant identiques. | Double |
z_tolerance (Facultatif) |
La tolérance Z correspond à la distance minimale entre des coordonnées Z avant qu'elles ne soient considérées comme étant identiques. | Double |
attribute_tolerances [[Field, {Tolerance}],...] (Facultatif) |
Valeur numérique déterminant la plage dans laquelle les valeurs attributaires sont considérées comme égales. Ce paramètre s'applique uniquement aux champs numériques. | Value Table |
omit_field [omit_field,...] (Facultatif) |
Champ(s) à omettre lors de la comparaison. Les définitions et valeurs tabulaires de ces champs seront ignorées. | String |
continue_compare (Facultatif) |
Indique s'il faut comparer toutes les propriétés dès lors qu'une première erreur de correspondance est rencontrée.
| Boolean |
out_compare_file (Facultatif) |
Ce fichier contiendra toutes les similitudes et toutes les différences trouvées entre les Entités de base en entrée et les Entités test en entrée. Il s'agit d'un fichier texte délimité par des virgules qui peut être visualisé et utilisé comme table dans ArcGIS. | File |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction FeatureCompare dans une table en mode immédiat.
import arcpy arcpy.FeatureCompare_management(r'C:/Workspace/baseroads.shp', r'C:/Workspace/newroads.shp', 'ROAD_ID', 'ALL', 'IGNORE_M;IGNORE_Z', '0.001 METERS', 0, 0, 'Shape_Length 0.001', '#', 'CONTINUE_COMPARE', e = r'C:/Workspace/roadcompare.txt')
Exemple d'utilisation de la fonction FeatureCompare dans un script autonome.
# Name: FeatureCompare.py # Description: Compare two feature classes and return comparison result. # Author: ESRI # import system modules import arcpy try: # Set local variables base_features = "C:/Workspace/baseroads.shp" test_features = "C:/Workspace/newroads.shp" sort_field = "ROAD_ID" compare_type = "ALL" ignore_option = "IGNORE_M;IGNORE_Z" xy_tolerance = "0.001 METERS" m_tolerance = 0 z_tolerance = 0 attribute_tolerance = "Shape_Length 0.001" omit_field = "#" continue_compare = "CONTINUE_COMPARE" compare_file = "C:/Workspace/roadcompare.txt" # Process: FeatureCompare compare_result = arcpy.FeatureCompare_management(base_features, test_features, sort_field, compare_type, ignore_option, xy_tolerance, m_tolerance, z_tolerance, attribute_tolerance, omit_field, continue_compare, compare_file) print compare_result print arcpy.GetMessages() except: # Print error message if an error occurs print arcpy.GetMessages()