Feature-Vergleich (Data Management)
Zusammenfassung
Vergleicht zwei Feature-Classes oder Layer und gibt die Vergleichsergebnisse zurück. Mit Feature-Vergleich können Abweichungen bei Geometrie, Tabellenwerten, Raumbezügen und Felddefinitionen angegeben werden.
Verwendung
-
Mit dem Werkzeug werden Meldungen mit den Vergleichsergebnissen zurückgegeben. Standardmäßig beendet das Werkzeug die Ausführung nach dem Auffinden des ersten Übereinstimmungsfehlers. Sollen alle Abweichungen in den Bericht aufgenommen werden, legen Sie die Option zum Fortsetzen der Vergleichsoperation auf "True" fest.
-
Es können mehrere Sortierfelder angegeben werden. Es wird das erste Feld sortiert, anschließend das zweite usw. (in aufsteigender Reihenfolge). Standardmäßig wird mit einem gemeinsamen Feld der Eingabe-Basis-Features und der Eingabe-Test-Features sichergestellt, dass für jedes Eingabe-Dataset dieselbe Zeile verglichen wird.
-
Für den Vergleichstyp ist standardmäßig ALL festgelegt. Das heißt, dass alle Eigenschaften der verglichenen Features geprüft werden, einschließlich Raumbezug, Feldeigenschaften, Attributen und Geometrie. Sie können jedoch einen anderen Vergleichstyp auswählen, um nur bestimmte Eigenschaften der verglichenen Features zu prüfen.
-
Mit den Ausschlussoptionen können Eigenschaften wie Messwertattribute, Z-Attribute, Punkt-ID-Attribute und Erweiterungseigenschaften ausgeschlossen werden. Zwei Feature-Classes sind möglicherweise identisch, trotzdem kann eine über Messwerte und Z-Koordinaten verfügen und die andere nicht. Sie können diese Eigenschaften ignorieren. Die Option "IGNORE_EXTENSION_PROPERTIES" bezieht sich auf zusätzliche Informationen, die einer Feature-Class oder Tabelle hinzugefügt werden. So können beispielsweise die Features von zwei Annotation-Feature-Classes identisch sein, die Feature-Classes können jedoch über verschiedene Erweiterungseigenschaften verfügen, wie zum Beispiel verschiedene Symbole in der Symbolsammlung und unterschiedliches Bearbeitungsverhalten.
-
Die Standard-XY-Toleranz wird von der Standard-XY-Toleranz der Eingabe-Basis-Features definiert. Um Fehler auf ein Minimum zu reduzieren, sollte der für die Vergleichstoleranz gewählte Wert so klein wie möglich sein. Wird für die XY-Toleranz Null eingegeben, wird eine hundertprozentige Übereinstimmung verlangt.
-
Die Standard-M-Toleranz und die Standard-Z-Toleranz werden von der Standard-M-Toleranz und der Standard-Z-Toleranz der Eingabe-Basis-Features definiert. Die Einheiten sind mit den Einheiten der Eingabe-Basis-Features identisch. Wird für die M-Toleranz und die Z-Toleranz Null eingegeben, wird eine hundertprozentige Übereinstimmung verlangt.
-
Beim Vergleich von GEOMETRY_ONLY müssen die Raumbezüge übereinstimmen. Weichen die Raumbezüge voneinander ab, wird ein Übereinstimmungsfehler ausgegeben. Weicht das Koordinatensystem einer Eingabe ab, wird für die Features ein Übereinstimmungsfehler ausgegeben. Dieses Werkzeug führt keine Projektion "on-the-fly" durch.
-
Bei dem Parameter Felder weglassen handelt es sich um eine Liste der Felder, die nicht in den Vergleich der Feldanzahl einbezogen werden. Die Felddefinitionen und Tabellenwerte für diese Felder werden ignoriert.
-
Attributtoleranzen können nur für Zahlenfelder angegeben werden.
-
Die Ausgabe-Vergleichsdatei enthält alle Ähnlichkeiten und Unterschiede der Eingabe-Basis-Features und der Eingabe-Test-Features. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann. Diese Tabelle kann beispielsweise abgefragt werden, um alle ObjectID-Werte für alle abweichenden Zeilen abzurufen. Das Feld "has_error" zeigt an, dass der Datensatz einen Fehler enthält. Der Wert "true" weist auf eine Differenz hin.
Einer der ersten durchgeführten Vergleiche ist die Feature-Anzahl. Wenn die Feature-Anzahl unterschiedlich ist und der Parameter Vergleich fortsetzen auf "True" festgelegt ist, können die nachfolgenden Vergleichsmeldungen die zusätzlichen Unterschiede zwischen Eingabe-Basis-Features und Eingabe-Test-Features nicht akkurat wiedergeben. Dies liegt daran, dass Feature-Vergleich nicht in der Lage ist, herauszufinden, welche Features in den Eingabe-Test-Features hinzugefügt oder entfernt wurden, und einfach zur nächsten Zeile in jeder Attributtabelle springt. An der Position in der Attributtabelle, wo ein Feature hinzugefügt oder gelöscht wurde, springt das Werkzeug einfach zur nächsten Zeile und startet den Vergleich des Basis-Features mit dem falschen Test-Feature, da das richtige in den Eingabe-Test-Features gelöscht wurde oder ein Feature davor eingefügt wurde.
-
Das ResultObject des Vergleichswerkzeugs hat den Wert "true", wenn keine Unterschiede gefunden werden, und den Wert "false", wenn Unterschiede festgestellt werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_base_features |
Die Eingabe-Basis-Features werden mit den Eingabe-Test-Features verglichen. Eingabe-Basis-Features beziehen sich auf Daten, die als gültig deklariert wurden. Diese Basisdaten verfügen über die richtigen Geometriedefinitionen, Felddefinitionen und Raumbezüge. | Feature Layer |
in_test_features |
Die Eingabe-Test-Features werden mit den Eingabe-Basis-Features verglichen. Eingabe-Test-Features beziehen sich auf Daten, an denen Sie durch Bearbeiten oder Kompilieren neuer Features Änderungen vorgenommen haben. | Feature Layer |
sort_field [sort_field,...] |
Das Feld bzw. die Felder, die zur Sortierung von Datensätzen in der Eingabe-Basistabelle oder der Eingabe-Testtabelle verwendet werden. Die Datensätze werden in aufsteigender Reihenfolge sortiert. Standardmäßig wird mit einem gemeinsamen Feld der Eingabe-Basis-Features und der Eingabe-Test-Features sichergestellt, dass für jedes Eingabe-Dataset dieselbe Zeile verglichen wird. | Field |
compare_type (optional) |
Der Vergleichstyp. Die Standardeinstellung ist ALL. Mit der Standardeinstellung werden alle Eigenschaften der zu vergleichenden Features verglichen.
| String |
ignore_options [ignore_option,...] (optional) |
Diese Eigenschaften werden während des Vergleichs nicht verglichen.
| String |
xy_tolerance (optional) |
Die Entfernung, die den Bereich bestimmt, in welchem die Features als identisch betrachtet werden. Um Fehler auf ein Minimum zu reduzieren, sollte der für die Vergleichstoleranz gewählte Wert so klein wie möglich sein. Die Vergleichstoleranz ist standardmäßig die XY-Toleranz der Eingabe-Basis-Features. | Linear unit |
m_tolerance (optional) |
Die Messwerttoleranz ist der minimale Abstand zwischen Messwerten, ehe sie als gleich betrachtet werden. | Double |
z_tolerance (optional) |
Die Z-Toleranz ist der minimale Abstand zwischen Z-Koordinaten, ehe sie als gleich betrachtet werden. | Double |
attribute_tolerances [[Field, {Tolerance}],...] (optional) |
Der numerische Wert, mit dem festgelegt wird, in welchem Bereich Attributwerte als gleich betrachtet werden. Diese Option ist nur für Zahlenfelder relevant. | Value Table |
omit_field [omit_field,...] (optional) |
Das Feld beziehungsweise die Felder, die beim Vergleich übergangen werden. Die Felddefinitionen und die Tabellenwerte für diese Felder werden ignoriert. | String |
continue_compare (optional) |
Gibt an, ob nach dem Auffinden des ersten Übereinstimmungsfehlers alle Eigenschaften verglichen werden sollen.
| Boolean |
out_compare_file (optional) |
Diese Datei enthält alle Ähnlichkeiten und Unterschiede zwischen den Eingabe-Basis-Features und den Eingabe-Test-Features. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann. | File |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion "FeatureCompare" im unmittelbaren Modus verwenden.
import arcpy arcpy.FeatureCompare_management(r'C:/Workspace/baseroads.shp', r'C:/Workspace/newroads.shp', 'ROAD_ID', 'ALL', 'IGNORE_M;IGNORE_Z', '0.001 METERS', 0, 0, 'Shape_Length 0.001', '#', 'CONTINUE_COMPARE', e = r'C:/Workspace/roadcompare.txt')
Beispiel für die Verwendung des Werkzeugs "FeatureCompare" in einem eigenständigen Skript.
# Name: FeatureCompare.py # Description: Compare two feature classes and return comparison result. # Author: ESRI # import system modules import arcpy try: # Set local variables base_features = "C:/Workspace/baseroads.shp" test_features = "C:/Workspace/newroads.shp" sort_field = "ROAD_ID" compare_type = "ALL" ignore_option = "IGNORE_M;IGNORE_Z" xy_tolerance = "0.001 METERS" m_tolerance = 0 z_tolerance = 0 attribute_tolerance = "Shape_Length 0.001" omit_field = "#" continue_compare = "CONTINUE_COMPARE" compare_file = "C:/Workspace/roadcompare.txt" # Process: FeatureCompare compare_result = arcpy.FeatureCompare_management(base_features, test_features, sort_field, compare_type, ignore_option, xy_tolerance, m_tolerance, z_tolerance, attribute_tolerance, omit_field, continue_compare, compare_file) print compare_result print arcpy.GetMessages() except: # Print error message if an error occurs print arcpy.GetMessages()