Thin Road Network (Cartography)

Summary

Generates a simplified road network that retains connectivity and general character for display at a smaller scale.

This tool does not generate new output. It assigns values in Invisibility Field in the input feature classes to identify features that are extraneous and can be removed from view to result in a simplified, yet representative, collection of roads. No feature geometry is altered or deleted.

Features are not actually deleted by Thin Road Network. To actually remove features, consider using the Trim Line tool.

The resulting simplified road collection is determined by feature significance, importance, and density. Segments that participate in very long itineraries across the extent of the data are more significant than those required only for local travel. Road classification, or importance, is specified by the Hierarchy Field parameter. The density of the resulting street network is determined by the Minimum Length parameter, which corresponds to the shortest segment that is visually sensible to show at scale.

Learn more about how Thin Road Network works and see a table of recommended minimum length values to use as a starting point.

Caution:

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.

Illustration

Thin Road Network tool results
The Thin Road Network tool simplifies a collection of roads while retaining character and connectivity.

Usage

  • The invisibility field must be present and named the same for all input feature classes. 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.

  • The hierarchy field identifies the relative importance of features to help establish which features are significant. Hierarchy value 1 indicates the most important features with importance decreasing as hierarchy value increases. For optimal results, use no more than five levels of hierarchy. Input roads with Hierarchy = 0 are considered "locked" and will remain visible, along with adjacent roads necessary for connectivity. The hierarchy field must be present and named the same for all input feature classes.

    The hierarchy is typically derived from a field that specifies road classification and corresponds to the way that roads are symbolized. It is not related to the concept of hierarchy used in network analysis. Hierarchy values equal to NULL are not accepted by the tool and will raise an error.

  • The Minimum Length parameter defines a sense of the resolution or granularity of the resulting simplified road collection. 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, visibility locking, resolution, and morphology and connectivity of the road geometry. Therefore, the minimum length value cannot necessarily be measured directly in the resulting feature set.

  • Processing large road datasets or a number of datasets together may exceed memory limitations. In this case, consider processing input data by partition by identifying a relevant polygon feature class in the Cartographic Partitions environment setting. Portions of the data, defined by partition boundaries, will be processed sequentially. The resulting feature class(es) will be seamless and consistent at partition edges. See How Thin Road Network works for more information about running this tool with partitioning.

  • The integrity of the results of this tool relies on the topological integrity of the inputs. Proper connections must exist at intersections to faithfully represent the connectivity of the road network. See How Thin Road Network works for more information about data requirements and other helpful tips.

Syntax

arcpy.cartography.ThinRoadNetwork(in_features, minimum_length, invisibility_field, hierarchy_field)
ParameterExplanationData Type
in_features
[in_features,...]

The input linear roads that should be thinned to create a simplified collection for display at smaller scales.

Feature Layer
minimum_length

An indication of the shortest road segment that is sensible to display at the output scale. This controls the resolution, or density, of the resulting road collection. If the units are in point, millimeters, centimeters, or inches, the value is considered in page units and the reference scale is taken into account.

Linear Unit
invisibility_field

The field that stores the results of the tool. Features that participate in the resulting simplified road collection have a value of 0 (zero). Those that are extraneous have a value of 1. A layer definition query can be used to display the resulting road collection. This field must be present and named the same for each input feature class.

String
hierarchy_field

The field that contains 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 output collection. This field must be present and named the same for each input feature class. Hierarchy values equal to NULL are not accepted and will raise an error.

String

Derived Output

NameExplanationData Type
out_features

The updated input road features.

Feature Layer

Code sample

ThinRoadNetwork example (Python window)

The following Python window script demonstrates how to use the ThinRoadNetwork tool in immediate mode:

import arcpy
arcpy.env.workspace = "C:/data/cartography.gdb/transportation"
arcpy.ThinRoadNetwork_cartography("roads.lyr", "1000 meters", "invisible", "level")
ThinRoadNetwork example (stand-alone script)

This stand-alone script shows an example of using the ThinRoadNetwork tool.

# Name: ThinRoadNetwork_standalone_script.py
# Description:  Removes a subset of road segments to create a simplified road 
#               network that retains the connectivity and character of the 
#               input.
 
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

# Set local variables
in_features = "roads.lyrx"
minimum_length = "1000 meters"
invisibility_field = "invisible"
level_field = "level"

# Execute Thin Road Network
arcpy.ThinRoadNetwork_cartography(in_features, minimum_length, 
                                  invisibility_field, level_field)

Environments

Reference Scale

The reference scale is only considered when the Minimum Length parameter is entered in page units. When the reference scale is available, the detection of false dead ends is based on feature separation of 0.5 mm at scale. Otherwise, a value twice the tolerance of the spatial reference is used.

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics