Feature-Vergleich (Data Management)

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

arcpy.management.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})
ParameterErklärungDatentyp
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.

  • ALLAlle Eigenschaften der Feature-Classes werden verglichen. Dies ist die Standardeinstellung.
  • GEOMETRY_ONLYNur die Geometrien der Feature-Classes werden verglichen.
  • ATTRIBUTES_ONLYNur die Attribute und ihre Werte werden verglichen.
  • SCHEMA_ONLYNur das Schema der Feature-Classes wird verglichen.
  • SPATIAL_REFERENCE_ONLYNur die Raumbezüge der beiden Feature-Classes werden verglichen.
String
ignore_options
[ignore_option,...]
(optional)

Diese Eigenschaften werden nicht verglichen.

  • IGNORE_MDie Messwerteigenschaften werden nicht verglichen.
  • IGNORE_ZDie Höheneigenschaften werden nicht verglichen.
  • IGNORE_POINTIDDie Punkt-ID-Eigenschaften werden nicht verglichen.
  • IGNORE_EXTENSION_PROPERTIESDie Erweiterungseigenschaften werden nicht verglichen.
  • IGNORE_SUBTYPESDie Subtypes werden nicht verglichen.
  • IGNORE_RELATIONSHIPCLASSESDie Beziehungsklassen werden nicht verglichen.
  • IGNORE_REPRESENTATIONCLASSESDie Repräsentationsklassen werden nicht verglichen.
  • IGNORE_FIELDALIASDie Feld-Aliasnamen 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.

  • NO_CONTINUE_COMPARENach dem Auffinden des ersten Übereinstimmungsfehlers wird angehalten. Dies ist die Standardeinstellung.
  • CONTINUE_COMPARENach dem Auffinden des ersten Übereinstimmungsfehlers werden weitere Eigenschaften verglichen.
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

NameErklärungDatentyp
compare_status

Der Vergleichsstatus lautet 'true', wenn keine Unterschiede gefunden werden, und 'false', wenn Unterschiede festgestellt werden.

Boolesch

Codebeispiel

FeatureCompare – Beispiel 1 (Python-Fenster)

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')
FeatureCompare – Beispiel 2 (eigenständiges Skript)

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

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

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

Verwandte Themen