[GRASS-dev] [GRASS GIS] #1924: r.watershed - empty stream segment map

Johannes Radinger johannesradinger at gmail.com
Mon Jun 3 06:30:51 PDT 2013

Hi Markus,
Hi others,

I am coming back to the topic of running r.watershed on a rasterized river

As recommended I buffered now my river raster. This river raster is a
thinned distance raster
with increasing values from the outlet to the branches (calculated via
r.cost) and as
I said it is buffered now with a very large value (2 x max of the thinned
distance raster).

So actually this should work as an input map to r.watershed. And it does
more or
less perfectly: There's just one issue concerning the outlet-stream segment.
Somehow this (in my case small segment, in the south-west corner) is
missing in the stream-map output of r.watershed.
I am working on GRASS6.5. Attached there is a zipped GTIFF with the
"pseudo-elevation" map
(this thinned and buffered distance raster) I am using as input to

The command I am using is:
r.watershed -f --overwrite elevation=buffer_river_raster
stream=test_segments threshold=3
The threshold has been set to 3 as this is the number of raster cells that
refer to the buffer (3 x resolution)

Can anyone reproduce that the outlet small river segment is missing in the
produced "test_segments"??
What is causing that?


On Wed, Apr 10, 2013 at 12:37 PM, GRASS GIS <trac at osgeo.org> wrote:

> #1924: r.watershed - empty stream segment map
> -----------------------+----------------------------------------------------
>  Reporter:  jradinger  |       Owner:  grass-dev@…
>      Type:  defect     |      Status:  new
>  Priority:  normal     |   Milestone:
> Component:  Raster     |     Version:  svn-trunk
>  Keywords:             |    Platform:  Linux
>       Cpu:  x86-32     |
> -----------------------+----------------------------------------------------
> Comment(by mmetz):
>  Replying to [comment:2 jradinger]:
>  >
>  > Two more important things:
>  > 1) The elevation input map is accutally already a thinned river raster.
>  The raster
>  > values represent a pseude elevation which  was generated with r.cost
>  from the source.
>  > Thus the value (elevation) is increasing upstream. r.watershed is just
>  used for getting
>  > the flowdirection and segmenting the river raster. (if needed I can
>  provide the elevation-rcost
>  > raster)
>  r.watershed expects a surface as input. Using a thinned river raster as
>  input should give weird results: all non-NULL cells face at least one NULL
>  cell treated as unknown elevation, thus flow direction can not be
>  unambiguously determined. You can try to place a buffer around the rivers
>  and fill the buffer with pseudo-elevation values larger than the largest
>  cost value. For example, create a buffer using 300 meter (3 cells) as
>  distance, set a pseudo elevation value for the buffer zone, patch the
>  thinned river raster with the pseudo elevation, run r.watershed with
>  threshold=3. Works for me.
>  > And maybe a warning/error message should be printed when threshold = 0,
>  instead of the (for me confusing error)
>  Makes sense.
>  Markus M
> --
> Ticket URL: <http://trac.osgeo.org/grass/ticket/1924#comment:3>
> GRASS GIS <http://grass.osgeo.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20130603/0492d411/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: buffered_distance_raster.zip
Type: application/zip
Size: 101862 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20130603/0492d411/attachment-0001.zip>

More information about the grass-dev mailing list