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.

Learn more about edgematching

Illustration

Edgematch Features

Usage

    Caution:

    This tool modifies the input data. See Tools that modify or update the input data for more information and strategies to avoid undesired data changes.

  • 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.

  • Note:

    All inputs must be in the same coordinate system.

  • This tool derives new connecting locations from the edgematch links and then modifies the corresponding features so their endpoints connect to 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 their endpoints are connected to the midpoints of the links.
    • When you specify Border Features, the tool uses the locations on the borders that are nearest to the midpoints of the edgematch links as the new connecting locations. The Input Features and the Adjacent Features (if specified) are adjusted so their endpoints are connected to the computed 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 (MOVE_ENDPOINT in Python)—Moves the endpoint of the input line to the new connecting location.
    • Add segment (ADD_SEGMENT in Python)—Adds a straight segment to the end of an input line so it ends at the new connecting location.
    • Adjust vertices (ADJUST_VERTICES in Python)—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.

Syntax

arcpy.edit.EdgematchFeatures(in_features, in_link_features, {method}, {adjacent_features}, {border_features})
ParameterExplanationData 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.

  • MOVE_ENDPOINTMoves the endpoint of a line to the new connecting location. This is the default.
  • ADD_SEGMENTAdds a straight segment at the end of a line so it ends at the new connecting location.
  • ADJUST_VERTICESAdjusts the endpoint of a line to the new connecting location. The remaining vertices are also adjusted so its positional changes are gradually reduced toward the opposite end of the line.
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).

Feature Layer
border_features
(Optional)

Line or polygon features representing borders between the input and adjacent features. When you specify border 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

Derived Output

NameExplanationData Type
out_feature_class

The updated input features.

Feature Layer

Code sample

EdgematchFeatures example 1 (Python window)

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")
EdgematchFeatures example 2 (stand-alone script)

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")

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics