Résumé
Permet de calculer les erreurs résiduelles et l'erreur quadratique moyenne (EQM) en fonction des coordonnées des liens en entrée entre les points de contrôle connus à utiliser pour la transformation de données spatiales.
Utilisation
Cet outil est utilisé avant que l'outil Transformer des entités détermine si les points de contrôle sont suffisamment bons pour la transformation prévue, notamment avant que vous ne transformiez un grand nombre d'entités.
Les entités de liens en entrée sont des lignes représentant des liens de transformation entre des points de contrôle correspondants connus.
-
La transformation est effectuée dans un système de coordonnées planaires ou cartésien. Nous recommandons vivement l'utilisation d'un système de coordonnées projetées. L'utilisation d'un système de coordonnées géographiques avec des valeurs de latitude et de longitude risque de produire des distorsions indésirables ou des erreurs de calcul.
Les erreurs sont calculées pour une des trois méthodes de transformation : affine, similarité et projection. Chaque méthode exige un nombre minimum de liens de transformation. Reportez-vous à la rubrique À propos des transformations d'ajustement spatial pour plus d'informations, y compris sur les formules de transformation.
- AFFINE : la transformation affine nécessite au moins trois liens de transformation.
- PROJECTIVE : la transformation projective nécessite au moins quatre liens de transformation.
- D'HELMERT : la transformation d'Helmert nécessite au moins deux liens de transformation.
Le résultat de la transformation varie selon la qualité de vos liens en entrée. Un lien doit commencer à partir d'un emplacement source connu et se terminer à l'emplacement cible correspondant, ces emplacements étant appelés des points de contrôle. Plus les points de contrôle sont établis, plus le résultat transformé est exact. Les coordonnées des emplacements depuis et vers des liens sont utilisés pour dériver les paramètres utilisés dans les équations de transformation, qui sont plus adaptées entre les points de contrôle source et de destination comme décrit dans la rubrique À propos de transformations d’un ajustement spatial. Même si vous appliquez les paramètres de transformation pour transformer les points de contrôle source réels, les emplacements résultants ne correspondent pas aux emplacements des points de contrôle de destination. Il s’agit d’une erreur résiduelle qui est générée pour chaque lien de transformation. Les erreurs résiduelles pour les liens d'entrée sont consignées dans la table de sortie spécifique qui contient les champs suivants :
- Orig_FID : identifiant d'entité du lien en entrée
- X_Source : coordonnée x de la source ou de l'emplacement de fin d'origine du lien.
- Y_Source : coordonnée y de la source ou de l'emplacement de fin d'origine du lien.
- X_Destination : coordonnée x de la destination ou de l'emplacement de fin cible du lien.
- Y_Destination : coordonnée y de la destination ou de l'emplacement de fin cible du lien.
- Residual_Error : erreur résiduelle de l'emplacement transformé.
Une erreur quadratique moyenne (EQM), également appelée déviation quadratique moyenne, est calculée en fonction des erreurs résiduelles et indique habituellement le degré de qualité de la transformation dérivée. La valeur de l'erreur quadratique moyenne est indiquée dans les messages de traitement. Elle représente également un paramètre de sortie dérivé que vous pouvez utiliser dans un script ou un workflow de modèle.
La section « Présentation de l’erreur résiduelle et de l’erreur quadratique moyenne » de la rubrique À propos des transformations d’ajustement spatial contient des informations supplémentaires sur le calcul des erreurs résiduelles et l’EQM. C'est vous qui déterminez la valeur acceptable de l'erreur quadratique moyenne selon les informations dont vous disposez sur la précision de la position des entités en entrée et des points de contrôle. Si la valeur de l'erreur quadratique moyenne est trop élevée, vous devez passer en revue les erreurs résiduelles et ignorer ou remplacer les liens qui présentent de nombreuses erreurs résiduelles.
Syntaxe
arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
Paramètre | Explication | Type de données |
in_link_features | Entités de liens en entrée qui lient les points de contrôle connus pour la transformation spatiale. | Feature Layer |
out_link_table (Facultatif) | Table de sortie contenant des identifiants d'entité de liens en entrée et leurs erreurs résiduelles. Les erreurs résiduelles pour les liens d'entrée sont consignées dans la table de sortie spécifique qui contient les champs suivants :
| Table |
method (Facultatif) | Méthode de transformation à utiliser pour convertir des coordonnées d'entités en entrée.
| String |
Sortie dérivée
Nom | Explication | Type de données |
out_rmse | Renvoie la valeur de l'erreur quadratique moyenne (EQM). | Double |
Exemple de code
1er exemple de l'outil Calculer les erreurs de transformation (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction CalculateTransformationErrors en mode immédiat.
import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
2ème exemple de l'outil Calculer les erreurs de transformation (script autonome)
Le script autonome suivant est un exemple d'application de la fonction CalculateTransformationErrors dans un environnement 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])
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui