# Simplify Shared Edges (Cartography)

## Summary

Simplifies the edges of input features while maintaining the topological relationship with edges shared with other features.

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

## Parameters

 Label Explanation Data Type Input Features The lines or polygons to be simplified. Feature Layer Simplification Algorithm Specifies the simplification algorithm.Retain critical points (Douglas-Peucker)—Retains critical points that preserve the essential shape of a polygon outline and removes all other points (Douglas-Peucker). This is the default. Retain critical bends (Wang-Müller)— Retains the critical bends and removes extraneous bends from a line (Wang-Müller). Retain weighted effective areas (Zhou-Jones)—Retains vertices that form triangles of effective area that have been weighted by triangle shape (Zhou-Jones).Retain effective areas (Visvalingam-Whyatt)— Retains vertices that form triangles of effective area (Visvalingam-Whyatt). String Simplification Tolerance Determines the degree of simplification. If a unit is not specified, the units of the input will be used.For the Retain critical points (Douglas-Peucker) algorithm, the tolerance is the maximum allowable perpendicular distance between each vertex and the new line created. For the Retain critical bends (Wang-Müller) algorithm, the tolerance is the diameter of a circle that approximates a significant bend.For the Retain weighted effective areas (Zhou-Jones) algorithm, the square of the tolerance is the area of a significant triangle defined by three adjacent vertices. The further a triangle deviates from equilateral, the higher weight it is given, and the less likely it is to be removed.For the Retain effective areas (Visvalingam-Whyatt) algorithm, the square of the tolerance is the area of a significant triangle defined by three adjacent vertices. Linear Unit 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 Input Barrier Layers (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

 Label Explanation Data Type Output Feature Class The smoothed input features. Feature Layer Output Feature Class The shared edge features. Feature Layer

`arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})`
 Name Explanation Data Type in_features[in_features,...] The lines or polygons to be simplified. Feature Layer algorithm Specifies the simplification algorithm.POINT_REMOVE—Retains critical points that preserve the essential shape of a polygon outline and removes all other points (Douglas-Peucker). This is the default. BEND_SIMPLIFY— Retains the critical bends and removes extraneous bends from a line (Wang-Müller). WEIGHTED_AREA—Retains vertices that form triangles of effective area that have been weighted by triangle shape (Zhou-Jones).EFFECTIVE_AREA— Retains vertices that form triangles of effective area (Visvalingam-Whyatt). String tolerance Determines the degree of simplification. If a unit is not specified, the units of the input will be used.For the POINT_REMOVE algorithm, the tolerance is the maximum allowable perpendicular distance between each vertex and the new line created. For the BEND_SIMPLIFY algorithm, the tolerance is the diameter of a circle that approximates a significant bend.For the WEIGHTED_AREA algorithm, the square of the tolerance is the area of a significant triangle defined by three adjacent vertices. The further a triangle deviates from equilateral, the higher weight it is given, and the less likely it is to be removed.For the EFFECTIVE_AREA algorithm, the square of the tolerance is the area of a significant triangle defined by three adjacent vertices. 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

SimplifySharedEdges example (Python window)

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")``````
SimplifySharedEdges example (stand-alone script)

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

## Licensing information

• Basic: No
• Standard: Yes