Comparaison d’entités (Gestion des données)

Résumé

Compare deux couches ou classes d'entités et renvoie les résultats de la comparaison.

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.

  • 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.

  • 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 (Tout) (ALL dans Python). 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 Ignore Options (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 (Ignorer les propriétés d'extension) (IGNORE_EXTENSION_PROPERTIES dans Python) désigne 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 sur Geometry only (Géométrie uniquement) (GEOMETRY_ONLY dans Python), 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 Continue Compare (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 Input Base Features (Entités de base en entrée) et Input Test Features (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 Input Test Features (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 Input Test Data (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

arcpy.management.FeatureCompare(in_base_features, in_test_features, sort_field, {compare_type}, {ignore_options}, {xy_tolerance}, {m_tolerance}, {z_tolerance}, {attribute_tolerances}, {omit_field}, {continue_compare}, {out_compare_file})
ParamètreExplicationType de données
in_base_features

Les entités de base en entrée sont comparées aux 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 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 dans les Input Base Features (Entités de base en entrée) et Input Test Features (Entités test en entrée). Les enregistrements sont triés dans l'ordre croissant. Lorsque vous effectuez une opération de tri sur la base d'un champ commun dans les Input Base Features (Entités de base en entrée) et les Input Test Features (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.

Value Table
compare_type
(Facultatif)

Le type de comparaison. L'option par défaut est Tout, qui compare toutes les propriétés des entités.

  • ALLToutes les propriétés des classes d'entités sont comparées. Il s’agit de l’option par défaut.
  • GEOMETRY_ONLYSeules les géométries des classes d'entités sont comparées.
  • ATTRIBUTES_ONLYSeuls les attributs et leurs valeurs sont comparés.
  • SCHEMA_ONLYSeule la structure des classes d'entités est comparée.
  • SPATIAL_REFERENCE_ONLYSeules les références spatiales des deux classes d'entités sont comparées.
String
ignore_options
[ignore_option,...]
(Facultatif)

Ces propriétés ne seront pas comparées.

  • IGNORE_MNe pas comparer les propriétés de mesure.
  • IGNORE_ZNe pas comparer les propriétés d'altitude.
  • IGNORE_POINTIDNe pas comparer les propriétés d'ID de point.
  • IGNORE_EXTENSION_PROPERTIESNe pas comparer les propriétés d'extension.
  • IGNORE_SUBTYPESNe pas comparer les sous-types.
  • IGNORE_RELATIONSHIPCLASSESNe pas comparer les classes de relations.
  • IGNORE_REPRESENTATIONCLASSESNe pas comparer les classes de représentations.
  • IGNORE_FIELDALIASNe pas comparer les alias de champ.
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.

  • NO_CONTINUE_COMPAREInterrompt la comparaison dès lors qu'une première non-concordance est rencontrée. Il s’agit de l’option par défaut.
  • CONTINUE_COMPAREPoursuit la comparaison des autres propriétés dès lors qu'une première non-concordance est rencontrée.
Boolean
out_compare_file
(Facultatif)

Ce fichier contiendra toutes les similitudes et toutes les différences trouvées entre les in_base_features et les in_test_features. Il s'agit d'un fichier texte délimité par des virgules qui peut être visualisé et utilisé comme une table dans ArcGIS.

File

Sortie dérivée

NomExplicationType de données
compare_status

Le statut de la comparaison est défini sur 'true' si aucune différence n'est trouvée et sur 'false' dans le cas contraire.

Booléen

Exemple de code

Exemple 1 d'utilisation de l'outil FeatureCompare (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction 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', r'C:/Workspace/roadcompare.txt')
Exemple 2 d'utilisation de l'outil FeatureCompare (script autonome)

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
# 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[1])
print(arcpy.GetMessages())

Environnements

Cet outil n'utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes