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.
See How Thin Road Network works to learn more and review a table of recommended minimum length values to use as a starting point.
Illustration
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 multiple results—corresponding to various output scales—on the same feature class.
The hierarchy field identifies the relative importance of features to help establish which features are significant. A hierarchy value of 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. 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 produce 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 classes 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 accurately represent the connectivity of the road network. See How Thin Road Network works for more information about data requirements and other helpful tips.
If the inputs include a feature layer pointing to a representation, any geometry overrides associated with that representation will be used as the input geometry to determine the morphology and connectivity of the road collection. Similarly, representation visibility overrides will be honored, ensuring that invisible representations are not included in the resulting road collection and that adjacent roads are handled accordingly to maintain connectivity.
Syntax
arcpy.cartography.ThinRoadNetwork(in_features, minimum_length, invisibility_field, hierarchy_field)
Parameter | Explanation | Data Type |
in_features [in_features,...] | The input linear roads that will 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 points, 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, in which 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 produce an error. | String |
Derived Output
Name | Explanation | Data Type |
out_features | The updated input road features. | Feature Layer |
Code sample
ThinRoadNetwork example 1 (Python window)
The following Python window script demonstrates how to use the ThinRoadNetwork function in immediate mode.
import arcpy
arcpy.env.workspace = "C:/data/cartography.gdb/transportation"
arcpy.ThinRoadNetwork_cartography("roads.lyr", "1000 meters", "invisible", "level")
ThinRoadNetwork example 2 (stand-alone script)
This stand-alone script shows an example of using the ThinRoadNetwork function.
# 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.
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/cartography.gdb/transportation"
# Set local variables
in_features = "roads.lyr"
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
Licensing information
- Basic: No
- Standard: No
- Advanced: Yes
Related topics
- An overview of the Generalization toolset
- Understanding conflict resolution and generalization
- Automating conflict resolution and generalization workflows with geoprocessing
- How Thin Road Network works
- Resolve Road Conflicts
- Generalizing large datasets using partitions
- Create Cartographic Partitions
- Cartographic Partitions (Environment setting)
- Collapse Road Detail