Transformer des entités (Mise à jour)

Synthèse

Convertit les coordonnées des entités en entrée d’une localisation vers une autre via la mise à l’échelle, le décalage et la rotation en fonction des liens de transformation qui existent entre des points de contrôle correspondants connus.

Utilisation

    Attention :

    Cet outil modifie les données en entrée. Pour plus d’informations et connaître les stratégies permettant d’empêcher les modifications de données indésirables, reportez-vous à la rubrique Outils qui modifient ou mettent à jour les données en entrée.

    Remarque :

    Toutes les entrées doivent être exprimées dans le même système de coordonnées.

  • Les entités en entrée peuvent être des points, des lignes, des polygones ou des annotations.

  • 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. Le point de départ d'un lien est l'emplacement source du point de contrôle et l'extrémité du lien est l'emplacement cible correspondant du point de contrôle.

  • La transformation est effectuée dans un système de coordonnées planaires ou cartésien. Nous recommandons 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 ou des erreurs de calcul.

  • Toutes les entités en entrée sont transformées par l’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 : nécessite au moins trois liens de transformation.
    • PROJECTION : nécessite au moins quatre liens de transformation.
    • SIMILARITÉ : nécessite au moins deux liens de transformation.
  • Le résultat transformé varie selon la qualité des 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 précis. Les coordonnées des localisations source et de destination des liens permettent de dériver les paramètres de transformation les plus appropriés entre les points de contrôle source et de destination. 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. Il est possible de consigner les erreurs résiduelles des liens en entrée dans une table 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 la localisation de fin d’origine du lien.
    • Y_Source : coordonnée y de la source ou de la localisation de fin d’origine du lien.
    • X_Destination : coordonnée x de la destination ou de la localisation de fin cible du lien.
    • Y_Destination : coordonnée y de la destination ou de la localisation de fin cible du lien.
    • Residual_Error : erreur résiduelle de la localisation transformée.

    Une erreur quadratique moyenne (EQM), également appelée déviation quadratique moyenne, est calculée en fonction des erreurs résiduelles et indique l’adéquation générale 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 processus de modèle.

    La rubrique Transformer des entités fournit des détails sur le calcul des erreurs résiduelles et des erreurs quadratiques moyennes. Vous devez déterminer 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, passez en revue les erreurs résiduelles et ignorez ou remplacez les liens qui présentent de nombreuses erreurs résiduelles.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Entités en entrée dont les coordonnées seront transformées. Il peut s’agir de points, de lignes, de polygones ou d’annotations.

Feature Layer
Entités de liens en entrée

Entités de liens en entrée qui lient les points de contrôle connus pour la transformation.

Feature Layer
Méthode
(Facultatif)

Spécifie la méthode de transformation qui sera utilisée pour convertir des coordonnées d’entités en entrée.

  • Transformation affineTrois liens de transformation au moins sont requis. Il s’agit de l’option par défaut.
  • Transformation projectiveQuatre liens de transformation au moins sont requis.
  • Transformation d'HelmertDeux liens de transformation au moins sont requis.
String
Table des liens en sortie
(Facultatif)

Table en sortie contenant les liens en entrée et leurs erreurs résiduelles.

Table

Sortie obtenue

ÉtiquetteExplicationType de données
EQM

Renvoie la valeur de l'erreur quadratique moyenne (EQM).

Double
Entités en entrée mises à jour

Entités en entrée mises à jour.

Feature Layer

arcpy.management.TransformFeatures(in_features, in_link_features, {method}, {out_link_table})
NomExplicationType de données
in_features

Entités en entrée dont les coordonnées seront transformées. Il peut s’agir de points, de lignes, de polygones ou d’annotations.

Feature Layer
in_link_features

Entités de liens en entrée qui lient les points de contrôle connus pour la transformation.

Feature Layer
method
(Facultatif)

Spécifie la méthode de transformation qui sera utilisée pour convertir des coordonnées d’entités en entrée.

  • AFFINETrois liens de transformation au moins sont requis. Il s’agit de l’option par défaut.
  • PROJECTIVEQuatre liens de transformation au moins sont requis.
  • SIMILARITYDeux liens de transformation au moins sont requis.
String
out_link_table
(Facultatif)

Table en sortie contenant les liens en entrée et leurs erreurs résiduelles.

Table

Sortie obtenue

NomExplicationType de données
out_rmse

Renvoie la valeur de l'erreur quadratique moyenne (EQM).

Double
out_feature_class

Entités en entrée mises à jour.

Feature Layer

Exemple de code

Exemple 1 de TransformFeatures (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction TransformFeatures en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.TransformFeatures("source_Roads.shp","control_Links.shp",
                             "AFFINE")
Exemple 2 d’utilisation de l’outil TransformFeatures (script autonome)

Le script autonome suivant est un exemple d’application de la fonction TransformFeatures dans un environnement de scripts.

import arcpy
import os

# Set environment settings
arcpy.env.overwriteOutput = True

# Function to convert link info in a text file to a line feature class
def CreateLinkFeatures(in_text_file, in_data):

    sr = arcpy.Describe(in_data).spatialReference
    features = []  # a list to hold polyline geometry objects

    f = open(in_text_file, "r")
    
    for line in f.readlines():

        # Take start/end blank spaces off
        # Separate the start and end point coordinates
        points = line.strip().split()   
        
        point1 = arcpy.Point(float(points[1]), float(points[2]))
        point2 = arcpy.Point(float(points[3]), float(points[4]))
        
        features.append(arcpy.Polyline(arcpy.Array([point1, point2]), sr))
        
    f.close()   # close the text file

    # Copy the geometry objects into a feature class named Links
    result = arcpy.management.CopyFeatures(features, in_data + "_links")

    return result[0]
    
if __name__ == "__main__":

    # Make a copy of the data because
    # TransformFeatures tool modifies the input data
    arcpy.management.CopyFeatures(r"C:\data\Tutorial.gdb\Parcels", r"C:\data\Tutorial.gdb\Parcels_copy")

    links_file = r"C:\data\TF_links.txt"
    tf_link_features = CreateLinkFeatures(links_file, r"C:\data\Tutorial.gdb\Parcels")
    
    arcpy.edit.TransformFeatures(r"C:\data\Tutorial.gdb\Parcels_copy", tf_link_features)
    print(arcpy.GetMessages())