Zusammenfassung
Sucht übereinstimmende, jedoch nicht verbundene Linien-Features entlang der Kanten des Quelldatenbereichs und des zugehörigen Bereichs von benachbarten Daten und generiert Kantenanpassungs-Links von den Quell-Linien zu den abgeglichenen benachbarten Linien.
Abbildung
Verwendung
Linien-Features von separaten benachbarten Datasets wie Straßen von Nachbarländern können Lücken aufweisen oder entlang der aufeinandertreffenden Kanten aufgrund von nicht einheitlichen Datenerfassungen oder aus anderen Gründen verschoben sein. Sie können das Problem der Kantenanpassung zwischen zwei Datasets mit diesem Werkzeug zum Erstellen von Kantenanpassungs-Links und der anschließenden Verwendung des Werkzeugs Kantenanpassungs-Features zum Anpassen von Features lösen, damit diese miteinander verbunden werden. Die zwei Linien-Feature-Gruppen werden als Quellen-Features und benachbarte Features bezeichnet. Dieses Werkzeug ermittelt nicht verbundene, doch einander entsprechende Quellen- und benachbarte Linien innerhalb der angegebenen Suchentfernung und generiert Linien, die Kantenanpassungs-Links entsprechen (auch als Versatz-Links bezeichnet), zwischen diesen.
Wenn sich zwei nicht verbundene, einander entsprechende Features entlang des Kantenbereichs innerhalb der Suchentfernung befinden, ihre Endpunkte jedoch außerhalb der Suchentfernung liegen, werden sie bei der Kantenanpassung nicht berücksichtigt.
Für Ausgabe-Feature-Classes und Eingaben wird dasselbe Koordinatensystem verwendet.
Die Ausgabe-Feature-Class enthält Linien-Features, die Kantenanpassungs-Links mit den folgenden Feldern darstellen.
- SRC_FID: Die Quell-Feature-ID an den Startpunkten der Links.
- ADJ_FID: Die ID des benachbarten Features an den Endpunkten der Links.
- EM_CONF: Diese Werte stellen das Konfidenzniveau der Kantenanpassung dar. Sie berücksichtigen die Anzahl der Kandidaten, die in der Suchentfernung gefunden werden, die Attributübereinstimmungssituationen und Kontinuitäten zwischen den Quellen- und benachbarten Features. Der Wertbereich reicht von größer als 0 bis 100, wobei 100 das höchste Konfidenzniveau darstellt. Je höher der EM_CONF-Wert, desto größer ist die Wahrscheinlichkeit, dass der Link richtig ist. Beispiele dazu finden Sie unter Kantenanpassung.
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 ermittelt wurden, werden die Eigenschaften ihrer Shapes analysiert. Eine Übereinstimmung erfolgt zwischen den Quellen- und benachbarten Features mit der besten Kontinuität. Eine Linie, die den Kantenanpassungs-Link darstellt, wird vom Ende der ursprünglichen Linie bis zum Ende der übereinstimmenden benachbarten Linie generiert.
Sie können diese Links wie beliebige andere Linien-Features in einer Karte anzeigen. Die Linien können mit einem Pfeil am Ende gezogen werden, um eine Karte ähnlich der in der Abbildung oben gezeigten zu erstellen.
Wenn Sie mindestens ein Feldpaar für den Parameter Felder abgleichen angeben, werden räumlich abgeglichene Features mit den Feldwerten verglichen. Angenommen, das Aktualisierungs- und Basis-Feature enthalten beide ein STREET_NAME-Feld mit Straßennamen. Wenn ein Quellen-Feature räumlich mit zwei benachbarten Features übereinstimmt, jedoch nur ein benachbarter Kandidat über denselben STREET_NAME-Wert wie das Quellen-Feature verfügt, handelt es sich bei diesem 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 Attributabgleichsbedingungen wirken sich auf die Werte im EM_CONF-Feld wie oben beschrieben aus.
Die Genauigkeit der Kantenanpassung ist abhängig von der Qualität und Komplexität der Daten entlang der Kanten der zwei Eingaben.
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. Andernfalls können unerwartete Fehler auftreten.
Es empfiehlt sich, die Ergebnisse zu überprüfen und notwendige Korrekturen vorzunehmen. Während der Nachprüfung und Nachbearbeitung können Sie die Links mit vorhandenen Editierwerkzeugen bearbeiten und z. B. einen unerwünschten Link löschen, einen Link ändern, indem Sie den ersten oder letzten Stützpunkt verschieben, oder ggf. einen neuen Link hinzufügen. Aktualisieren Sie die Werte SRC_FID und TGT_FID entsprechend.
Syntax
arcpy.edit.GenerateEdgematchLinks(source_features, adjacent_features, out_feature_class, search_distance, {match_fields})
Parameter | Erklärung | Datentyp |
source_features | Linien-Features als Quell-Features für die Kantenanpassung. Alle Kantenanpassungs-Links beginnen an Quell-Features. | Feature Layer |
adjacent_features | Linien-Features, die neben Quell-Features liegen. Alle Kantenanpassungs-Links enden an abgeglichenen benachbarten Features. | Feature Layer |
out_feature_class | Ausgabe-Feature-Class mit Linien, die Kantenanpassungs-Links darstellen. | 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) | Felder aus Quellen- und Ziel-Features, wobei Zielfelder aus benachbarten Features stammen. Falls angegeben, wird jedes Feldpaar auf Übereinstimmungskandidaten geprüft, um die Ermittlung des richtigen Treffers zu ermöglichen. | Value Table |
Codebeispiel
GenerateEdgematchLinks – Beispiel 1 (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion GenerateEdgematchLinks im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateEdgematchLinks_edit("countyA_Roads.shp",
"countyB_Roads.shp", "em_Links.shp"
"25 Feet")
GenerateEdgematchLinks – Beispiel 2 (eigenständiges Skript)
Das folgende eigenständige Skript ist ein einfaches Beispiel für die Anwendung der Funktion GenerateEdgematchLinks in einer Skriptumgebung.
# Name: GenerateRubbersheetLinks_example_script2.py
# Description: Generates links for rubbersheeting spatial adjustment. The links go
# from base road data to newly updated road data. The links are then
# analyzed for potential errors; they are finally used to adjust the
# base roads (a copy is made) to better align with the updated roads.
# 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
sourceFeatures = "baseRoads"
targetFeatures = "updateRoads"
grlOutput = "grlinks_out"
grlOutputPts = "grlinks_out_pnt"
search_distance = "300 Feet"
match_fields = "FULLNAME RD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links
arcpy.GenerateRubbersheetLinks_edit(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateRubbersheetLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for rubbersheeting.
#
# One of the common errors are intersecting or touching links. Their locations
# can be found by the process below.
# ====================================================================================
# Find locations where links intersect or touch; the result contains coincident points
arcpy.Intersect_analysis(grlOutput, qaLocations, "", "", "POINT")
# Delete coincident points
arcpy.DeleteIdentical_management(qaLocations, "Shape")
# ====================================================================================
# Note 2: At this point you can manually inspect locations in qaLocations; delete or
# modify links as needed.
# ====================================================================================
# Make a copy of the sourceFeatures for rubbersheeting
arcpy.CopyFeatures_management(sourceFeatures, "sourceFeatures_Copy")
# Use the links for rubbersheeting
arcpy.RubbersheetFeatures_edit("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Nein
- Advanced: Ja