Thin Hydrology Lines (Topographic Production)

Summary

Generates a simplified hydrographic line network for display at a smaller scale. The resulting hydrographic network maintains the main arteries while thinning less significant features based on hierarchy, length, and spacing between features.

Illustration

Before and after illustration of the thin hydrology lines process
Stream network before and after using the Thin Hydrology Lines tool

Usage

    Caution:

    This tool modifies the input data. See Tools that do not create output datasets for more information and strategies to avoid undesired data changes.

    Caution:
    A warning is raised if the input features are not in a projected coordinate system. This tool relies on linear distance units, and 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 optimized for the spatial relationships typically found in a hydrographic network. Unexpected results may be produced if the tool is used to process other themes.

  • If the tool finds a section of the network where a line segment needs to be removed, the Minimum Length, Hierarchy Field, and Use intersection angles to determine main waterway parameters are used to determine which features to hide. For example, a river section ends with a Y where there are two end river segments that connect to a single main branch. If the Hierarchy is set and one segment is more important than another, it will likely be kept and the other hidden. If the Use intersection angles to determine main waterway option is enabled, the end segment that creates a straighter path with the main branch will likely be kept even if it is shorter than the other end segment. If the Use intersection angles to determine main waterway option is disabled and the features have the same hierarchy, the longer segment will likely be kept.

  • 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:

    • Connectivity—Proper connections must exist at intersections that faithfully represent the connectivity of the network.
    • False dead ends—A false dead end is an unconnected segment that appears visually connected when symbolized at the final map scale. These may be areas where you expect connectivity based on visual appearance, but features are not actually connected. If you process the tool without repairing the connectivity, unexpected disconnects may be visually apparent in the results.
    • Directionality—One of the key characteristics of a hydrology network is the ability to determine the direction water flows from one feature to another. Thin Hydrology Lines uses the digitization direction of the line segments to determine flow direction. If you process the tool with segments digitized against the flow of other segments, unexpected disconnects may be visually apparent in the results.
    • Empty or null geometry—The Input Features must consist of valid geometries. If necessary, use the Repair Geometry tool to repair these features.
    • Single-part features—The Input Features should not contain multipart features. Use the Multipart To Singlepart tool or create a topology with a Must Be Single Part line rule to convert features to single part.
  • An integer field for Invisibility Field must be present on the feature class. Features that should remain visible are assigned a value of 0; those that should be removed from the display are assigned a value of 1. Use a layer definition query or a selection to display the resulting simplified collection (for example, invisibility <> 1). You can use multiple invisibility fields to store different results—corresponding to different output scales—on the same feature class.

  • This tool works on hydrographic lines; however, hydrographic networks often contain other geometry types as well. The Intersecting Features parameter is used to provide context of other features in the complete hydrographic network. For example, a river line might stop at the edge of a lake polygon and another line representing the same river may continue out of the other side of the lake. Including the lakes as compare features ensures that lines touching the lake features are not removed even if they meet other criteria of the tool, such as the Minimum Length. This ensures that gaps are not produced in the entire hydrographic network not just the lines used as Input Features.

  • Input Features cannot be used as Intersecting Features. If the Input Features are used as Intersecting Features, the tool's internal validation will remove them from the Intersecting Features.

Syntax

ThinHydrologyLines(in_features, invisibility_field, min_length, {min_spacing}, {hierarchy_field}, {intersecting_features}, {unsplit_lines}, {use_angles})
ParameterExplanationData Type
in_features

The hydrography line feature to be thinned.

Feature Layer
invisibility_field

Features that participate in the thinned hydrography collection will have a value of 0. Those that are extraneous have a value of 1. A layer definition query can be used to display the results.

Field
min_length

An indication of the shortest hydrographic segment that is sensible to display at the output scale. It defines a sense of the resolution or granularity of the resulting thinned hydrography. It should correspond to a length that is visually significant to include at the final scale. The results of this tool are a balanced compromise between the requirements posed by hierarchy, minimum length, minimum spacing, angle of connecting features, and directionality of the hydro geometry. Therefore, the minimum length value cannot necessarily be measured directly in the resulting feature set.

Linear Unit
min_spacing
(Optional)

An indication of the shortest distance between a hydrographic segment that is sensible to display at the output scale. If the spacing between two parallel trending features is smaller than this value, one of the features will be set as invisible. It defines a sense of the density of the resulting thinned hydrography. It should correspond to the distance between two parallel trending features that is visually significant to include at the final scale. When the density of features is too high (that is, the features are too closely spaced), at least one feature will be hidden. This can result in important features or features longer than the min_length being hidden.

An indication of the shortest distance between a hydrographic segment that is sensible to display at the output scale. If the spacing between two parallel trending features is smaller than this value, one of the features will be set as invisible. It defines a sense of the density of the resulting thinned hydrography. It should correspond to the distance between two parallel trending features that is visually significant to include at the final scale. When the density of features is too high (that is, the features are too closely spaced), at least one feature will be hidden. This can result in important features or features longer than the Minimum Length being hidden.

Linear Unit
hierarchy_field
(Optional)

This field contains the hierarchical ranking of feature importance, where 1 is very important, and larger integers reflect decreasing importance. A value of 0 forces the feature to remain visible in the final results. It identifies the relative importance of features to help establish which features are significant. For optimal results, use no more than five levels of hierarchy. Input features with Hierarchy = 0 are considered locked and will remain visible, along with adjacent features necessary for connectivity.

Field
intersecting_features
[intersecting_features,...]
(Optional)

If a segment is snapped to features in the provided layers, it will not be removed. An example would be a small river segment snapped to a lake. Even if the segment is under the min_length, it would need to remain to ensure that it remains connected to the water body into which it flows.

Feature Layer
unsplit_lines
(Optional)

This will merge any split features in the in_features to help ensure that the main waterway is preserved. If set to NO_UNSPLIT_LINES, the ends of the waterway may be removed due to them being under the min_length.

  • UNSPLIT_LINESFeatures that are closed on both end points will be merged before thinning to preserve main hydrographic arteries that traverse a long distance. This is the default.
  • NO_UNSPLIT_LINESFeatures will remain split before the thinning process.
Boolean
use_angles
(Optional)

If set to USE_ANGLES, the angles between waterway branches will be used to help determine the main waterway; the highest angle will be used. If disabled, the longest branch will be considered part of the main waterway.

  • USE_ANGLESIn junctions with 3 or more waterways, features that are closer together in angle will be kept.
  • NO_USE_ANGLESIn junctions with 3 or more waterways, features that are longer will be kept. This is the default.
Boolean

Derived Output

NameExplanationData Type
updated_features

Features that have been thinned based on input criteria.

Feature Layer

Code sample

ThinHydrologyLines example (stand-alone script)

The following stand-alone sample script demonstrates how to use the ThinHydrologyLines tool to simplify a hydrography network.

# Name: ThinHydrologyLines_sample.py
# Description: Prunes a hydrography line network without touching the main artery, while keeping the data intact and becoming visually pleasing.
# In this example, output is derived and add a definition query to view output.

# 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
in_features = r'rivers'
intersecting_features = r'lakes'
min_length = "1000 Meters"
min_spacing = "500 Meters"
hierarchy_field = "HIERARCHY"
unsplit_lines = "UNSPLIT_LINES"
use_angles = "NO_USE_ANGLES"

# Execute Thin Hydrology Lines
arcpy.ThinHydrologyLines_topographic(in_features, min_length, min_spacing, hierarchy_field, intersecting_features,unsplit_lines, use_angles)

# 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