Resumen
Compara dos capas o clases de entidades y devuelve los resultados de la comparación. Comparar entidad puede informar de las diferencias de geometría, valores tabulares, referencia espacial y definiciones de campo.
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.
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.
De manera predeterminada, el tipo de comparación está configurado 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 tiene un error. Verdadero indica que hay una diferencia.
Una de las primeras comparaciones realizadas es el conteo de entidades. Si se informa que el conteo 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 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 ésta.
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
FeatureCompare_management (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ámetro | Explicación | Tipo 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,...] | Campos utilizados para ordenar registros en la Tabla base de entrada y la Tabla 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) | Tipo de comparación. El valor predeterminado es Todo y permitirá comparar todas las propiedades de las entidades que se están comparando.
| String |
ignore_options [ignore_option,...] (Opcional) | Estas propiedades no se compararán.
| 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. Por defecto, 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.
| Boolean |
out_compare_file (Opcional) | Este archivo 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. | File |
Muestra de código
Ejemplo de la herramienta FeatureCompare (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función FeatureCompare en el 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 de la herramienta FeatureCompare (secuencia de comandos independiente)
Ejemplo de cómo utilizar la herramienta FeatureCompare en una secuencia de comandos independiente.
# 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.getOutput(1))
print(arcpy.GetMessages())
except Exception as err:
print(err.args[0])
Entornos
Esta herramienta no utiliza ningún entorno de geoprocesamiento.
Información sobre licencias
- ArcGIS Desktop Basic: Sí
- ArcGIS Desktop Standard: Sí
- ArcGIS Desktop Advanced: Sí