Edgematch Features (Editing)
Summary
Modifies input line features by spatially adjusting their shapes, guided by the specified edgematch links, so they become connected with the lines in the adjacent dataset.
Illustration
Usage
-
This tool is intended to be used following the Generate Edgematch Links tool. It spatially adjusts the shapes of the input lines, guided by the input link features created by the Generate Edgematch Links tool, so they are properly connected with the adjacent line features along the edge areas. The input link features must have SRC_FID and ADJ_FID fields.
This tool derives new connecting locations from the edgematch links and then modifies the corresponding features so they end at the new locations. Depending on which of the inputs (Input Features, Adjacent Features, and Border Features) you provide, the new connecting locations are determined and relevant features adjusted accordingly. This adjustment ensures matched features are connected, as described below:
- When you provide Input Features only, the endpoints of the edgematch links are taken as the new connecting locations. The input lines associated with the edgematch links (that is, their feature IDs match the SRC_FID values of the links) are adjusted so they end at the endpoints of the links. This ensures they are connected with the intended adjacent features, which should have participated in the generation of the edgematch links.
- When you provide both Input Features and Adjacent Features, the midpoints of the edgematch links are taken as the new connecting locations. Both of the associated input lines and the associated adjacent lines (that is, their feature IDs match the ADJ_FID values of the links) are adjusted so they end and are connected at the midpoints of the links.
- When you add the Border Features, you must also specify Adjacent Features. The tool finds the locations on the borders that are nearest to the midpoints of the links as the new connecting locations. Both of the input lines and adjacent lines associated with the edgematch links are adjusted so they are connected at the border locations.
The Method parameter has three edgematch options to adjust features. Each option applies to either the input features only or both input features and adjacent features, as discussed above.
- MOVE_ENDPOINT—Moves the endpoint of the input line to the new connecting location.
- ADD_SEGMENT—Adds a straight segment to the end of an input line so it ends at the new connecting location.
- ADJUST_VERTICES—Adjusts the endpoint of a line to the new connecting location. The remaining vertices are also adjusted so their positional changes are gradually reduced toward the opposite end of the line.
This tool modifies the input data. See Tools with no outputs for more information and strategies to avoid undesired data changes.
All inputs must be in the same coordinate system.
Syntax
Parameter | Explanation | Data Type |
in_features |
Input line features to be adjusted. | Feature Layer |
in_link_features |
Input line features representing edgematch links. | Feature Layer |
method (Optional) |
Edgematch method to be used to adjust either input features only or both input features and adjacent features to new connecting locations.
| String |
adjacent_features (Optional) |
Line features that are adjacent to input features. If specified, both the input and adjacent features are adjusted to meet at new connecting locations, either the midpoints of the edgematch links or locations nearest to the midpoints of the links on the border features (if specified). You must provide adjacent features if you provide border features. | Feature Layer |
border_features (Optional) |
Line or polygon features representing borders between the input and adjacent features. When you specify the border features, you must also specify the adjacent features. Both input and adjacent features are adjusted to meet at new connecting locations nearest to the midpoints of the links on the border features. | Feature Layer |
Code Sample
The following Python window script demonstrates how to use the EdgematchFeatures function in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.EdgematchFeatures_edit("cityA_Roads.shp", "em_Links.shp"
"MOVE_ENDPOINT")
The following stand-alone Python script is an example of how to apply the EdgematchFeatures function in a scripting environment.
# 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")