You are here:
Geoprocessing tool reference
>
Data Management toolbox
>
Generalization toolset
>
Tools
Simplifies a polygon by removing small fluctuations or extraneous bends from its boundary while preserving its essential shape.
Illustration
Usage tips
-
The tool will produce two output feature classes, a polygon feature class and a point feature class. The polygon output will store all the simplified polygons; and the point output will store points, if any, representing polygons that are collapsed to zero-area as the result of simplification and cannot be written to the polygon output. Once the polygon output is specified, the point output will be automatically derived taking the same output location and the polygon output name plus a suffix, _Pnt.
-
The polygon output will carry all the input fields. The point output will not.
-
Significant differences between the two algorithms:
- POINT_REMOVE is a fast, simple algorithm that reduces a polygon boundary quite effectively by removing redundant points, such as overdigitized vertices; however, the angularity of the resulting polygon will increase significantly as the tolerance increases so the shape may become aesthetically unpleasing. Use POINT_REMOVE for data compression or a relatively low degree of simplification.
- BEND_SIMPLIFY applies advanced techniques to detect bends along a polygon boundary, analyze their characteristics, and eliminate insignificant ones. It takes longer to process than POINT_REMOVE, but the resulting shape is more faithful to the original and shows better aesthetic quality.
-
The minimum area applies to simplified polygons. For a group of adjacent polygons, it applies to the total area of the group.
-
Handling topological errors - three levels of processes:
- NO_CHECK: Both algorithms may introduce topological errors to the simplified results. If you are not concerned about the topological errors or if you know your data has little chance to result in topological errors, then use this default option.
- FLAG_ERRORS: This option preserves shared polygon boundaries and detects topological errors possibly introduced by simplification. The polygon output will contain two new fields, InPoly_FID and SimPlyFlag. The InPoly_FID field carries the feature IDs of the input polygons; the SimPlyFlag flags polygons with a value of 1 indicating topological errors or a value of 0 indicating no errors.
- RESOLVE_ERRORS: Use this option if the input polygon boundaries are congested in some areas and you want to avoid topological errors in the result of simplification. The processing time will be longer than the above options, but you will receive a "clean" output with information about the simplified polygons. The tolerance you specified may be good for majority polygons but not for the ones in the congested areas. When a topological error is detected after the first round of simplification, the involved boundary segments (not the entire polygons) will be located, and a reduced tolerance, 50 percent of that previously used, will be applied to re-simplify these segments. This iteration will repeat as many times as needed until no more topological errors are found. The polygon output feature class will contain the same number of polygons as in the input, and it will have two new fields, MaxSimpTol and MinSimpTol, which store the maximum and minimum tolerances actually used in simplifying each polygon through the iteration. If no errors were introduced, the values of MaxSimpTol and MinSimpTol will be the same as the specified simplification tolerance.
A small polygon near a larger polygon can end up inside the larger polygon due to a relatively large simplification_tolerance. This spatial relationship error will not be detected by the program.
-
The "Keep collapsed points" checkbox or the collapsed_point parameter only applies to the NO_CHECK and FLAG_ERRORS options for handling topological errors.
- With NO_CHECK option, if this checkbox is checked or if KEEP_COLLAPSED_POINT is specified, any collapsed points will be stored in the point output.
- With FLAG_ERRORS option, if this checkbox is checked or if KEEP_COLLAPSED_POINT is specified, the point output will contain a new field InPoly_FID to link the collapsed points to their input polygons.
- If an input polygon contains multiparts and one of the parts becomes a collapsed point, the point representing that part will also be included in the point output.
-
The point output will be empty in the following cases:
- The "Keep collapsed points" checkbox is unchecked on the tool dialog or the NO_KEEP option is specified.
- The "Keep collapsed points" checkbox is checked on the tool dialog or the KEEP_COLLAPSED_POINT option is specified, but no polygons are collapsed to points during simplification.
- RESOLVE_ERRORS is specified for handling topological errors; therefore, no polygons will be collapsed (any collapsed polygons will be restored).
-
Learn more about spatial reference and geoprocessing
-
The following environment settings affect this tool: XY tolerance, Extent, M domain, , Coordinate system, Output has M values, Output has Z values, Default Z value, Output XY domain, workspace, and scratch workspace.
Command line syntax
An overview of the Command Line window
SimplifyPolygon_management <in_features> <out_feature_class> <POINT_REMOVE | BEND_SIMPLIFY> <tolerance> {minimum_area} {NO_CHECK | FLAG_ERRORS | RESOLVE_ERRORS} {KEEP_COLLAPSED_POINTS | NO_KEEP}
<in_features> |
The polygon features to be simplified.
|
Feature Layer |
<out_feature_class> |
The output polygon feature class to be created.
|
Feature Class |
<POINT_REMOVE | BEND_SIMPLIFY> |
Specifies the polygon simplification algorithm.
- POINT_REMOVE —
Keeps the so-called critical points that depict the essential shape of a polygon and removes all other points. This is the default.
- BEND_SIMPLIFY —
Keeps the main shape of a polygon and removes extraneous bends in the boundary.
|
String |
<tolerance> |
The tolerance that determines the degree of simplification. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
- For POINT_REMOVE algorithm, the tolerance you specify is the maximum allowable offset.
- For BEND_SIMPLIFY algorithm, the tolerance you specify is the length of the reference bend baseline.
|
Linear unit |
{minimum_area} |
Sets the minimum area for a simplified polygon to be retained. The default value is zero, that is, to keep all polygons. You can choose a preferred unit for the specified value; the default is the feature unit.
|
Areal unit |
{NO_CHECK | FLAG_ERRORS | RESOLVE_ERRORS} |
Specifies how the topological errors (possibly introduced in the process, including line crossing, line overlapping, and collapsed zero-length lines) will be handled.
- NO_CHECK —
Specifies not to check topological errors. This is the default.
- FLAG_ERRORS —
Specifies to flag topological errors if any are found.
- RESOLVE_ERRORS —
Specifies to resolve topological errors if any are found.
|
String |
{KEEP_COLLAPSED_POINTS | NO_KEEP} |
Specifies whether to keep collapsed zero-area polygons as points if any are found in the process. This option applies only when NO_CHECK or FLAG_ERRORS is specified.
- KEEP_COLLAPSED_POINTS —
Specifies to keep the collapsed zero-area polygons as points. The endpoints of the collapsed polygon boundaries will be stored in a point feature class at the output feature class location, taking the name of the output feature class plus a suffix _Pnt. This is the default.
- NO_KEEP —
Specifies not to keep the collapsed zero-area polygons as points even if they are found in the process; therefore, the point feature class will be empty.
|
Boolean |
Data types for geoprocessing tool parameters
Command line example
simplifypolygon c:\workspace\mapData.mdb\soils c:\workspace\mapData.mdb\newsoils POINT_REMOVE 50
Scripting syntax
About getting started with writing geoprocessing scripts
SimplifyPolygon_management (in_features, out_feature_class, algorithm, tolerance, minimum_area, error_option, collapsed_point_option)
in_features (Required) |
The polygon features to be simplified.
|
Feature Layer |
out_feature_class (Required) |
The output polygon feature class to be created.
|
Feature Class |
algorithm (Required) |
Specifies the polygon simplification algorithm.
- POINT_REMOVE —
Keeps the so-called critical points that depict the essential shape of a polygon and removes all other points. This is the default.
- BEND_SIMPLIFY —
Keeps the main shape of a polygon and removes extraneous bends in the boundary.
|
String |
tolerance (Required) |
The tolerance that determines the degree of simplification. A tolerance must be specified, and it must be greater than zero. You can specify a preferred unit; the default is the feature unit.
- For POINT_REMOVE algorithm, the tolerance you specify is the maximum allowable offset.
- For BEND_SIMPLIFY algorithm, the tolerance you specify is the length of the reference bend baseline.
|
Linear unit |
minimum_area (Optional) |
Sets the minimum area for a simplified polygon to be retained. The default value is zero, that is, to keep all polygons. You can choose a preferred unit for the specified value; the default is the feature unit.
|
Areal unit |
error_option (Optional) |
Specifies how the topological errors (possibly introduced in the process, including line crossing, line overlapping, and collapsed zero-length lines) will be handled.
- NO_CHECK —
Specifies not to check topological errors. This is the default.
- FLAG_ERRORS —
Specifies to flag topological errors if any are found.
- RESOLVE_ERRORS —
Specifies to resolve topological errors if any are found.
|
String |
collapsed_point_option (Optional) |
Specifies whether to keep collapsed zero-area polygons as points if any are found in the process. This option applies only when NO_CHECK or FLAG_ERRORS is specified.
- KEEP_COLLAPSED_POINTS —
Specifies to keep the collapsed zero-area polygons as points. The endpoints of the collapsed polygon boundaries will be stored in a point feature class at the output feature class location, taking the name of the output feature class plus a suffix _Pnt. This is the default.
- NO_KEEP —
Specifies not to keep the collapsed zero-area polygons as points even if they are found in the process; therefore, the point feature class will be empty.
|
Boolean |
Data types for geoprocessing tool parameters
Script example
# Simplifying lakes
import arcgisscripting
gp = arcgisscripting.create()
# Set the workspace
gp.workspace = "d:/data/mapDB.mdb/hydrography"
# Simplifying lakes
gp.simplifypolygon("lakes", "lakes_simplified", "BEND_SIMPLIFY", "80", "RESOLVE_ERRORS")
Please visit the
Feedback page to comment or give suggestions on ArcGIS Desktop Help.
Copyright © Environmental Systems Research Institute, Inc.