Generalize (Editing)

Summary

Simplifies the input features using a specified maximum offset tolerance. The output features will contain a subset of the original input vertices.

Illustration

The line is simplified within the boundary of the maximum allowable offset
The line is simplified within the boundary of the maximum allowable offset

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 uses the same algorithm as the Simplify Line tool's point remove method (the Douglas-Peucker simplification algorithm). The Simplify Line tool provides more parameters and creates a new output, whereas this tool modifies the input feature class.

  • This tool generalizes features record by record. Sections of lines and polygon boundaries which were coincident between features may not be conincident after the tool is run.

  • Bézier curve, circular arc, and elliptic arc segments will be converted to a set of straight line segments.

  • This tool does not delete records or features. If the tolerance is larger than a polygon, the polygon will be reduced to three vertices.

Syntax

arcpy.edit.Generalize(in_features, {tolerance})
ParameterExplanationData Type
in_features

The polygon or line features to be generalized.

Feature Layer
tolerance
(Optional)

The tolerance sets the maximum allowable offset, which will determine the degree of simplification. This value limits the distance the output geometry can differ from the input geometry. You can specify a preferred unit of measurement. The default is the feature unit.

Linear Unit

Derived Output

NameExplanationData Type
out_feature_class

The updated input features.

Feature Class

Code sample

Generalize example 1 (Python window)

The following Python window script demonstrates how to use the Generalize function in immediate mode:

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.Generalize_edit("zones", "10 Feet")
Generalize example 2 (stand-alone script)

The stand-alone script below is an example of how to use the Generalize function in a workflow where features are first simplified and then buffered:

# Name: BufferZones.py
# Purpose: Simplify features using the Generalize tool and then Buffer them

# Import script modules
import arcpy

# Set the workspace
arcpy.env.workspace = "C:/data/data.gdb"

# Set local parameters
inFeatures = "zones"
gTolerance = "4 Feet"
copFeatures = "zones_cp"
bufDist = "50 Miles"
bufOutput = "zones_buff"

# Since Generalize permanently updates the input, first make a copy of the 
# original feature class
arcpy.CopyFeatures_management (inFeatures, copFeatures)

# Use the Generalize tool to simplify the Buffer input to shorten Buffer 
# processing time
arcpy.Generalize_edit(copFeatures, gTolerance)

# Buffer the output
arcpy.Buffer_analysis(copFeatures, bufOutput, bufDist)

Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

Related topics