Comparaison des fonctionnalités (Gestion des données)
Récapitulatif
Compare deux couches ou classes d'entités et renvoie les résultats de la comparaison. L'outil 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
-
Cet outil renvoie des messages affichant le résultat de la comparaison. Par défaut, il s'arrête dès qu'il rencontre une première erreur de comparaison. Pour signaler toutes les différences, activez le paramètre Continuer la comparaison.
-
Vous pouvez spécifier plusieurs champs de tri. Le premier champ est trié, puis le second, et ainsi de suite, dans l'ordre croissant. Lorsque vous effectuez une opération de tri sur la base d'un champ commun dans les Entités de base en entrée et les Entités test en entrée, vous êtes sûr 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. Cela signifie que toutes les propriétés des entités faisant l'objet d'une comparaison sont vérifiées, y compris les références spatiales, les propriétés de champ, les attributs et la géométrie. Toutefois, vous pouvez choisir un type de comparaison différent pour vérifier uniquement certaines propriétés des entités comparées.
-
Le paramètre Ignorer les options permet d'omettre certaines propriétés, telles que les attributs de mesure, les attributs z, les attributs ID de point et les propriétés d'extension. Deux classes d'entités peuvent être identiques, mais l'une d'elles a des mesures et des coordonnées z, l'autre non. Vous pouvez choisir d'ignorer ces propriétés. L'option IGNORE_EXTENSION_PROPERTIES concerne des informations supplémentaires ajoutées à une table ou une classe d'entités. Par exemple, deux classes d'entités annotations peuvent avoir des entités identiques mais des propriétés d'extension différentes, par exemple des symboles différents dans la collection de symboles et un comportement de mise à jour différent.
-
La tolérance XY par défaut 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 tolérance XY est nulle, une correspondance exacte est trouvée.
-
Les tolérances M et Z par défaut sont déterminées par les tolérances M et 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 les tolérances M et Z sont nulles, une correspondance exacte est trouvée.
-
Lorsque la comparaison porte uniquement sur les géométries (GEOMETRY_ONLY), les références spatiales doivent correspondre. Si elles sont différentes, une erreur de comparaison est renvoyée. Si le système de coordonnées est différent pour l'une ou l'autre des entrées, les entités génèrent des erreurs de comparaison. Cet outil ne fait pas de projection à la volée.
-
Le paramètre Ignorer des champs se compose d'une liste des champs qui sont exclus de la comparaison du nombre de champs. Leurs définitions de champ et leurs valeurs tabulaires sont ignorées.
-
Les tolérances d'attribut peuvent uniquement être spécifiées pour les champs de type numérique.
-
Le Fichier de comparaison en sortie contient toutes les similitudes et 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 toutes les lignes qui sont différentes. Le champ "has_error" indique que l'enregistrement contient une erreur. La valeur Vrai (True) signale une différence.
Le nombre d'entités est l'une des premières comparaisons effectuées. Si le nombre d'entités est différent et que le paramètre Continuer la comparaison a la valeur Vrai, les messages de comparaison suivants risquent de ne pas refléter avec précision les différences supplémentaires entre les valeurs de Entités de base en entrée et Entités test en entrée. Cela est dû au fait que l'outil Comparaison d'entités n'est pas capable d'identifier la destination et la provenance des entités ajoutées ou supprimés dans l'option Entités test en entrée et passe simplement à la ligne suivante de chaque table attributaire. A l'endroit dans la table attributaire où une entité a été ajoutée ou supprimée, l'outil passe simplement à la ligne suivante et commence à comparer l'entité de base avec une entité test qui n'est pas la bonne, car l'entité test appropriée dans l'option Données test en entrée a été supprimée ou une entité a été ajoutée avant elle.
-
Dans Python, vous pouvez obtenir le statut de cet outil à l'aide de la commande result.getOutput(1). La valeur est 'true' si aucune différence n'est trouvée et 'false' dans le cas contraire.
Pour en savoir plus sur l'utilisation des outils dans Python
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 que vous avez modifiées 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 dans les entités de base et les entités test en entrée permet de s'assurer que la comparaison porte sur la même ligne dans chaque jeu de données en entrée. | Value Table |
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 est 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) |
Le ou les champs à 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 une table dans ArcGIS. | File |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil FeatureCompare 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 l'outil FeatureCompare dans un script autonome.
# Name: FeatureCompare.py
# Description: Compare two feature classes and return comparison result.
# 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.getOutpuput(1)
print arcpy.GetMessages()
except:
# Print error message if an error occurs
print arcpy.GetMessages()