Calculer les erreurs de transformation (Mise à jour)

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 Transformer une entité pour en savoir plus, notamment 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 Transformer une entité. 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 l’emplacement source ou d’origine du lien.
    • Y_Source : coordonnée y de l’emplacement source ou d’origine du lien.
    • X_Destination : coordonnée x de l’emplacement de destination ou cible du lien.
    • Y_Destination : coordonnée y de l’emplacement de destination ou 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 Transformer une entité 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

CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
ParamètreExplicationType 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 :

  • Orig_FID: identifiant d’entité du lien en entrée
  • X_Source : coordonnée x de l’emplacement source ou d’origine du lien.
  • Y_Source : coordonnée y de l’emplacement source ou d’origine du lien.
  • X_Destination : coordonnée x de l’emplacement de destination ou cible du lien.
  • Y_Destination : coordonnée y de l’emplacement de destination ou cible du lien.
  • Residual_Error : erreur résiduelle de l’emplacement transformé.
Table
method
(Facultatif)

Méthode de transformation à utiliser pour convertir des coordonnées d'entités en entrée.

  • AFFINELa transformation affine nécessite au moins trois liens de transformation. Il s’agit de l’option par défaut.
  • PROJECTIVELa transformation projective nécessite au moins quatre liens de transformation.
  • SIMILARITYLa transformation d'Helmert nécessite au moins deux liens de transformation.
String

Sortie dérivée

NomExplicationType 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])

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes