Resumen
Calcula los errores residuales y el error cuadrático medio (RMSE) basándose en las coordenadas de los vínculos de entrada entre puntos de control conocidos que se van a utilizar para la transformación de datos espaciales.
Uso
Esta herramienta se utiliza antes de la herramienta Transformar entidades para determinar si los puntos de control son lo suficientemente buenos para la transformación prevista, sobre todo antes de transformar una gran cantidad de entidades.
Las entidades de vínculo de entrada son líneas que representan vínculos de transformación entre los puntos de control correspondientes.
-
La transformación funciona en un sistema de coordenadas planas o cartesiano. Se recomienda encarecidamente utilizar un sistema de coordenadas proyectadas (PCS). Si se utiliza un sistema de coordenadas geográficas (GCS) con valores de latitud y longitud puede dar lugar a una distorsión no deseada o a que se produzcan errores de cálculo.
Los errores se calculan para uno de los tres métodos de transformación: afín, proyectiva y de similitud. Cada método requiere una cantidad mínima de vínculos de transformación. Consulte Acerca de las transformaciones de ajuste espacial para obtener más detalles, incluidas las fórmulas de transformación.
- AFÍN: la transformación afín requiere un mínimo de tres vínculos de transformación.
- PROYECTIVA: la transformación proyectiva requiere un mínimo de cuatro vínculos de transformación.
- SIMILITUD: la transformación de similitud requiere un mínimo de dos vínculos de transformación.
El resultado de la transformación depende de la calidad de los vínculos de entrada. Un vínculo debería partir de una ubicación de origen conocida y debería finalizar en su ubicación de destino correspondiente, también llamado puntos de control. Cuanto mejor establecidos estén los puntos de control, más preciso será el resultado transformado. Las coordenadas de las ubicaciones de origen y destino de los vínculos se utilizan para derivar los parámetros utilizados en las ecuaciones de transformación, que proporcionan el mejor ajuste entre los puntos de control de origen y de destino, tal y como se describe en Acerca de las transformaciones de ajuste espacial. Incluso aunque utilice los parámetros de transformación para transformar los puntos de control de origen reales, las ubicaciones resultantes no coincidirán con las ubicaciones de los puntos de control de destino. Esto se conoce como error residual y se genera para cada vínculo de transformación. Los errores residuales de los vínculos de entrada se escriben en la tabla de salida especificada que contiene los campos siguientes:
- Orig_FID: el Id. de la entidad del vínculo de entrada
- X_Source: la coordenada x de la ubicación final de origen del vínculo
- Y_Source: la coordenada y de la ubicación final de origen del vínculo
- X_Destination: la coordenada x de la ubicación final de destino del vínculo
- Y_Destination: la coordenada y de la ubicación final de destino del vínculo
- Residual_Error: el error residual de la ubicación transformada
Un error cuadrático medio (RMSE), también conocido como desviación cuadrática media (RMSD), se calcula basándose en los errores residuales e indica la calidad de la transformación derivada. El valor de RMSE se escribe en los mensajes de procesamiento. También es un parámetro de salida derivado que puede utilizar en un flujo de trabajo de script o modelo.
En la sección "Entender la media cuadrática y residual" de Acerca de las transformaciones de ajuste espacial se ofrece más información sobre los cálculos de errores residuales y RMSE. Es el usuario quien decide el valor de RMSE aceptable según su conocimiento de la precisión de la posición de las entidades de entrada, así como de los puntos de control. Si el valor de RMSE es demasiado alto, puede que necesite revisar los errores residuales y descartar o sustituir los vínculos que tienen errores residuales altos.
Sintaxis
arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
Parámetro | Explicación | Tipo de datos |
in_link_features | Las entidades de vínculo de entrada que vinculan puntos de control conocidos para la transformación espacial. | Feature Layer |
out_link_table (Opcional) | La tabla de salida que contiene los Id. de las entidades de los vínculos de entrada y sus errores residuales. Los errores residuales de los vínculos de entrada se escriben en la tabla de salida especificada que contiene los campos siguientes:
| Table |
method (Opcional) | El método de transformación que se va a utilizar para convertir las coordenadas de las entidades de entrada.
| String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_rmse | Notifica el valor del error cuadrático medio (RMSE). | Doble |
Muestra de código
Ejemplo 1 de CalculateTransformationErrors (ventana de Python)
El siguiente script de la ventana de Python demuestra cómo utilizar la función CalculateTransformationErrors en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
Ejemplo 2 de CalculateTransformationErrors (script independiente)
El siguiente script independiente es un ejemplo de cómo aplicar la función CalculateTransformationErrors en un entorno de scripts.
import arcpy
import os
# all input data are in country.gdb and output will also go to this gdb
arcpy.env.workspace = os.path.join(os.getcwd(), "country.gdb")
try:
in_links_feats = "link_features"
out_link_table = "output_table"
# transformation method
method = "SIMILARITY"
result = arcpy.CalculateTransformationErrors_edit(in_links_feats, out_link_table, method)
# get the transformation error
error = float(result.getOutput(1))
# if error is less than 12.234 then run Transform Features
if error < 20.0:
# make a copy of the input features
arcpy.CopyFeatures_management(in_links_feats, "in_links_copy")
arcpy.TransformFeatures_edit("in_links_copy", in_links_feats, method, "out_link_table")
else:
print("Transformation error {} is too high".format(error))
except arcpy.ExecuteError as aex:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])
Entornos
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí