Summary
Propagates the displacement resulting from road adjustment in the Resolve Road Conflicts and Merge Divided Roads tools to adjacent features to reestablish spatial relationships.
An optional output of both the Resolve Road Conflicts and Merge Divided Roads tools is a displacement feature class. Displacement features store the amount and direction of change from the initial state of the data before these tools are run. Displacement information can then be applied to nearby features from different themes to ensure that spatial relationships are retained using this tool. For example, if roadways are separated by the Resolve Road Conflicts tool, it is often necessary to shift adjacent buildings along the roads accordingly.
Caution:
This tool does not produce output layers but instead alters the geometry of the source feature classes of the input layers. It is strongly suggested that you make a copy of your input features before running this tool.Caution:
This tool will act cumulatively if run on the same dataset multiple times. In some cases, features may be moved farther and farther away from their original location, which may lead to unexpected and unwanted results.
Usage
The locations of input features are adjusted based on the vector displacements contained in the displacement features. Adjustments are a compromise of all displacements, such that large displacements that occurred near an input feature will have more influence than smaller displacements farther away. Conceptually, this action is similar to a rubber-sheeting process that moves features in various directions by various amounts to fit them back to the spatial relationship that they originally had with the roads.
This tool does not resolve graphic conflicts and in fact may introduce new conflicts. Topological errors that are introduced can be inspected using the Detect Graphic Conflict tool. If you are using this tool to propagate displacement to building features, consider running the Resolve Building Conflicts tool after propagation.
This tool operates on the displacement output generated by the Resolve Road Conflicts and Merge Divided Roads tools, which can be enabled to run by partitioning (using the Cartographic Partitions geoprocessing environment variable) when large datasets are processed. In this case, a single seamless displacement feature class will generated. Although this may be a very large feature class when generated with partitions, the information held within is not complex. This tool can manage the displacement polygons as inputs without using partitioning. See Generalizing large datasets using partitions for more information about processing large datasets.
Syntax
arcpy.cartography.PropagateDisplacement(in_features, displacement_features, adjustment_style)
Parameter | Explanation | Data Type |
in_features | The input feature layer containing features that may be in conflict. May be point, line, or polygon. | Feature Layer |
displacement_features | The displacement polygon features created by the Resolve Road Conflicts or the Merge Divided Roads tools that contain the degree and direction of road displacement that took place. These polygons dictate the amount of displacement that will be propagated to the input features. | Feature Layer |
adjustment_style | Defines the type of adjustment that will be used when displacing input features.
| String |
Derived Output
Name | Explanation | Data Type |
out_features | The updated input features. | Feature Layer |
Code sample
The following Python window script demonstrates how to use the PropagateDisplacement tool in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.PropagateDisplacement_cartography("footprints.lyr", "displacement.lyr",
"AUTO")
This stand-alone script shows an example of using the PropagateDisplacement tool.
# Name: PropagateDisplacement_standalone_script.py
# Description: Propagate the displacement of road features to nearby buildings
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
in_features = "footprints.lyr"
displacement_features = "displacement.lyr"
adjustment_style = "AUTO"
# Execute Propagate Displacment
arcpy.PropagateDisplacement_cartography(in_features, displacement_features, adjustment_style)
Environments
Licensing information
- Basic: No
- Standard: No
- Advanced: Yes