I've been playing with arcHydro and related processes a bit and have run into an obstacle. I have been creating stream networks from the flow accumulation, direction, and stream order functions. When converted from raster to polygon each segment of the streams is a unique feature within the output feature class. I would like it so that if there is no change in order from one segment to the next, that it is the same feature. Easy enough, dissolve.
The issue now is that where two streams of the same order come together to form a stream of a greater order, the two smaller order streams dissolve into 'one' stream as they share a vertex (their shared outlet which is the inlet of the greater order stream subsequent). Difficult to describe without visuals but I'm hoping this was clear.
Solved! Go to Solution.
I ultimately took the problem from a different approach which was somewhat initiated through Dan's comments:
1. Create a point at every vertice in the stream layer
2. Buffer every vertice at a user-specified setback (10m in my case) to move the pour point back from the outlet slightly
2. Create intersecting points where the buffer crosses the stream layer. This creates points at the specified setback.
3. Clip the streams layer with the buffer then identify the smallest order stream of concern within the buffer through a sorted array approach
4. Eliminate those points of orders greater than the minimum identified in the array.
The remaining points are the pour points, set back from the outlet, as I had originally desired. This seems to be a bit more resource-intensive of a process but it appears to be working. Thanks all.
Just to check, without visuals, this isn't a Strahler vs Shreve issue is it?
No this is not a Strahler vs Shreve issue.
Hoping the visuals were of some benefit.
The first image is the layer as it converts from raster; with each line segment being it's own feature. The second image is following a dissolve. The 'conflict' areas are those circled in red, where a common vertice has caused two streams of the same order to dissolve together when in fact they only share an outlet. For my purposes, I don't want this to be the case. Hoping the visuals help clarify. Dan_Patterson
I am wondering what option you used for the dissolve The unsplit line option at the very end suggests that a line will only be dissolved when only two lines meet at an end point. If you used the default a point that has 2 or more will be dissolved, if unsplit is used, only points that have 2 lines meeting will be dissolved. Beyond that, the only other thing I can think of is to identify the points in the lines (feature to points) that have 3 or more occurences, then use those to split the lines at those points
Both the unsplit and split line options produce similar issues for my application. I need the lines only to dissolve where a common endpoint is not shared, arc does not seem to have an option for this. Can I extract the number of line occurrences to a point feature class? I could then export the points with 3 or more occurrences and use them to split the dissolved lines at those points. This seems like a fair approach. Dan_Patterson
I ultimately took the problem from a different approach which was somewhat initiated through Dan's comments:
1. Create a point at every vertice in the stream layer
2. Buffer every vertice at a user-specified setback (10m in my case) to move the pour point back from the outlet slightly
2. Create intersecting points where the buffer crosses the stream layer. This creates points at the specified setback.
3. Clip the streams layer with the buffer then identify the smallest order stream of concern within the buffer through a sorted array approach
4. Eliminate those points of orders greater than the minimum identified in the array.
The remaining points are the pour points, set back from the outlet, as I had originally desired. This seems to be a bit more resource-intensive of a process but it appears to be working. Thanks all.
If the stream feature class is already dissolved and you have access to an Advanced ArcGIS license level, one option to re-split it only at those junctures is this:
Intersect—Help | ArcGIS for Desktop
How Intersect works—Help | ArcGIS for Desktop
Split Line at Point—Help | ArcGIS for Desktop
Chris Donohue, GISP