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 einschließlich Transformationsformeln finden Sie unter Transformation für räumlichen Anpassung.
- 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 Feature-Abgleich und Zuordnungstabelle 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 Restklaffe für Eingabe-Links wird 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
RMSE-Fehler (Root Mean Square Error), der auch als RMSD-Abweichung (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.
Syntax
CalculateTransformationErrors_edit (in_link_features, {out_link_table}, {method})
Parameter | Erläuterung | Datentyp |
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 Restklaffe für Eingabe-Links wird in die angegebene Ausgabetabelle geschrieben, die die folgenden Felder enthält:
| Table |
method (optional) | Transformationsmethode für die Konvertierung von Eingabe-Feature-Koordinaten. Weitere Informationen finden Sie unter Feature-Abgleich und Zuordnungstabelle.
| String |
Codebeispiel
CalculateTransformationErrors – Beispiel 1 (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion CalculateTransformationErrors im unmittelbaren Modus verwenden.
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])
Umgebungen
Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.
Lizenzinformationen
- ArcGIS Desktop Basic: Nein
- ArcGIS Desktop Standard: Nein
- ArcGIS Desktop Advanced: Ja