Check Strahler and click OK. Progress can be followed in the status bar. Large networks will have large topological dictionaries and will take longer to process.


Strahler Order


RivEX implements a fast recursive algorithm to calculate Strahler stream order, stream segments and can dealing with multi-channelled networks.  The algorithm that RivEX implements was developed by Gleyzer et al., 2004 and is documented in the Journal of the American Water Resources Association.  Click here to visit the web page for this paper. In 2020 the algorithm was modified to run using a stack data structure rather than using recursion. This allows the tool to run on very large networks where previously RivEX would have crashed with a stack overflow error to due operating system limitations imposed on deep recursion. Whilst the logic is still the same the implementation of it is through a stack structure and in some networks where there is invalid topology this will cause the algorithm to become trapped in a loop. RivEX will capture these reporting the problematic polylines in an error log file.


The output of a Strahler stream order are two new fields in the river networks attribute table: Strahler and Segment.


The difference between Strahler and segment is best described in the images below.


This network achieves 3rd Order

Here are the same polylines encoded as segments, one segment for each Strahler reach

Stahler Order

Strahler segment


It is possible for RivEX to produce ZERO value stream orders, these are the results of polylines pointing from a mouth to source direction.  To deal with these you must:


oFlip the polyline.

oRebuild from- and to- node fields

oRe-run the stream ordering


Click here to be shown how to flip a single polyline.


This tool can produce an error log file called StrahlerOrderFailedPolylines.txt which lists the polyline ID's that the algorithm got "trapped" at. You would review each polyline and correct the issue. Re-running this tool may find further errors and generate a new error log file, this is because the algorithm stops at the first problematic polyline in each catchment and is unable to continue; by fixing the initial problem this would allow the algorithm to continue its traverse of the network and potentially find further problem polylines that need fixing.



Warning To apply stream ordering on artificial grid-like channels can produce some very strange results and should be interpreted with extreme caution.