Transformationsfehler berechnen (Editing)

Zusammenfassung

Berechnet Restklaffen und RMS-Fehler (Root Mean Square) basierend auf den Koordinaten der Eingabe-Links zwischen bekannten Passpunkten, die für die Transformation räumlicher Daten verwendet werden sollen.

Verwendung

  • Dieses Werkzeug wird vor dem Werkzeug Features transformieren verwendet, um zu bestimmen, ob die Passpunkte für die beabsichtigte Transformation ausreichend sind, insbesondere bevor Sie eine große Anzahl an Features transformieren.

  • Eingabe-Link-Features sind Linien, die Transformations-Links zwischen entsprechenden Passpunkten darstellen.

  • Die Transformation funktioniert in einem kartesischen oder planaren Koordinatensystem. Es wird dringend ein projiziertes Koordinatensystem empfohlen. Die Verwendung eines geographischen Koordinatensystems mit Breitengrad- und Längengradwerten kann zu unerwünschter Verzerrung oder zu Berechnungsfehlern führen.

  • Fehler werden für eine der drei Transformationsmethoden berechnet: affine, Ähnlichkeits- und projektive Transformation. Jede Methode erfordert eine Mindestanzahl an Transformations-Links. Weitere Informationen sowie Transformationsformeln finden Sie unter Transformieren eines Features.

    • AFFINE: Für die affine Transformation werden mindestens drei Transformations-Links benötigt.
    • PROJECTIVE: Für die projektive Transformation sind mindestens vier Transformations-Links erforderlich.
    • SIMILARITY: Für die Ähnlichkeitstransformation werden mindestens zwei Transformations-Links benötigt.
  • Das Transformationsergebnis hängt von der Qualität der Eingabe-Links ab. Ein Link sollte von einer bekannten Quellposition starten und an der entsprechenden Zielposition enden, die auch als Passpunkte bezeichnet werden. Je besser die Passpunkte festgelegt sind, desto genauer fällt das transformierte Ergebnis aus. Die Koordinaten der Anfangs- und Zielpositionen der Links dienen zur Ableitung der Parameter in Transformationsgleichungen, die den bestmöglichen Kompromiss zwischen den Quell- und Zielpasspunkten darstellen, wie in Transformieren eines Features beschrieben. Auch wenn Sie die Transformationsparameter verwenden, um die tatsächlichen Quellpasspunkte zu transformieren, stimmen die resultierenden Positionen nicht mit den Positionen der Zielpasspunkte überein. Dieser Fehler wird als Restklaffe bezeichnet und für jeden Transformations-Link erstellt. Die Restklaffen für Eingabe-Links werden in die angegebene Ausgabetabelle geschrieben, die die folgenden Felder enthält:

    • Orig_FID: Die ID des Eingabe-Link-Features
    • X_Source: Die X-Koordinate der Quell- oder Von-Endposition des Links
    • Y_Source: Die Y-Koordinate der Quell- oder Von-Endposition des Links
    • X_Destination: Die X-Koordinate der Ziel- oder Bis-Endposition des Links
    • Y_Destination: Die Y-Koordinate der Ziel- oder Bis-Endposition des Links
    • Residual_Error: Die Restklaffe der transformierten Position

    RMS-Fehler (RMSE, Root Mean Square Error), der auch als RMS-Abweichung (RMSD, Root Mean Square Deviation) bezeichnet wird, wird basierend auf der Restklaffe berechnet und gibt im Allgemeinen die Qualität der abgeleiteten Transformation an. Der RMSE-Wert wird an die Verarbeitungsmeldungen ausgegeben. Er ist auch ein abgeleiteter Ausgabeparameter, der in einem Skript oder Modell-Workflow verwendet werden kann.

    Weitere Informationen zu den Berechnungen der Restklaffe und zu RMSE finden Sie im Abschnitt "Transformationslinks und der RMS-Fehler" unter Transformieren eines Features. Sie müssen den zulässigen RMSE-Wert basierend auf Ihrem Wissen über die Positionsgenauigkeit der Eingabe-Features und der Passpunkte bestimmen. Wenn der RMSE-Wert zu hoch ist, müssen Sie die Restklaffe überprüfen und verwerfen oder die Links mit hoher Restklaffe ersetzen.

Syntax

arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
ParameterErklärungDatentyp
in_link_features

Eingabe-Link-Features, die bekannte Passpunkte für die räumliche Transformation verknüpfen.

Feature Layer
out_link_table
(optional)

Die Ausgabetabelle mit Feature-IDs der Eingabe-Links und der jeweils zugehörigen Restklaffe. Die Restklaffen für Eingabe-Links werden in die angegebene Ausgabetabelle geschrieben, die die folgenden Felder enthält:

  • Orig_FID: Die ID des Eingabe-Link-Features
  • X_Source: Die X-Koordinate der Quell- oder Von-Endposition des Links
  • Y_Source: Die Y-Koordinate der Quell- oder Von-Endposition des Links
  • X_Destination: Die X-Koordinate der Ziel- oder Bis-Endposition des Links
  • Y_Destination: Die Y-Koordinate der Ziel- oder Bis-Endposition des Links
  • Residual_Error: Die Restklaffe der transformierten Position
Table
method
(optional)

Transformationsmethode für die Konvertierung von Eingabe-Feature-Koordinaten.

  • AFFINEFür die affine Transformation werden mindestens drei Transformations-Links benötigt. Dies ist die Standardeinstellung.
  • PROJECTIVEFür die projektive Transformation sind mindestens vier Transformations-Links erforderlich.
  • SIMILARITYFür die Ähnlichkeitstransformation werden mindestens zwei Transformations-Links benötigt.
String

Abgeleitete Ausgabe

NameErklärungDatentyp
out_rmse

Meldet den RMSE-Wert.

Double

Codebeispiel

CalculateTransformationErrors: Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion CalculateTransformationErrors im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
CalculateTransformationErrors: Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript ist ein Beispiel für die Anwendung der Funktion CalculateTransformationErrors in einer Skriptumgebung.

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

Lizenzinformationen

  • Basic: Nein
  • Standard: Nein
  • Advanced: Ja

Verwandte Themen