Zusammenfassung
Vergleicht zwei Feature-Classes oder Layer und gibt die Vergleichsergebnisse zurück.
Verwendung
Mit diesem Werkzeug werden Meldungen mit den Vergleichsergebnissen zurückgegeben. Standardmäßig wird die Ausführung nach dem Auffinden des ersten Übereinstimmungsfehlers beendet. Sollen alle Abweichungen in den Bericht aufgenommen werden, aktivieren Sie den Parameter Vergleich fortsetzen.
Mit Feature-Vergleich können Abweichungen bei Geometrie, Tabellenwerten, Raumbezügen und Felddefinitionen angegeben werden.
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 Alle (ALL in Python) 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 Erweiterungseigenschaften ignorieren (IGNORE_EXTENSION_PROPERTIES in Python) 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 durch die 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 0 eingegeben, wird eine hundertprozentige Übereinstimmung verlangt.
Die Standard-M-Toleranz und die Standard-Z-Toleranz werden durch die Standard-M-Toleranz und die 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 0 eingegeben, wird eine hundertprozentige Übereinstimmung verlangt.
Beim Vergleich von Nur Geometrie (GEOMETRY_ONLY in Python) 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 den Eingabe-Basis-Features und den Eingabe-Test-Features nicht akkurat wiedergeben. Dies liegt daran, dass das Werkzeug 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.
Bei der Verwendung dieses Werkzeugs in Python können Sie den Status des Werkzeugs mit result.getOutput(1) abrufen. Der Wert lautet 'true', wenn keine Unterschiede gefunden werden, und 'false', wenn Unterschiede festgestellt werden.
Weitere Informationen zur Verwendung von Werkzeugen in Python
Syntax
FeatureCompare(in_base_features, in_test_features, sort_field, {compare_type}, {ignore_options}, {xy_tolerance}, {m_tolerance}, {z_tolerance}, {attribute_tolerances}, {omit_field}, {continue_compare}, {out_compare_file})
Parameter | Erklärung | 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-Basis-Features und der Eingabe-Test-Features verwendet werden. Die Datensätze werden in aufsteigender Reihenfolge sortiert. Durch die Sortierung nach einem gemeinsamen Feld der Eingabe-Basis-Features und der Eingabe-Test-Features wird sichergestellt, dass für jedes Eingabe-Dataset dieselbe Zeile verglichen wird. | Value Table |
compare_type (optional) | Der Vergleichstyp. Mit der Standardeinstellung Alle werden alle Eigenschaften der zu vergleichenden Features verglichen.
| String |
ignore_options [ignore_option,...] (optional) | Diese Eigenschaften werden 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 die minimale Entfernung zwischen Z-Koordinaten, ehe sie als identisch 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 in_base_features und den in_test_features. Diese Datei ist eine kommagetrennte Textdatei, die in ArcGIS als Tabelle angezeigt und verwendet werden kann. | File |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
compare_status | Der Vergleichsstatus lautet 'true', wenn keine Unterschiede gefunden werden, und 'false', wenn Unterschiede festgestellt werden. | Boolesch |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion FeatureCompare im unmittelbaren Modus verwendet wird.
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', 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.
# import system modules
import arcpy
# 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[1])
print(arcpy.GetMessages())
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja