Identify Narrow Polygons (Topographic Production)

Summary

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

Illustration

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

Usage

    Caution:

    A warning appears 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 recommended that you run this tool on data in a projected coordinate system to ensure valid results. An error occurs and the tool will not process if the coordinate system is missing or unknown.

  • This tool is optimized for spatial relationships and junctions typically found in a hydrographic network—for example, long, thin polygons such as rivers or canals.

  • For best results, consider running the Dissolve tool to dissolve touching polygon features before running this tool. While this tool checks spatial relationships between the input features to ensure that the appropriate split type value is calculated when input features touch, running Dissolve first may achieve a better result in some situations.

  • 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—The type of area being identified
      • 0—Identified as a narrow area
      • 1—Not identified as a narrow area
      • 2—Identified as a narrow area but falls under Minimum Length
      • 3—Not identified as a narrow area but falls under 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 can exist between polygons, the shortest length that can exist for an individual polygon displayed at a scale, or both. For example, if you replace the split_type 2 polygons (narrow polygons shorter than the specified minimum length) with a centerline and show all the split_type 3 polygons (wide polygons shorter than the minimum length), this may result in a series of small polygons connected with short line segments. Depending on your desired results, you can keep the split_type 2 polygons as visible or buffer the polygons to ensure that they meet the minimum width.

  • The calculated centerline of the split polygons is compared to 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 will be displayed. If a taper length of 0 is provided, no polygons with a 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 you run the Densify geoprocessing tool 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, this will 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 may 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.

Parameters

LabelExplanationData Type
Input Features

The features to be split.

Feature Layer
Output Feature Class

The output feature class containing the results.

Feature Class
Minimum Width

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
Minimum Length

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

Linear Unit
Taper Length
(Optional)

The distance the end of the split feature will extend to provide a more natural break.

Linear Unit
Connecting Features
(Optional)

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

Feature Layer

arcpy.topographic.IdentifyNarrowPolygons(in_features, out_feature_class, min_width, min_length, {taper_length}, {connecting_features})
NameExplanationData Type
in_features

The features to be split.

Feature Layer
out_feature_class

The output feature class containing the results.

Feature Class
min_width

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
min_length

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

Linear Unit
taper_length
(Optional)

The distance the end of the split feature will extend to provide a more natural break.

Linear Unit
connecting_features
[connecting_features,...]
(Optional)

The features that will be used to refine the tapering of wide areas. The polygons will be tapered toward 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 function to split the polygons where they narrow.

# Name: IdentifyNarrowPolygons_sample.py
# 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 Extensions
arcpy.CheckOutExtension('Foundation')

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

# Setting Local 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.topographic.IdentifyNarrowPolygons(rivers, out_feature_class, min_width, min_length, taper_length)

# Check In Extensions
arcpy.CheckInExtension('Foundation')

Environments

This tool does not use any geoprocessing environments.

Licensing information

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

Related topics