This post is my solution to a problem posed in GeoNet, titled “Dissolving Lines without Dissolving Convergent Lines?” It’s meant mostly as a personal reminder to self, as well as a way for my student to practice her English (that means you Nine).
Strahler stream ordering is a fundamental method of describing a hydrological network (or any branched tree network, for that matter). Geomorphic studies, such as Merrits & Vincent (1989), have used morphometric parameters associated with ordered stream networks to interpret the timing and nature of landscape response to tectonic perturbation. I am presently working with an undergrad to use ordered stream morphometry to analyze tectonic variability, and although automated stream ordering algorithms exist within ESRI’s Spatial Analyst toolbox, they are not without their quirks.
The stream order function generates unique segments for each length of stream between two nodes, or junctions between streams. Regardless of whether or not this junction results in a change in the order of the trunk stream, a new segment is generated, which presents a problem for morphometric studies: generated statistics will only have meaning if a stream branch of nth-order is represented by a single segment.
One could dissolve the stream networks based on their order in the attributes table, but this produces an additional hiccup: Dissolve cannot discriminate between consecutive segments with shared vertices, and segments of two different streams that also share vertices, for instance where two 2nd order streams join to form a 3rd order stream. In this instance, Dissolve merges the two tributary streams into one. This also poses an issue for statistics.
This is the solution I came up with:
From the original ordered network, create new shapefiles containing ONLY streams of each order. For areas that have streams up to 4th order, you should have 4 polyline shapefiles represnting order 1, 2, etc.
Use Dissolve (Data Management > Generalization) to dissolve each new shapefile, based on the field that contains stream order.
Be sure to uncheck the “Create Multipart Features” box.
You do not need to do this with the first-order stream shapefile, as the first-order streams are all single-segment line features.
Use Intersect (Analysis > Overlay) to generate points representing the intersection between streams of order n and streams of order n+1.
Very important to specify Output type = POINT in the final dialog box of the Intersect window.
Split streams of order n using their intersections with streams of order n+1 using Split Line at Point (Data Management > Features).
For example, order 2 streams would be split with the point shapefile representing the intersections between order 2 and order 3 streams. This will split second order streams where two meet to form a third order stream, but will have no effect on 2nd order streams that intersect higher order streams.
Merge the resulting streams together and you’re back to the original stream network, but with stream segments properly defined. It’s a little (okay, quite) tedious, but definitely beats defining them manually.