Zusammenfassung
Dieses Werkzeug erkennt, wo die Aktualisierungs-Linien-Features räumlich mit den Basis-Linien-Features übereinstimmen und ob es räumliche Änderungen, Attributänderungen, beide oder keine Änderungen gibt. Es erstellt eine Ausgabe-Feature-Class mit abgeglichenen Aktualisierungs-Features samt Informationen zu Änderungen sowie Aktualisierungs-Features ohne Übereinstimmung und Basis-Features ohne Übereinstimmung.
Weitere Informationen zur Funktionsweise des Feature-Abgleichs
Bild
Verwendung
Ein typischer Anwendungsfall für dieses Werkzeug wäre etwa eine Reihe von Linien-Features (z. B. Straßen), für die regelmäßig Aktualisierungen von Partnern in Form von neuen Straßen-Features eingehen. Sie möchten herausfinden, welche aktualisierten Features Änderungen von vorhandenen Basis-Features sind oder neu hinzugefügt werden müssen und welche Basis-Features alt sind und gelöscht werden sollten. Mit diesem Werkzeug werden die in den Aktualisierungs- und Basis-Linien-Datasets übereinstimmenden Features erkannt und es wird ermittelt, wo es räumliche Änderungen, Attributänderungen oder beide oder keine Änderungen gibt. Danach wird eine Ausgabe-Feature-Class mit den Änderungsinformationen zu den Features erstellt.
Die Ausgabe-Feature-Class enthält alle beteiligten Aktualisierungs-Features (mit und ohne Übereinstimmung) und alle Basis-Features ohne Übereinstimmung. Die Informationen zu den erkannten Änderungen werden in die folgenden Felder geschrieben:
- UPDATE_FID – Die Feature-ID des Aktualisierungs-Features. Der Wert lautet bei einem Basis-Feature ohne Übereinstimmung -1.
- BASE_FID – Die Feature-ID des Basis-Features. Der Wert lautet bei einem Aktualisierungs-Feature ohne Übereinstimmung -1.
- CHANGE_TYPE – Der Typ der erkannten Änderung; die folgenden Werte werden dargestellt:
- S für "Spatial" (räumlich) zum Angeben eines abgeglichenen Aktualisierungs-Features mit einer räumlichen Änderung.
- A für "Attribute" (Attribut) zum Angeben eines abgeglichenen Aktualisierungs-Features mit einer Attributänderung.
- SA für "Spatial" (räumlich) und "Attribute" (Attribut) zum Angeben eines abgeglichenen Aktualisierungs-Features mit einer räumlichen Änderung und Attributänderung.
- NC für "No Change" (keine Änderung) zum Angeben eines abgeglichenen Aktualisierungs-Features ohne Änderung.
- N für "New" (Neu) zum Angeben eines Aktualisierungs-Features ohne Übereinstimmung, das neu zu den Basisdaten hinzukommt.
- D für "Deletion" (Löschen) zum Angeben eines Basis-Features ohne Übereinstimmung, das möglicherweise aus den Basisdaten gelöscht werden muss.
Der Feature-Abgleich erfolgt zunächst anhand der Suchentfernung und dem optionalen Parameter Felder abgleichen. Zum Speichern der Zuordnungsinformationen kann eine Ausgabe-Zuordnungstabelle erzeugt werden.
Der Parameter Suchentfernung wird zum Suchen von Übereinstimmungskandidaten verwendet. Verwenden Sie eine Entfernung, die lang genug ist, um die meisten Verschiebungen zwischen übereinstimmenden Features zu erfassen, jedoch nicht so lang, dass dadurch zu viele Kandidaten unnötig verarbeitet und potenziell falsche Treffer erzielt werden.
Nachdem Übereinstimmungskandidaten gefunden wurden, werden sie durch eine Reihe geometrischer Messwerte weiter überprüft, um zu bestimmen, ob sie ähnlich genug sind, um als räumlich übereinstimmend zu gelten.
Wenn Sie ein oder mehrere Feldpaare für den Parameter Felder abgleichen angeben, werden räumlich abgeglichene Kandidaten mit diesen Feldwerten verglichen, um die richtige Übereinstimmung zu finden. Angenommen, das Aktualisierungs- und Basis-Feature enthalten beide ein STREET_NAME-Feld mit Straßennamen. Wenn ein Aktualisierungs-Feature räumlich mit zwei Basis-Features übereinstimmt, jedoch nur ein Basiskandidat über denselben STREET_NAME-Wert wie das Aktualisierungs-Feature verfügt, handelt es sich dabei um die bessere Übereinstimmung. Beim Vergleich der Textzeichenfolgen wird nicht zwischen Groß- und Kleinschreibung unterschieden. First St und first st werden deshalb als gleich betrachtet.
Die Ausgabe-Zuordnungstabelle ist optional. Diese Zuordnungstabelle enthält vollständige Informationen zum Feature-Abgleich, z. B. die Quellen- und Ziel-FIDs, Übereinstimmungsgruppen, Übereinstimmungsbeziehungen und das Konfidenzniveau des Abgleichs aus Bedingungen für den räumlichen und Attributabgleich. Diese Informationen können die Interpretation der Übereinstimmungssituationen ermöglichen und die Nachprüfung, Nachbearbeitung und weitere Analyse vereinfachen. Weitere Informationen finden Sie unter Feature-Abgleich und Zuordnungstabelle.
In der Ausgabe-Zuordnungstabelle stellen die Werte in den Feldern SRC_FID und TGT_FID die Aktualisierungs-Feature-IDs und Basis-Feature-IDs dar.
Die Identifizierung von Änderungen erfolgt nach dem Feature-Abgleich. Der räumliche Zustand und Attributzustand aller abgeglichenen Aktualisierungs-Features wird mit den entsprechenden Basis-Features verglichen, um die zugehörigen CHANGE_TYPE-Werte zu bestimmen.
Eine räumliche Änderung (Änderungstyp S) wird erkannt, wenn eine oder beide der folgenden Bedingungen zutreffen:
- Die abgeglichenen Aktualisierungs-Features unterscheiden sich von den ihnen entsprechenden Basis-Features in der Topologie, etwa wenn ein Aktualisierungs-Feature mit zwei Basis-Features übereinstimmt.
- Ein Teil eines Aktualisierungs- oder Basis-Features fällt aus der Änderungstoleranz heraus.
Die Einstellung Toleranz ändern dient als Breite einer Pufferzone um die Aktualisierungs- und Basis-Features herum. Alle abgeglichenen Aktualisierungs- und Basis-Features werden mit dieser Toleranz verglichen. Falls Teile eines Aktualisierungs-Features außerhalb der Zone um das abgeglichene Basis-Feature liegen oder falls Teile eines Basis-Features außerhalb der Zone um das abgeglichene Aktualisierungs-Feature liegen, wird dies als räumliche Änderung betrachtet. Bei der Angabe eines Wertes, der größer als 0 ist, enthält die Ausgabe zwei zusätzliche Felder:
- LEN_PCT – In diesem Feld werden Prozentwerte gespeichert, die jeweils durch den Vergleich der Länge des Teils eines Aktualisierungs- oder Basis-Features, das aus der Änderungstoleranz herausfällt, mit der Gesamtlänge berechnet wird. Der Wert 0 bedeutet, dass das Aktualisierungs- oder Basis-Feature vollständig in die Änderungstoleranzzone fällt. Der Wert 100 bedeutet, dass das gesamte Aktualisierungs- oder Basis-Feature sich außerhalb dieser Zone befindet.
- LEN_ABS – In diesem Feld werden Längenwerte in Feature-Einheiten gespeichert, wobei jeder Wert die absolute Länge des Teils eines Aktualisierungs- oder Basis-Features darstellt, der aus der Änderungstoleranz herausfällt.
Falls angegeben, wird eine Attributänderung (Änderungstyp A) anhand der Vergleichsfelder erkannt.
Wenn Sie ein oder mehrere Feldpaare für den Parameter Felder vergleichen angeben, werden abgeglichene Features mit diesen Feldern verglichen, um zu bestimmen, ob es eine Attributänderung gibt. Beim Vergleich der Textzeichenfolgen wird nicht zwischen Groß- und Kleinschreibung unterschieden. First St und first st werden deshalb als gleich betrachtet.
Wenn sowohl räumliche Änderungen als auch Attributänderungen für ein abgeglichenes Aktualisierungs-Feature erkannt werden, erhält es den Änderungstyp "SA". Wenn weder räumliche Änderungen noch Attributänderungen für ein abgeglichenes Aktualisierungs-Feature erkannt werden, wird dies als keine Änderung betrachtet, und das Feature erhält es den Änderungstyp "NC".
Die Vereinigung der Eingabe-Ausdehnungen wird als Verarbeitungsausdehnung verwendet. Die Anzahl der beteiligten Quellen- und Ziel-Features wird in den Verarbeitungsmeldungen aufgeführt.
Die Genauigkeit des Feature-Abgleichs ist in hohem Maße von der Qualität, Komplexität und Ähnlichkeit der Daten der zwei Eingaben abhängig.
Während der Vorverarbeitung müssen Sie die Datenfehler minimieren und relevante Features auswählen. Im Allgemeinen ist es hilfreich, wenn die Features in einem Eingabe-Dataset topologisch richtig sind, eine gültige Geometrie aufweisen und Singlepart und nicht doppelt sind. Anderenfalls können unerwartete Fehler auftreten.
Sie können die erkannten Änderungen in der Ausgabe-Feature-Class überprüfen. Möglicherweise werden Sie feststellen, dass die räumlichen Unterschiede zwischen den zwei Datenquellen signifikant sind und eine der beiden angepasst werden muss, damit sie besser mit der anderen übereinstimmt. Außerdem kann es empfehlenswert sein, Attribute in Aktualisierungs-Features und Basis-Features zu übertragen. Diese Änderungen können Sie mithilfe der Werkzeuge "Rubbersheeting" und "Attributübertragung" im Toolset "Zusammenführung" vornehmen.
Syntax
DetectFeatureChanges_management (update_features, base_features, out_feature_class, search_distance, {match_fields}, {out_match_table}, {change_tolerance}, {compare_fields})
Parameter | Erläuterung | Datentyp |
update_features | Linien-Features, die mit den Basis-Features verglichen werden sollen. | Feature Layer |
base_features | Linien-Features, die zur Änderungserkennung mit Aktualisierungs-Features verglichen werden sollen. | Feature Layer |
out_feature_class | Ausgabe-Line-Feature-Class mit Änderungsinformationen. Die Ausgabe enthält alle beteiligten Aktualisierungs-Features (mit und ohne Übereinstimmung) und alle Basis-Features ohne Übereinstimmung. | Feature Class |
search_distance | Die für die Suche nach Übereinstimmungskandidaten verwendete Entfernung. Die Entfernung muss angegeben und größer als null sein. Sie können eine bevorzugte Einheit auswählen. Standardmäßig wird die Feature-Einheit verwendet. | Linear unit |
match_fields [[source_field, target_field],...] (optional) | Liste der Felder aus Aktualisierungs- und Basis-Features. Falls angegeben, wird jedes Feldpaar auf Übereinstimmungskandidaten geprüft, um die Ermittlung des richtigen Treffers zu ermöglichen. | Value Table |
out_match_table (optional) | Die Ausgabetabelle mit vollständigen Informationen zum Feature-Abgleich. | Table |
change_tolerance (optional) | Die Entfernung, mit deren Hilfe bestimmt wird, ob eine räumliche Änderung vorliegt. Alle abgeglichenen Aktualisierungs- und Basis-Features werden mit dieser Toleranz verglichen. Wenn Teile eines Aktualisierungs- oder Basis-Features außerhalb der Zone um das abgeglichene Feature liegen, wird dies als räumliche Änderung betrachtet. Die Entfernung kann gleich oder größer als Null sein. Der Standardwert ist 0. Bei der Angabe eines Wertes, der größer als 0 ist, enthält die Ausgabe die Felder LEN_PCT und LEN_ABS. Sie können eine bevorzugte Einheit auswählen. Standardmäßig wird die Feature-Einheit verwendet. | Linear unit |
compare_fields [[source_field, target_field],...] (optional) |
Mit diesen Feldern wird bestimmt, ob eine Attributänderung zwischen abgeglichenen Aktualisierungs- und Basis-Features vorliegt. | Value Table |
Codebeispiel
DetectFeatureChanges – Beispiel 1 (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "DetectFeatureChanges" im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.DetectFeatureChanges_edit("update_Roads.shp",
"base_Roads.shp", "output_changes.shp"
"25 Feet", #, #, "7.6 Meterd",
["rdClass", "roadClass"])
DetectFeatureChanges – Beispiel 2 (eigenständiges Python-Skript)
Das folgende eigenständige Skript ist ein Beispiel für die Anwendung der Funktion "DetectFeatureChanges" in einer Skriptumgebung.
# Name: DetectFeatureChanges_example_script2.py
# Description: Perform change detection between newly received road data and
# existing road data and find the number of new roads and the
# total length of them.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"
# Set local variables
updateFeatures = "updateRoads"
baseFeatures = "baseRoads"
dfcOutput = "dfc_out"
search_distance = "300 Feet"
match_fields = "RD_NAME FULLNAME"
statsTable = "new_roads_stats"
# Perform spatial change detection
arcpy.DetectFeatureChanges_management(updateFeatures, baseFeatures, dfcOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of DetectFeatureChanges may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct CHANGE_TYPE N, which
# represents un-matched update feautres, before further calculations.
#
# One of the quick ways of checking whether the CHANGE_TYPE N features have
# matching base features is to find their mid-points and use them to search for
# features in base data, as processed below.
# ====================================================================================
# ======== Check update roads with CHANGE_TYPE N for potential match
# Make Feature Layer with selection of CHANGE_TYPE = 'N' (un-matched update features)
arcpy.MakeFeatureLayer_management(dfcOutput, "sel_N_layer", "CHANGE_TYPE = 'N'")
# Get mid-points of the selected features; the mid-points carry all the attributes.
arcpy.FeatureVerticesToPoints_management("sel_N_layer", "in_memory\midPts", "MID")
# Find nearest base features from the mid-points
arcpy.Near_analysis("in_memory\midPts", baseFeatures, "300 Feet")
# ====================================================================================
# Note 2: At this point you can manually inspect the midPts by the NEAR_DIST values;
# the lower the values, the higher chance (not always) a match was missed in the
# dfc process. Delete features from midPts that have found matching base features
# before further process.
# ====================================================================================
# Transfer CHANGE_TYPE values from features of midPts to update features
arcpy.JoinField_management(updateFeatures, "OBJECTID", "in_memory\midPts", "UPDATE_FID", "CHANGE_TYPE")
# Get the count of new roads and the total length; the remaining roads have
# Null values for CHANGE_TYPE.
arcpy.Frequency_analysis(updateFeatures, statsTable, "CHANGE_TYPE", "Shape_Length")
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Nein
- ArcGIS for Desktop Standard: Nein
- ArcGIS for Desktop Advanced: Ja