Summary
Simplifies the edges of input features while maintaining the topological relationship with edges shared with other features.
Illustration
Usage
This tool employs different simplification algorithms for different purposes. To learn more about these algorithms, see How Simplify Line and Simplify Polygon work.
- The Retain critical points (Douglas-Peucker) algorithm (algorithm='POINT_REMOVE' in Python) works by identifying and removing relatively redundant vertices to simplify data for display at smaller scales. It is the fastest of the simplification algorithms in this tool. This algorithm is often used for data compression or for coarse simplification. The angularity of the resulting lines increases significantly as the tolerance increases. This algorithm is based on the Douglas-Peucker algorithm: Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer. 10(2), 112–22 (1973).
- The Retain critical bends (Wang-Müller) algorithm (algorithm='BEND_SIMPLIFY' in Python) works by identifying and eliminating relatively insignificant bends to simplify data for display at smaller scales. It is typically more faithful to the input geometry than the Retain critical points (Douglas-Peucker) algorithm but can take more time to process. This algorithm is based on the algorithm defined in Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998).
- The Retain weighted effective areas (Zhou-Jones) algorithm (algorithm='WEIGHTED_AREA' in Python) works by first identifying triangles of effective area for each vertex. Those triangles are then weighted by a set of metrics to compare the flatness, skewness, and convexity of each area. The weighted areas guide the removal of their corresponding vertices to simplify the line while retaining as much character as possible. This algorithm is based on the algorithm defined in Zhou, Sheng and Jones, Christopher B., "Shape-Aware Line Generalisation with Weighted Effective Area," in Fisher, Peter F. (Ed.), Developments in Spatial Handling: 11th International Symposium on Spatial Handling, 369–80 (2005).
- The Retain effective areas (Visvalingam-Whyatt) algorithm (algorithm='EFFECTIVE_AREA' in Python) works by identifying triangles of effective area for each vertex to guide the removal of vertices to simplify the line while retaining as much character as possible. This algorithm is based on the algorithm defined in Visvalingam, M. and Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, The University of Hull (1992).
-
This tool modifies the Input Features and Shared Edge Features parameters. It does not produce new output.
Simplification is applied to all Input Features edges and only Shared Edge Features edges that share an edge with any Input Features edges. Shared Edge Features edges that do not share an edge with at least one Input Features edge are not simplified.
Syntax
arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
Parameter | Explanation | Data Type |
in_features [in_features,...] | The lines or polygons to be simplified. | Feature Layer |
algorithm | Specifies the simplification algorithm.
| String |
tolerance | Determines the degree of simplification. If a unit is not specified, the units of the input will be used.
| Linear Unit |
shared_edge_features [shared_edge_features,...] (Optional) | Line or polygon features that will be simplified along edges shared with input features. Other edges are not simplified. | Feature Layer |
minimum_area (Optional) | The minimum area for a polygon to be retained. The default value is zero, which will retain all polygons. A unit can be specified; if no unit is specified, the unit of the input will be used. This parameter is available only when at least one of the inputs is a polygon feature class. | Areal Unit |
in_barriers [in_barriers,...] (Optional) | Point, line, or polygon features that act as barriers for the simplification. The simplified features will not touch or cross barrier features. | Feature Layer |
Derived Output
Name | Explanation | Data Type |
out_feature_class | The smoothed input features. | Feature Layer |
out_shared_edge_feature_class | The shared edge features. | Feature Layer |
Code sample
The following Python window script demonstrates how to use the SimplifySharedEdges tool in immediate mode:
import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("Water;Parks;",
"POINT_REMOVE",
"10 Meters",
"Commercial;Highways;Buildings",
"0 SquareMeters")
This stand-alone script shows an example of using the SimplifySharedEdges tool.
# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological
# relationships along shared edges. For features included as
# shared_edge_features (4th argument of
# SimplifySharedEdges_cartography()) only the edges that are shared
# with in_features (1st argument) are simplified.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/LandUse.gdb"
# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None
# Execute Simplify Shared Edges
arcpy.SimplifySharedEdges_cartography(in_features, algorithm, tolerance,
shared_edge_features, minimum_area,
barriers)
Environments
Licensing information
- Basic: No
- Standard: Yes
- Advanced: Yes