Kantenanpassung für Features (Editing)

Zusammenfassung

Ändert Eingabe-Linien-Features, indem ihre Form mithilfe der angegebenen Kantenanpassungs-Links räumlich angepasst wird, sodass sie mit den Linien im benachbarten Dataset verbunden werden.

Weitere Informationen zur Kantenanpassung

Abbildung

Kantenanpassung für Features

Verwendung

    Vorsicht:

    Mit diesem Werkzeug werden die Eingabedaten geändert. Weitere Informationen und Strategien zur Vermeidung unerwünschter Datenänderungen finden Sie unter Werkzeuge, die Eingabedaten ändern oder aktualisieren.

  • Dieses Werkzeug ist für die Verwendung im Anschluss an das Werkzeug Kantenanpassungs-Links erstellen vorgesehen. Damit werden die Formen der Eingabelinien mithilfe der vom Werkzeug Kantenanpassungs-Links erstellen erstellten Eingabe-Link-Features räumlich angepasst, sodass sie ordnungsgemäß mit den benachbarten Linien-Features entlang der Kantenbereiche verbunden werden. Die Eingabe-Link-Features müssen die Felder SRC_FID und ADJ_FID enthalten.

  • Hinweis:

    Alle Eingaben müssen sich im selben Koordinatensystem befinden.

  • Dieses Werkzeug leitet neue Verbindungspunkte aus den Kantenanpassungs-Links ab und ändert dann die entsprechenden Features, sodass deren Endpunkte mit den neuen Punkten verbunden werden. Abhängig von der bereitgestellten Eingabe (Eingabe-Features, Benachbarte Features und Rahmen-Features) werden die neuen Verbindungsstellen bestimmt und die relevanten Features entsprechend angepasst. Diese Anpassung stellt sicher, dass abgeglichene Features verbunden sind, wie unten erläutert:

    • Wenn Sie nur Eingabe-Features angeben, sind die Endpunkte der Kantenanpassungs-Links die neuen verbundenen Positionen. Die mit den Kantenanpassungs-Links verknüpften Eingabe-Linien (d. h. deren Feature-IDs stimmen mit den SRC_FID-Werten der Links überein) werden angepasst, sodass sie an den Endpunkten der Links enden. Auf diese Weise wird sichergestellt, dass sie mit den gewünschten benachbarten Features, die an der Erstellung der Kantenanpassungs-Links beteiligt waren, verbunden sind.
    • Wenn Sie sowohl Eingabe-Features als auch benachbarte Features angeben, sind die Punkte in der Mitte der Kantenanpassungs-Links die neuen verbundenen Positionen. Die verknüpften Eingabe-Linien und die verknüpften benachbarten Linien (d. h. deren Feature-IDs stimmen mit den ADJ_FID-Werten der Links überein) werden angepasst, sodass deren Endpunkte jeweils mit den Mittelpunkten der Links verbunden sind.
    • Wenn Sie Rahmen-Features angeben, verwendet das Werkzeug die Positionen auf den Rahmen, die den Mittelpunkten der Kantenanpassungs-Links am nächsten liegen, als die neuen Verbindungsstellen. Eingabe-Features und Benachbarte Features (falls angegeben) werden angepasst, sodass deren Endpunkte mit den berechneten Randpositionen verbunden werden.

    Der Parameter Methode verfügt über drei Kantenanpassungsoptionen zum Anpassen von Features. Jede Option gilt entweder nur für die Eingabe-Features oder für die Eingabe-Features und benachbarten Features, wie oben erläutert.

    • Endpunkt verschieben (MOVE_ENDPOINT in Python): Verschiebt den Endpunkt der Eingabelinie an die neue Verbindungsstelle.
    • Segment hinzufügen (ADD_SEGMENT in Python): Fügt am Ende einer Eingabelinie ein gerades Segment hinzu, sodass diese an der neuen Verbindungsstelle endet.
    • Stützpunkte anpassen (ADJUST_VERTICES in Python): Passt den Endpunkt einer Linie an die neue Verbindungsstelle an. Die verbleibenden Stützpunkte werden ebenfalls angepasst, sodass der Grad der Änderung der Position nach und nach gegen das gegenüberliegende Ende der Linie reduziert wird.

Syntax

arcpy.edit.EdgematchFeatures(in_features, in_link_features, {method}, {adjacent_features}, {border_features})
ParameterErklärungDatentyp
in_features

Eingabe-Linien-Features, die angepasst werden sollen.

Feature Layer
in_link_features

Eingabe-Linien-Features, die Kantenanpassungs-Links darstellen.

Feature Layer
method
(optional)

Methode zur Kantenanpassung, die verwendet wird, um entweder nur Eingabe-Features oder sowohl Eingabe-Features als auch benachbarte Features an neue Verbindungsstellen anzupassen.

  • MOVE_ENDPOINTVerschiebt den Endpunkt einer Linie an die neue Verbindungsstelle. Dies ist die Standardeinstellung.
  • ADD_SEGMENTFügt ein gerades Segment am Ende einer Linie hinzu, sodass diese an der neuen Verbindungsstelle endet.
  • ADJUST_VERTICESPasst den Endpunkt einer Linie an die neue Verbindungsstelle an. Die verbleibenden Stützpunkte werden ebenfalls angepasst, sodass der Grad der Änderung der Position nach und nach gegen das gegenüberliegende Ende der Linie abnimmt.
String
adjacent_features
(optional)

Linien-Features, die neben Eingabe-Features liegen. Falls angegeben, werden die Eingabe-Features und die benachbarten Features so angepasst, dass sie an neuen Verbindungsstellen aufeinandertreffen. Diese entsprechen entweder den Mittelpunkten der Kantenanpassungs-Links oder den Positionen, die den Mittelpunkten der Links an den Rahmen-Features am nächsten liegen.

Feature Layer
border_features
(optional)

Linien- oder Polygon-Features, die Ränder zwischen den Eingabe- und benachbarten Features darstellen. Wenn Sie Rahmen-Features angeben, werden die Eingabe-Features und die benachbarten Features so angepasst, dass sie an neuen Verbindungsstellen, die den Mittelpunkten der Links an den Rahmen-Features am nächsten liegen, aufeinandertreffen.

Feature Layer

Abgeleitete Ausgabe

NameErklärungDatentyp
out_feature_class

Die aktualisierten Eingabe-Features.

Feature-Layer

Codebeispiel

EdgematchFeatures – Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion EdgematchFeatures im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.EdgematchFeatures_edit("cityA_Roads.shp", "em_Links.shp"
                             "MOVE_ENDPOINT")
EdgematchFeatures – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Python-Skript ist ein Beispiel für die Anwendung der Funktion EdgematchFeatures in einer Skriptumgebung.

# Name:        EdgematchFeatures_example_script2.py
# Description: Performs edgematching spatial adjustment using links produced by
#              GenerateEdgematchLinks. The links go from input features to adjacent 
#              features. The links are then checked for intersecting conditions, which
#              might not be desired; they are finally used to adjust input features 
#              (a copy is made) to connect with the matched adjacent feautures.
# 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
inFeatures = "roads1"
adjFeatures = "roads2"
gelOutput = "gelinks_out"

search_distance = "200 Feet"
match_fields = "NAME ROAD_NAME"

qaLocations = "qa_locations"

# Generate rubbersheet links
arcpy.GenerateEdgematchLinks_edit(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)

# ====================================================================================
# Note 1:  The result of GenerateEdgematchLinks may contain errors; see tool reference.
#          Inspection and editing may be necessary to ensure correct links before using
#          them for edgematching.
#
#          One of the possible errors are undesired 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(gelOutput, 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 inFeatures for edgematching
inFeature_Copy = inFeatures + "_Copy"
arcpy.CopyFeatures_management(inFeatures, inFeature_Copy)

# Use the links to adjust the copy of the input features
arcpy.EdgematchFeatures_edit(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")

Lizenzinformationen

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

Verwandte Themen