Generate Rubbersheet Links (Editing)


Finds where the source line features spatially match the target line features and generates lines representing links from source locations to corresponding target locations for rubbersheeting.


Generate Rubbersheet Links


  • Line features from different data sources and covering the same area, for example, roads maintained by a city government and roads of the same city from a commercial data provider, may not perfectly line up due to inconsistent data collections or other reasons. The spatial shifts between corresponding features are often not uniform. If you know the data of one source is less accurate than the other, you can improve the data accuracy through rubbersheeting adjustment by using this tool to generate rubbersheet links, followed by the Rubbersheet Features tool to perform the adjustment. The two sets of line features are referred to as source features and target features (usually more accurate). This tool finds corresponding source and target lines within the specified search distance and generates rubbersheet links (also known as displacement links) between them.

  • Note:

    All inputs must be in the same coordinate system.

  • The union of input extents is used as processing extent. The counts of participating source and target features are reported in the processing messages.

  • The output feature class contains lines representing regular rubbersheet links for input to the Rubbersheet Features tool. A regular link connects a source location to a matched, nonidentical target location.

    You can display these links on a map just as you would any other line features. The lines can be drawn with an arrow at their ends to produce a map similar to the illustration above.

  • In addition to the output line feature class, a derived point feature class is created by this tool that contains the identity links. An identity link connects a source location to a matched identical target location; locations with identity links are not moved in rubbersheeting. If there are no identical source locations and target locations are matched, no identity links are generated; therefore, the output point feature class is empty. You only need to supply the point feature class as input to the Rubbersheet Features tool when it is not empty. The output point feature class is in the same location as the output feature class and has the same name as the output feature class but with a suffix of _pnt. For example, if the output feature class is named outputLinks, the output point feature class is named outputLinks_pnt.

  • Both outputs (the regular rubbersheet links and the identity links) have the following fields:

    • SRC_FID—The source feature IDs at the starting points of the links. The value is -1 if the location is shared by more than one source feature (for example, a road intersection).
    • TGT_FID—The target feature IDs at the ending points of the links. The value is -1 if the location is shared by more than one target features (for example, a road intersection)

  • The Search Distance parameter is used in finding match candidates. Use a distance large enough to catch most of the shifts between corresponding features, but not too large to cause unnecessary processing of too many candidates and potentially getting wrong matches.

  • Feature matching is done by analyzing line topology, patterns, and geometric characteristics. Once features are spatially matched, rubbersheet links are generated from source locations to corresponding target locations. For source features that are parametric (true) curves, links are generated at densified locations along the curves.

  • If you specify one or more pairs of fields for the Match Fields parameter, spatially matched candidates are checked against these field values to help determine the correct match. For example, suppose the source and target features both have a STREET_NAME field containing street names. If a source feature spatially matches two target features but only one target candidate has the same STREET_NAME value as the source feature, it is the better match. The comparison of text strings is case insensitive, meaning that First St is considered the same as first st.

  • The Output Match Table is optional. This match table provides complete feature matching information, including the source and target FIDs, match groups, match relationships, and the level of confidence of the matching derived from spatial and attribute matching conditions. This information can help you understand the match situations and facilitate postinspection, postediting, and further analysis. See About feature matching and the match table for details.

  • Feature matching accuracy relies on data quality, complexity, and similarities of the two inputs.

    You need to minimize data errors and select relevant features as input through preprocessing. In general, it is always helpful that within an input dataset the features are topologically correct, have valid geometry, and are singlepart and nonduplicate; otherwise, unexpected results may occur.

  • It is recommended that you review the results and make necessary corrections. During postinspection and postediting, you can use the existing Editing tools to edit the links, for example, to delete an undesired link, alter a link by moving its start or end vertex, or add a new link where necessary. Make sure to update the SRC_FID and TGT_FID values accordingly.


arcpy.edit.GenerateRubbersheetLinks(source_features, target_features, out_feature_class, search_distance, {match_fields}, {out_match_table})
ParameterExplanationData Type

Line features as source features for generating rubbersheet links. All links start at source features.

Feature Layer

Line features as target features for generating rubbersheet links. All links end at matched target features.

Feature Layer

Output feature class containing lines representing regular rubbersheet links.

Feature Class

The distance used to search for match candidates. A distance must be specified and it must be greater than zero. You can choose a preferred unit; the default is the feature unit.

Linear Unit
[[source_field, target_field],...]

Lists of fields from source and target features. If specified, each pair of fields are checked for match candidates to help determine the right match.

Value Table

The output table containing complete feature matching information.


Derived Output

NameExplanationData Type

A feature class that contains the identity links.

Feature Class

Code sample

GenerateRubbersheetLinks example 1 (Python window)

The following Python window script demonstrates how to use the GenerateRubbersheetLinks function in immediate mode.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateRubbersheetLinks_edit("source_Roads.shp", "target_Roads.shp", 
                                    "rubbersheet_Links.shp", "25 Feet")
GenerateRubbersheetLinks example 2 (stand-alone script)

The following stand-alone script is an example of how to apply the GenerateRubbersheetLinks function in a scripting environment.

# Name:
# 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")

Licensing information

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

Related topics