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á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,...] | 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.
| 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. 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.
| 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
Nombre | Explicación | Tipo 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
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 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
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí