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 Transformation für räumliche Anpassung 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 "Mathematischer Rest- und Durchschnittswert" unter Transformation für räumlichen Anpassung. 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})
Parameter | Erklärung | 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 Restklaffen für Eingabe-Links werden in die angegebene Ausgabetabelle geschrieben, die die folgenden Felder enthält:
| Table |
method (optional) | Transformationsmethode für die Konvertierung von Eingabe-Feature-Koordinaten.
| String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
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])
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Nein
- Advanced: Ja