Stream Order (Strahler) and Flow Direction

21094
33
01-06-2011 08:04 PM
Labels (1)
PeterWilson
Occasional Contributor III
I have generated a terrain dataset for South Africa from 20m contours and SPOT shots. In order to eliminate errors in the terrain where there isn't enough data especially low lying areas. I would like to make use of river centerlines to enforce the drainage within the terrain dataset. My proposed methodology is to intersect the river centerlines with the contours and extract the Z values of the contours into the river centerlines. I would then use the polyline Z river centerlines as hard break lines within the terrain dataset.

The problem that I have is that I need to ensure that the flow direction of the existing river centerlines that I wish to use is correct and secondly need to assign a stream order (Strahler) to the river centerline segments.

I've attached a screen shot of the river centerlines to help explain the problem that I have with the currently available river centerline dataset. There are numerous segments that should be tributaries but do not extended enough to link up with the main river. I'm looking for advice in how I can make use of the available river centerlines to embed into my terrain. Do I eliminate the segments that are not connected to the main river centerlines.

What is the most efficient methodology to rectify the river centerlines to a point that they won't add additional error to my terrain dataset, which I then would like to use to generate a river centerline network to build up an hydro data model. Any assistance will be appreciated.
Tags (2)
33 Replies
NicoleCarlozo
New Contributor
Thanks Mark. The SA Process you described makes sense, but when I followed it, the output did not make sense. Within a branch, the stream order values fluctuated (see attached for an example/screen shot).

Is this what you meant by parallel streams? I did use a small buffer as you suggested, but I could make it wider. Within the stream order tool, I used a raster version of the stream polyline and the flow direction output.

Is there an easier way to perform this analysis within ArcHydro?
0 Kudos
PonderosaAdvisors
New Contributor

I am having the same issue when I use my own streams which have braids and loops.  If I let ArcHydro define the streams for me then it works just fine.  The jpg that you attached doesn't show any braided streams, but I am wondering if your data did contain braids.  I think the Stream Order cannot handle braided networks.  Can anyone confirm this?

0 Kudos
ChristineDartiguenave
Esri Contributor

StreamOrder uses flow direction as input, i.e. flow can only go one way so braided network are not supported.

If you have a braided network you can use the Assign River Order tool from the Arc Hydro toolbox or Arc Hydro Python toolbox. It is located in the Attribute tool toolset. This tool takes as optional input a flow split table that allows the tool to handle braids.

Coming in with your own streams feature class you will need to run the following tools:

· Assign HydroID

· Generate From/To Node for Lines (store connectivity)

· Find NextDownstream Line (to create the flow split table and NextDownIDs)

· Assign River Order.

Also the field OmitUp (0/1) if present is used to reset the order to 1 in a secondary braid segment.

Christine Dartiguenave

Esri Water Resources Team

0 Kudos
PonderosaAdvisors
New Contributor

Great!  That works for the most part.  I am using HND streams and am having trouble with all of the streams being assigned a river order.  I am attaching a gdb with a sample.  Here is also a clip of the message that I receive saying that 44 of the segments did not receive a stream order.  If you could direct me to a solution I would greatly appreciate it.

0 Kudos
ChristineDartiguenave
Esri Contributor

Your problem is that you have a loop in your streams. The tool cannot figure out loops.

Look at your features with HydroID 1603 and 1699. You need to flip one of the segments, then rerun Generate From Node/To Node, Find Next Downstream Line and Assign River Order.

Chirstine

0 Kudos
PonderosaAdvisors
New Contributor

Great!  Thanks for the help.

0 Kudos
MarkBoucher
Occasional Contributor III
If you use the Stream Link tool you should get a raster with just a stream defined by single grid cells (one cell wide). See example attached. Your image looks like the stream is defined by several cells wide. Your image is not an example of what I would call "parallel streams".

In my image, if you look at the confluence to the right of the center of the image, you will see parallel streams defined for a short distance (mine is a 10'x10' grid). They are only one cell apart. If I were to redo this one, I would add agreestream features to burn the DEM so the parallel streams merge (that is if I knew they should not be parallel and should come together sooner).
0 Kudos
NicoleCarlozo
New Contributor
Thanks for the clarification. I tried what you suggested, but the result did not change. When creating the stream raster, I made sure the cell size matched the DEM. I also tried using the default cell size and a very small cell size. The same problem occurred. In environmental settings, I tried snapping the stream raster to the DEM during processing, as well as not snapping. Still no change.

My workflow:

1) Polyline to Raster conversion (1 on a background of NoData)
2) Burn the polylines into the DEM.
2) Fill the burned DEM
3) Flow Direction
4) Use the stream raster and flow direction outputs in the Stream Order tool.

Could this problem be due to a high resolution DEM? Since I am using a buffer (-100) around the stream lines, I'd think that the flow path/direction would not be a problem.
0 Kudos
MarkBoucher
Occasional Contributor III
I tried using the SA Hydrology tools and Raster Calculator to do what you are doing. When I converted the stream polylines to raster I got a single cell pattern for the streams raster. I was not able to get all the tools to give me results I was expecting and then someone else doing "real work" needed the SA license and I had to stop investigating.

For your stream raster, you may need a value of greater than 1 to make the burn work. Use the Con() function to create another stream raster where 1 is changed to -1000, then add the two rasters. This will definitely burn the streams deep.
0 Kudos
NicoleCarlozo
New Contributor
Thank you for trying - I appreciate it!

When I burned the stream into the DEM, I made sure the stream value was -1000 with a buffer of -100. I used the stream raster of value 1 as the input into the stream order tool.

I think the stream raster sometimes looks like there are 2 cells because the polyline curves or runs along the edge of the raster cell. I'm not sure how to get around that.
0 Kudos