Skip To Content

Identify Narrow Polygons


Splits a polygon based on its width and classifies each portion as narrow or wide based on its width and length.


Example of the Identify Narrow Polygons process
Diagram (left): Hydrographic polygon before Identify Narrow Polygons process. Diagram (right): After the Identify Narrow Polygons process, the hydrographic polygon is divided into sections where the width is less than 15 meters.



    A warning is raised if the input features are not in a projected coordinate system. This tool relies on linear distance units, which will create unexpected results in an unprojected coordinate system. It is strongly suggested that you run this tool on data in a projected coordinate system to ensure valid results. An error is raised and the tool will not process if the coordinate system is missing or unknown.

  • This tool is intended for identifying portions of polygon features that are too narrow to be visually distinguishable at a specified scale. The Minimum Width is an indication of the shortest distance between polygon edges that is sensible to display at the output scale.

  • Fields will be added to the output feature class containing information about each split polygon.

    • split_type—Identifies what type of area is being identified.
      • 0—Identified as a narrow area
      • 1—Not identified as a narrow area
      • 2—Identified as a narrow area but falls under the Minimum Length
      • 3—Not identified as a narrow area but falls under the Minimum Length
      • 4—Tapered feature
    • split_length—The length of the split polygon's calculated centerline.

  • The Minimum Length parameter is the shortest distance that should exist between polygons and\or the shortest length that should exist for an individual polygon displayed at a scale. For example, if you decided to replace the split_type 2 polygons (narrow polygons shorter than the specified minimum length) with a centerline and to show all the split_type 3 polygons (wide polygons shorter than the minimum length), this could result in a series of small polygons connected with short line segments. Depending on your desired results, you could choose to keep split_type 2 polygons as visible or buffer the polygons to ensure they meet the minimum width.

  • The calculated centerline of the split polygons is compared against the Minimum Length to classify them as short or long.
  • The Taper Length parameter is provided for hydrographic polygons. When a narrow section of a river polygon is removed, it will typically be shown as the river centerline at smaller scales to maintain the visual connectivity of the hydrographic network. A pointed end or taper can be created where the polygon narrows to ensure a smooth transition from the polygon to the centerline that will be displayed. If a taper length of 0 is provided, no polygons with split_type of 4 will be created. All other split_type values are created with straight ends.

  • The integrity of the results of this tool relies on the topological integrity of the inputs. Take note of the following input data requirements and suggestions:

    • Empty or null geometry—The input features must consist of valid geometries. If necessary, use the Repair Geometry tool to repair these features.
    • Overlapping geometries—The connecting features hidden behind input features may generate visually impaired tapers.
    • Nonlinear segments—Bézier curve, circular arc, and elliptic arc segments may compromise the quality of the results. It is recommended that the Densify geoprocessing tool be run before running this tool if the polygon features have nonlinear segments as this will add vertices along the curves.
  • The output feature class will not contain any geographic attributes from the input features. A field called FID will be added to the output feature class. This field is populated with the ObjectID of the feature from which the split polygon originated. The FID field can be used to link the split polygons to their source polygons.

  • For best results, consider running the Eliminate Polygon Part tool first to remove small holes in the polygon features . For example, to remove holes from the middle of river polygons where island polygons exist. If a hole exists in the polygon, the tool will consider the distance from the edge of the polygon to the edge of the hole. This could potentially result in the river polygon on each side of the island being considered narrow even though the overall width of the river from edge to edge is greater than the Minimum Width. Filling small holes before running Identify Narrow Polygons will allow the tool to ignore the location where a hole previously existed and measure the width from the edges of the polygon.

  • When using this tool in conjunction with the Polygon to Centerline tool, it is best to use the same features for the Connecting Features parameter to get the closest match of the centerline to the taper of the newly created polygons.


IdentifyNarrowPolygons_topographic (in_features, out_feature_class, min_width, min_length, {taper_length}, {connecting_features})
ParameterExplanationData Type

The features to be split.

Feature Layer

The output feature class containing the results.

Feature Class

The width used to split and classify polygons as narrow or wide. Polygons will be split at any location where the edge to edge distance is equal to the Minimum Width.

Linear Unit

The length used to classify the split polygons as short or long.

Linear Unit

How far the end of the split feature will extend to provide a more natural break.

Linear Unit

The features that will be used to refine the tapering of wide areas. The polygons will be tapered towards the touch point or the shared boundary of a connecting feature.

Feature Layer

Code sample

IdentifyNarrowPolygons example (stand-alone script)

The following stand-alone sample script demonstrates how to use the IdentifyNarrowPolygons tool to split where the polygons narrow.

# Name:
# Description: Identifies areas that are narrower than a defined width according to the rules for this particular scale.
# In this example, a new feature class is created containing the polygons with the type of splits identified.

# import system modules
import arcpy

# Check out extension

# Set workspace
arcpy.env.workspace = r'C:\Data\Generalization_Samples.gdb'

# Define variables
rivers = r'river_polygons'
out_feature_class = r'C:\Data\Generalization_Results.gdb\split_polygons'
min_width = '25 Meters'
min_length = '100 Meters'
taper_length = '10 Meters'

# Execute Identify Narrow Polygons
arcpy.IdentifyNarrowPolygons_topographic(rivers, out_feature_class, min_width, min_length, taper_length)

# Check in Production Mapping License


This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: Requires Production Mapping
  • Advanced: Requires Production Mapping

Related topics