Comparar entidad (Administración de datos)

Resumen

Compara dos capas o clases de entidades y devuelve los resultados de la comparación.

Uso

  • Esta herramienta devuelve mensajes que muestran el resultado de la comparación. De forma predeterminada, la ejecución se detiene después de encontrar la primera comparación errónea. Para informar de todas las diferencias, active el parámetro Continuar comparación.

  • Comparar entidad puede informar de las diferencias de geometría, valores tabulares, referencia espacial y definiciones de campo.

  • Se pueden especificar múltiples campos de ordenamiento. Se ordena el primer campo, luego el segundo campo, y así sucesivamente, en orden ascendente. El ordenamiento por campo común en las Entidades base de entrada y las Entidades test de entrada asegura que se está comparando la misma fila de cada dataset de entrada.

  • Por defecto, el tipo de comparación está definido como Todo (ALL en Python). Esto significa que se verificarán todas las propiedades de las entidades que se están comparando, incluidos referencia espacial, propiedades del campo, atributos y geometría. Sin embargo, puede elegir un tipo de comparación distinto para verificar sólo propiedades específicas de las entidades que se estén comparando.

  • La opción Ignorar opciones ofrece la flexibilidad de omitir propiedades, como atributos de medida, atributos z, atributos de Id. de punto y propiedades de extensión. Dos clases de entidades pueden ser idénticas, pero, aún así, una puede tener medidas y coordenadas z y la otra no. Puede elegir ignorar estas propiedades. La opción Ignorar propiedades de extensión (IGNORE_EXTENSION_PROPERTIES en Python) hace referencia a la información adicional agregada a una tabla o clase de entidad. Por ejemplo, las entidades de dos clases de entidad de anotación pueden ser idénticas, pero las clases de entidad pueden tener distintas propiedades de extensión, como diferentes símbolos en el conjunto de símbolos y diferente comportamiento de edición.

  • La tolerancia XY predeterminada está determinada por la tolerancia XY predeterminada de las Entidades base de entrada. Para minimizar el error, el valor que elija para la tolerancia de comparación debe ser tan pequeño como sea posible. Si se introduce cero para la tolerancia XY, hay una coincidencia exacta.

  • La tolerancia M predeterminada y la tolerancia Z predeterminada está determinada por la tolerancia M y la tolerancia Z predeterminadas de las Entidades base de entrada. Las unidades son las mismas que las de las Entidades base de entrada. Si se introduce cero para la tolerancia M y para la tolerancia Z, hay una coincidencia exacta.

  • Al comparar Solo geometría (GEOMETRY_ONLY en Python), las referencias espaciales deben coincidir. Si las referencias espaciales son distintas, se informará una comparación errónea. Si el sistema de coordenadas es distinto para cada entrada, se realizará una comparación errónea entre las entidades. Esta herramienta no realiza proyecciones al vuelo.

  • El parámetro Omitir campos es una lista de campos que no están incluidos en la comparación de conteo de campo; se ignoran las definiciones de campo y los valores tabulares.

  • Las tolerancias de atributos sólo se pueden especificar para los tipos de campos numéricos.

  • El Archivo de comparación de salida contendrá todas las similitudes y diferencias entre las Entidades base de entrada y las Entidades test de entrada. Este archivo es un archivo de texto delimitado por comas que se puede ver y utilizar como una tabla en ArcGIS. Por ejemplo, esta tabla se puede consultar para obtener todos los valores ObjectID para todas las filas que sean diferentes. El campo has_error indica que el registro contiene un error. Verdadero indica que hay una diferencia.

  • Una de las primeras comparaciones realizadas es el conteo de entidades. Si se informa de que el recuento de entidades es diferente y el parámetro Continuar comparación es Verdadero, es posible que los mensajes de comparación subsiguientes no reflejen diferencias adicionales entre las Entidades base de entrada y las Entidades test de entrada. Esto se debe a la incapacidad de la herramienta Comparar entidad de determinar dónde se agregaron o quitaron entidades en las Entidades test de entrada y a que simplemente se mueve a la siguiente fila en cada tabla de atributos. En la ubicación de la tabla de atributos donde se agregó o eliminó una entidad, la herramienta simplemente se moverá a la siguiente fila y comenzará a comparar la entidad base con la entidad de prueba incorrecta porque la correcta se eliminó en los Datos de prueba de entrada o se agregó una entidad antes de esta.

  • Con esta herramienta de Python se puede obtener el estado de la herramienta mediante result.getOutput(1). El valor será 'true' si no se encuentra ninguna diferencia y 'false' si se detecta alguna diferencia.

    Obtenga más información acerca del uso de herramientas en Python

Sintaxis

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})
ParámetroExplicaciónTipo de datos
in_base_features

Las Entidades base de entrada se comparan con las Entidades test de entrada. Las Entidades base de entrada hacen referencia a los datos que ha declarado como válidos. Estos datos base tienen las definiciones de geometría, las definiciones de campo y la referencia espacial correctas.

Feature Layer
in_test_features

Las Entidades test de entrada se comparan con las Entidades base de entrada. Las Entidades test de entrada hacen referencia a los datos que modificó al editar o recopilar entidades nuevas.

Feature Layer
sort_field
[sort_field,...]

El campo o campos utilizados para ordenar registros en las Entidades base de entrada y las Entidades test de entrada. Los registros se clasifican en orden ascendente. El ordenamiento por campo común en las Entidades base de entrada y las Entidades test de entrada asegura que se está comparando la misma fila de cada dataset de entrada.

Value Table
compare_type
(Opcional)

El tipo de comparación. El valor predeterminado es Todo y permitirá comparar todas las propiedades de las entidades que se están comparando.

  • ALLSe compararán todas las propiedades de las clases de entidades. Esta es la opción predeterminada.
  • GEOMETRY_ONLYSólo se compararán las geometrías de las clases de entidades.
  • ATTRIBUTES_ONLYSólo se compararán los atributos y sus valores.
  • SCHEMA_ONLYSólo se compararán los esquemas de las clases de entidades.
  • SPATIAL_REFERENCE_ONLYSólo se compararán las referencias espaciales de las dos clases de entidades.
String
ignore_options
[ignore_option,...]
(Opcional)

Estas propiedades no se compararán.

  • IGNORE_MNo comparar propiedades de medición.
  • IGNORE_ZNo comparar propiedades de elevación.
  • IGNORE_POINTIDNo comparar propiedades de Id. de punto.
  • IGNORE_EXTENSION_PROPERTIESNo comparar propiedades de extensión.
  • IGNORE_SUBTYPESNo comparar subtipos.
  • IGNORE_RELATIONSHIPCLASSESNo comparar clases de relación.
  • IGNORE_REPRESENTATIONCLASSESNo comparar clases de representación.
  • IGNORE_FIELDALIASNo comparar alias de campo.
String
xy_tolerance
(Opcional)

La distancia que determina el rango en el cual las entidades se consideran iguales. Para minimizar el error, el valor que elija para la tolerancia de comparación debe ser tan pequeño como sea posible. De forma predeterminada, la tolerancia de comparación es la tolerancia XY de las entidades base de entrada.

Linear Unit
m_tolerance
(Opcional)

La tolerancia de medición es la distancia mínima entre las medidas antes de que se las considere iguales.

Double
z_tolerance
(Opcional)

La tolerancia Z es la distancia mínima entre las coordenadas Z antes de que se las considere iguales.

Double
attribute_tolerances
[[Field, {Tolerance}],...]
(Opcional)

El valor numérico que determina el rango en el cual los valores de atributos se consideran iguales. Esto sólo se aplica a los tipos de campos numéricos.

Value Table
omit_field
[omit_field,...]
(Opcional)

El campo o los campos que se omitirán durante la comparación. Se ignorarán las definiciones de campo y los valores tabulares para estos campos.

String
continue_compare
(Opcional)

Indica si se deben comparar todas las propiedades después de encontrar la primera falta de coincidencia.

  • NO_CONTINUE_COMPARESe detiene después de encontrar la primera falta de coincidencia. Esta es la opción predeterminada.
  • CONTINUE_COMPARECompara otras propiedades después de encontrar la primera falta de coincidencia.
Boolean
out_compare_file
(Opcional)

Este archivo contendrá todas las similitudes y diferencias entre las in_base_features y las in_test_features. Este archivo es un archivo de texto delimitado por comas que se puede ver y utilizar como una tabla en ArcGIS.

File

Salida derivada

NombreExplicaciónTipo de datos
compare_status

El estado de comparación será 'true' si no se encuentra ninguna diferencia y 'false' si se detectan diferencias.

Booleano

Muestra de código

Ejemplo 1 de FeatureCompare (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función FeatureCompare en modo inmediato.

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')
Ejemplo 2 de FeatureCompare (Acos) (script independiente)

Ejemplo de cómo utilizar la herramienta FeatureCompare en un script independiente.

# 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())

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados