Smooth Polygon (Cartography)

License Level:BasicStandardAdvanced

Summary

Smooths sharp angles in polygon outlines to improve aesthetic or cartographic quality.

Illustration

Smooth Polygon illustration

Usage

Syntax

SmoothPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option})
ParameterExplanationData Type
in_features

The polygon features to be smoothed.

Feature Layer
out_feature_class

The output polygon feature class to be created.

Feature Class
algorithm

Specifies the smoothing algorithm.

  • PAEKAcronym for Polynomial Approximation with Exponential Kernel. It calculates a smoothed polygon that will not pass through the input polygon vertices. This is the default.
  • BEZIER_INTERPOLATIONFits Bezier curves between vertices. The resulting polygon passes through the vertices of input polygons. This algorithm does not require a tolerance. Bezier curves will be approximated in shapefile output.
String
tolerance

Sets a tolerance used by the PAEK algorithm. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit. You must enter a 0 as a placeholder when using the BEZIER_INTERPOLATION smoothing algorithm.

Linear unit
endpoint_option
(Optional)

Specifies whether or not to preserve the endpoints for isolated polygon rings. This option works with the PAEK algorithm only.

  • FIXED_ENDPOINTPreserves the endpoint of an isolated polygon ring. This is the default.
  • NO_FIXEDSmooths through the endpoint of an isolated polygon ring.
Boolean
error_option
(Optional)

Specifies how the topological errors (possibly introduced in the process, such as line crossing or overlapping) will be handled.

  • NO_CHECKSpecifies not to check for topological errors. This is the default.
  • FLAG_ERRORSSpecifies to flag topological errors, if any are found.
String

Code Sample

SmoothPolygon Example (Python Window)

The following Python window script demonstrates how to use the SmoothPolygon tool in immediate mode.

import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SmoothPolygon("soils.shp", "C:/output/output.gdb/smoothed_soils", "PAEK", 100)
SmoothPolygon Example 2 (stand-alone script)

The following stand-alone script demonstrates how to use the SmoothPolygon tool.

# Name: SmoothPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
 
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
import arcpy.management as DM
 
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inLakeFeatures = "lakes"
eliminatedFeatures = "C:/data/PortlandOutput.gdb/lakes_eliminated"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/lakes_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/lakes_smoothed"

# Eliminate small islands in lake polygons.
DM.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, "OR", 0, "CONTAINED_ONLY")
 
# Simplify lake polygons.
CA.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 200, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
 
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")

Environments

Related Topics

Licensing Information

ArcGIS for Desktop Basic: No
ArcGIS for Desktop Standard: Yes
ArcGIS for Desktop Advanced: Yes
3/3/2014