Repository for Ideas & Research
Open Source GIS, Hydrologic Modeling, Optimization

How to delineate stream networks in GRASS GIS

1   Identifying stream networks without calculating hydrologic parameters

Extract streams using the A* algorithm with a threshold value of 100 cells for stream generation:

# accumulation=acc is optional
r.stream.extract elevation=dem threshold=100 stream_vector=streams accumulation=acc

Figure 1 shows a stream network vector map created using r.stream.extract. The stream vector properly represents flow directions.

u-r.stream.extract.png
Figure 1: Stream networks generated using r.stream.extract. The red and blue lines represent the stream vector and flow directions, respectively. The underlying raster map is flow accumulation.

2   Delineating watersheds and identifying stream networks from the same source of elevation data

Calculate flow direction and accumulation, and delineate basins in the raster format:

r.watershed -a elevation=dem threshold=100 accumulation=acc basin=basins

Extract streams from the flow accumulation raster map from r.watershed so that the stream network output matches the watershed output from r.watershed:

r.stream.extract elevation=dem accumulation=acc threshold=100 stream_vector=streams

3   How not to delineate stream networks

r.watershed generates a stream raster map and you may be tempted to simply convert this stream raster map to vector to identify stream networks:

r.watershed -a elevation=dem threshold=100 stream=streams
r.thin input=streams output=streams_thinned
r.to.vect input=streams_thinned output=streams type=line

However, there are two problems with this method. First, the output stream vector map does not guarantee the correct directionality of stream paths. Second, if there are raster cell clumps in the stream raster map, stream loops may be generated or even incorrect stream paths can be obtained. An example is shown in Figure 2. Note that the stream vector does not fully agree with flow directions. Compare this output to Figure 1.

u-r.watershed.png
Figure 2: Stream networks generated using r.watershed, r.thin, and r.to.vect. The red and blue lines represent the stream vector and flow directions, respectively. The underlying raster map is flow accumulation.


Sun Oct 29 12:58:27 2017 EDT by Huidae Cho
Parsing time: 0.022 seconds
XHTML . CSS . Powered by Uniqki!