Select to view content in your preferred language

Dissolve Lines without Dissolving Convergent Lines?

1679
7
Jump to solution
07-31-2017 11:27 AM
UnsoughtNine
Occasional Contributor

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.

0 Kudos
1 Solution

Accepted Solutions
UnsoughtNine
Occasional Contributor

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.

View solution in original post

0 Kudos
7 Replies
DanPatterson_Retired
MVP Emeritus

Just to check, without visuals, this isn't a Strahler vs Shreve issue is it?

0 Kudos
UnsoughtNine
Occasional Contributor

No this is not a Strahler vs Shreve issue.

The stream polyline layer, as output from the raster to polygon conversion tool. Each segment is it

Following running dissolve and using the order field as the dissolve field. Common vertices combine two streams at a few points. These streams which would ideally be their own features for my purposes.

Hoping the visuals were of some benefit.

0 Kudos
UnsoughtNine
Occasional Contributor

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

0 Kudos
DanPatterson_Retired
MVP Emeritus

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

UnsoughtNine
Occasional Contributor

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

0 Kudos
UnsoughtNine
Occasional Contributor

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.

0 Kudos
ChrisDonohue__GISP
MVP Alum

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:

  1. Run Intersect (Analysis) using only your stream feature class (no other inputs, yes only 1 input!) and for the "Output Type (Optional)" settting using "Points".  This will produce a point feature class of the stream intersections.
  2. Run Split Line at Point (Data Management) using the points from step 1 and the dissolved stream line feature class.

Intersect—Help | ArcGIS for Desktop 

How Intersect works—Help | ArcGIS for Desktop 

Split Line at Point—Help | ArcGIS for Desktop 

Chris Donohue, GISP

0 Kudos