The Generate Stream Order tool accepts an input stream network shapefile, converts it into a NetworkX graph, and calculates the Strahler stream order value for each reach feature within the network. If there are subnetworks found within the input stream network shapefile, stream order values are calculated separately for each subnetwork.
- ArcGIS: version 10.4 or higher
- GDAL: A separate installation of the Geospatial Data Abstraction Library is required by this tool, in order to directly convert between shapefiles and NetworkX graphs. Because GNAT users must operate ArcGIS in a Windows environment, we strongly recommend that the user installs GDAL separately using the Windows binaries offered by Tamas Szekeres at GISInternals. Detailed instructions for installing the GDAL binaries area available here.
- NetworkX 1.11: Please note, GNAT has only been tested with version 1.11. Other versions have not been tested and are not currently supported.
Input stream network shapefile
Line shapefile representing a stream network. Ideally this network should be a USGS NHD flowline dataset, or derived from NHD. Also, all canal features (i.e. FCode = 336) must be removed prior to running the tool.
Workspace for storing intermediate files produced during tool processing. The workspace can only be a folder.
Output shapefile (line)
The stream network polyline feature class, which will include new attribute fields generated by the tool. The new fields include:
_strmordr_: attribute field with calculated stream order value.
The Generate Stream Order tool relies on the excellent NetworkX python library, which is in turn based on concepts from graph theory. This tool converts the input stream network shapefile into a graph object, which is how the file is then processed throughout the workflow, until being converted back into a shapefile.
Assuming the output shapefile produced by the Generate Network Attributes tool serves as the input shapefile for this
tool, the Generate Stream Order tool will select all edges where
_edge_type_ = 'headwater', then select all successor
edges for each headwater edge. Based on a series of conditional statements, the successor edges will either have their
stream order value increased, or not, and then the next round of successor edges will be selected. This process is repeated
until the the outflow edge is reached.
The Generate Stream Order tool is the third step in GNAT Toolbox’s Stream Network Preparation workflow. We recommend running the Generate Stream Branches tool next to complete the workflow.
Troubleshooting and Potential Issues
Topological errors in the input stream network shapefile will likely cause errors when running the Generate Stream Order tool. Ideally the user should use the output shapefile generated by first running the Find Subnetworks tool, then the Generate Network Attributes tool, and using that tool as the input shapefile for Generate Stream Order.