[GIS] Count number of stream segments in a particular stream order: Bifurcation ratio

arcgis-desktop

Question regarding stream Morphometry. In which we calculate number of stream segment of a particular stream order.

enter image description here

Issue is that ArcGIS is giving incorrect no of segments. What happened in ArcGIS 10.1 after converting into Vector format (feature class), Grid code shows stream order. But the no. of segments is different. I mean In this figure we have three segments of 2 order streams [Blue streams] but ArcGIS counted it 7 segments.

Higher order streams got disconnected when new lower order stream join ( at nodes). Although on clicking it shows same order but its frequency is different i.e no of segment will be different.

But if two same order join and they meet higher order then stream segment should not be joined ( such as when two 2nd order ( Blue ones) join with 3rd (higher order) (red ones) in this these two blue streams will not be joined. Because they are different tributary.

If we do this correctly then we can get other Morphometry parameters such as Bifurcation ratio.

Could you help me to sort it out? We can count manually but for larger area it is not a good way.

I am new to Python coding.

Best Answer

Your geometry does not have to split at each branch if you do not want it to. It is easier if you create the geometry to fit your morphology rule rather than split every segment and then try to rejoin everything to fit your rule. So manually merging the segments that have 2 as the stream order and splitting them only at higher order streams manually is what you should have done from the start.

Given that you have chosen to split everything, the count is correct for the number of actual segments you have created from a GIS perspective. Your morphology rule is a custom rule that you alone can enforce to get a segment count like you want.

To recreate your lines as though you had followed this rule manually you will have to do several steps and create several intermediate feature classes. I will assume you or your company have an Advanced license available so that you can use all of the tools I will mention below. If not that makes this harder.

Your best bet is to use the Dissolve tool to merge the segments with the stream order field as the Dissolve field and use the Unsplit lines option to only merge lines that touch end to end. Optionally use other fields as part of your Dissolve field set like stream name, if that will prevent some unwanted merging of lines.

Next you would have to create a separate feature class from each order of streams. Manually do this by using Select By Attribute to select each stream order in turn and exporting each order to a separate feature class, since you don't appear to have a lot of stream orders to deal with. Use the Intersect tool on the first order streams line set paired with the second order streams line set and create an output of points. Then use the Split Line at Points tool with the first order streams and the point output. Repeat that process for the second order streams with the third order streams, etc. until you reach the last order pair.

Merge or Append the line features classes that were outputted by all of the the Split Line at Points tool processes. This merged set of lines should be the set of lines you want to get a morphology based segment count.

Related Question