Divide Polygons by Segments

The Divide Polygons by Segments is a utility for splitting polygons (i.e. channel buffers, valley bottoms) using the segments from a stream flow or center line. The tool is able to split at segment junctions as well as confluences within the stream network.



Geoprocessing Environments

  • Disable Z and M geometry in the Shape field if topology errors are encountered.
  • Input data should use the same projected spatial reference system.
  • Segment the flowline ( or centerline) as desired using the Segment Stream Network tool.

Input Parameters


Segmented Polyline Feature Class

Segmented stream network or centerline polyline feature class that will be used to divide the polygon into segments.

Polygon Feature Class to Segment

Polygon feature class to be segmented by the segmented polyline feature class.

Output Segmented Polygon Feature Class

File name and directory location of the output segmented polygon feature class.

Scratch Workspace (optional)

File geodatabase or folder for storing temporary processing data files.

Centerline Point Density (Meters) (optional)

Density of Thiessan polygon seed point use within the junction buffer. Higher density should result in a finer resolution of the segmented edges in the output polygon feature class. Default value is 10.0

Junction Buffer Distance (Meters) (optional)

Buffer to limit the generation of Thiessen seed points around tributary junctions only. This parameter can reduce processing time. Default value is 100.0


Output Polygon

Polygon feature class with splits at segment and confluence junctions.

Technical Background


The divide polygon by Segments tool is based on theissen polygons generated from the input line network.

  1. Line network is copied and vertices are densified to produce a close grouping of points for generating thiessen polygons.
  2. Segment junction points are generated by intersecting the line network with itself, and output set to Points.
  3. Thiessen points are are generated within a distance of the junction points. This is to limit the number of thiessen polygons used in the processing.
  4. Thiessen polygons are generated then clipped to the extent of the input polygon.
  5. Tributary Junctions In order to properly split the thiessen polygons associated with segment junctions:
    1. The first vertex of each polygon is moved to coincide with the tributary junctions, if they intersect.
    2. The mid point of each thiessen polygon is found. and is used to split the thiessen edges
    3. Near function is used to connect each mid point with the tributary junctions, effectively splitting the thiessen polygons around tributary junctions.
  6. The thessen edges, midpoint lines, and centerline are merged and flattened to form polygons.
  7. Spatial joint is used to match all polygons that share a line with the centerline.
  8. Dissolve is used to merge polygons with the same centerline id to form the segmented polygons
  9. Polygons that did not receive a centerline ID are joined to the largest neighbor using Eliminate Polygon GP tool.

Troubleshooting and Potential Bugs

  • Unpredictable features could be generated if the stream network or centerline runs outside of polygon. Make sure that the segmented network is fully contained within the polygon.
  • Overlapping polygon areas (at tributary confluences) can form in the output polygon due to overlapping line segments.
  • Extraneous splits in the output polygon