Rubbersheet Features (Editing)

Summary

Modifies input features by spatially adjusting them through rubbersheeting, using the specified rubbersheet links, so they are better aligned with the intended target features.

Illustration

Rubbersheet 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 Rubbersheet Links tool. Rubbersheeting makes spatial adjustments to align the input feature locations with more accurate target feature locations, based on the specified rubbersheet links. The input link features represent the regular links; the input point features represent identity links that hold source positions unmoved during the rubbersheeting process. Both input link features and identity link features must have SRC_FID and TGT_FID fields.

  • Note:

    All inputs must be in the same coordinate system.

  • The Method parameter determines the interpolation method used to create the temporary TINs in rubbersheeting.

    • Linear—This method creates a quick TIN surface but does not really take into account the neighborhood. It is slightly faster and produces good results when you have many rubbersheet links spread uniformly over the data you are adjusting.
    • Natural neighbor—This method is slower but is more accurate when you don't have many rubbersheet links and they are scattered across your dataset. Using linear in this case will be less accurate.

Parameters

LabelExplanationData Type
Input Features

The input features to be adjusted. They can be points, lines, polygons, or annotations.

Feature Layer
Input Link Features

The input line features representing regular links for rubbersheeting.

Feature Layer
Input Point Features As Identity Links
(Optional)

The input point features representing identity links for rubbersheeting.

Feature Layer
Method
(Optional)

Specifies the rubbersheeting method to be used to adjust features.

  • Linear —This method is slightly faster and produces good results when you have many links spread uniformly over the data you are adjusting. This is the default.
  • Natural neighbor —This method should be used when you have few links spaced widely apart.
String

Derived Output

LabelExplanationData Type
Modified Input Features

The updated input features.

Feature Layer

arcpy.edit.RubbersheetFeatures(in_features, in_link_features, {in_identity_links}, {method})
NameExplanationData Type
in_features

The input features to be adjusted. They can be points, lines, polygons, or annotations.

Feature Layer
in_link_features

The input line features representing regular links for rubbersheeting.

Feature Layer
in_identity_links
(Optional)

The input point features representing identity links for rubbersheeting.

Feature Layer
method
(Optional)

Specifies the rubbersheeting method to be used to adjust features.

  • LINEARThis method is slightly faster and produces good results when you have many links spread uniformly over the data you are adjusting. This is the default.
  • NATURAL_NEIGHBORThis method should be used when you have few links spaced widely apart.
String

Derived Output

NameExplanationData Type
out_feature_class

The updated input features.

Feature Layer

Code sample

RubbersheetFeatures example 1 (Python window)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.RubbersheetFeatures_edit("source_Roads.shp","rubbersheet_Links.shp",
                               "rubbersheet_Links_pnt.shp", "LINEAR")
RubbersheetFeatures example 2 (stand-alone script)

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

# Name:        RubbersheetFeatures_example_script2.py
# Description: Performs rubbersheeting spatial adjustment using links produced by
#              GenerateRubbersheetLinks, assuming newly updated roads are more
#              accurate than existing base roads. The links go from base road data
#              to corresponding 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