[GRASS-user] r.watershed

Dear GRASS Gurus,

During the last days I’ve discovered a strange behaviour of r.watershed and D8. The used DEM is the result from a landscape evolution model and there are no depressions. I cannot use MFD as the D8-FlowDirections input data of a variety of tools I’ve written during the last years.

I got obviously wrong values for the flow accumulation of r.watershed and D8. The number of cells in the Flow Accumulation grid at the outlet point was significantly smaller than the area of catchment analysed catchment (spatial resolution in north south and east west direction is 1) also computed with GRASS using r.water.outlet and a conversion to an Area. I checked Flow Accumulation at the the outlet with an alternative code of a colleague and the contributing drainage area was exactly the value
of the catchment size computed with r.water.outlet.

I further found some deviations in the flow direction grid. In some cases the flow routing leads to the lowest neighbouring cell which however might not be the steepest decent. r.watershed chooses sometimes a diagonal flow direction while the the local channel gradient would be greater in horizontal direction.

I started some test runs with very simple geometries. I’ve defined a ramp with r.mapcalc that dips in north direction and I expected that the this will also be shown by the flow direction of r.watershed. However, this is not the case. The synthetic DEM features a watershed!!! See attachment. It seems that r.watershed fills the region (without need). This strange behavior disappears in by applying the multiple flow direction algorithm.

I have tested with the latest versions grass70 , grass71 and grass645.

Here is a test case (grass71). I would be great if somebody could reproduce the problem and show me a workaround.

(attachments)

acc.png

On 23/06/15 10:32, Robl Jörg Christian wrote:

Dear GRASS Gurus,

During the last days I've discovered a strange behaviour of r.watershed
and D8. The used DEM is the result from a landscape evolution model and
there are no depressions. I cannot use MFD as the D8-FlowDirections
input data of a variety of tools I’ve written during the last years.

I got obviously wrong values for the flow accumulation of r.watershed
and D8. The number of cells in the Flow Accumulation grid at the outlet
point was significantly smaller than the area of catchment analysed
catchment (spatial resolution in north south and east west direction is
1) also computed with GRASS using r.water.outlet and a conversion to an
Area. I checked Flow Accumulation at the the outlet with an alternative
code of a colleague and the contributing drainage area was exactly the
value
of the catchment size computed with r.water.outlet.

I further found some deviations in the flow direction grid. In some
cases the flow routing leads to the lowest neighbouring cell which
however might not be the steepest decent. r.watershed chooses sometimes
a diagonal flow direction while the the local channel gradient would be
greater in horizontal direction.

I started some test runs with very simple geometries. I've defined a
ramp with r.mapcalc that dips in north direction and I expected that the
this will also be shown by the flow direction of r.watershed. However,
this is not the case. The synthetic DEM features a watershed!!! See
attachment. It seems that r.watershed fills the region (without need).
This strange behavior disappears in by applying the multiple flow
direction algorithm.

I have tested with the latest versions grass70 , grass71 and grass645.

Here is a test case (grass71). I would be great if somebody could
reproduce the problem and show me a workaround.

---------------------------------------------------------

g.region w=0 e=1000 s=0 n=1000 res=1 -p
r.mapcalc "DEM = 1000 - y()"
r.watershed -s elevation=DEM@PERMANENT accumulation=ACC drainage=DIR

After a first rapid look I can confirm the issue, but don't have an explanation, nor a workaround.

MarkusM, you know r.watershed best. Could you have a look ?

Moritz

Dear Moritz,

Thank you for testing and reproducing the strange behavior or r.watershed and D8.
At least it is not a problem of a library on my computer!

Any help is highly appreciated!

Cheers
Jörg

-----Ursprüngliche Nachricht-----
Von: Moritz Lennert [mailto:mlennert@club.worldonline.be]
Gesendet: Mittwoch, 24. Juni 2015 11:30
An: Robl Jörg Christian
Cc: grass-user@lists.osgeo.org; Markus Metz
Betreff: Re: [GRASS-user] r.watershed

On 23/06/15 10:32, Robl Jörg Christian wrote:

Dear GRASS Gurus,

During the last days I've discovered a strange behaviour of
r.watershed and D8. The used DEM is the result from a landscape
evolution model and there are no depressions. I cannot use MFD as the
D8-FlowDirections input data of a variety of tools I've written during the last years.

I got obviously wrong values for the flow accumulation of r.watershed
and D8. The number of cells in the Flow Accumulation grid at the
outlet point was significantly smaller than the area of catchment
analysed catchment (spatial resolution in north south and east west
direction is
1) also computed with GRASS using r.water.outlet and a conversion to
an Area. I checked Flow Accumulation at the the outlet with an
alternative code of a colleague and the contributing drainage area was
exactly the value of the catchment size computed with r.water.outlet.

I further found some deviations in the flow direction grid. In some
cases the flow routing leads to the lowest neighbouring cell which
however might not be the steepest decent. r.watershed chooses
sometimes a diagonal flow direction while the the local channel
gradient would be greater in horizontal direction.

I started some test runs with very simple geometries. I've defined a
ramp with r.mapcalc that dips in north direction and I expected that
the this will also be shown by the flow direction of r.watershed.
However, this is not the case. The synthetic DEM features a
watershed!!! See attachment. It seems that r.watershed fills the region (without need).
This strange behavior disappears in by applying the multiple flow
direction algorithm.

I have tested with the latest versions grass70 , grass71 and grass645.

Here is a test case (grass71). I would be great if somebody could
reproduce the problem and show me a workaround.

---------------------------------------------------------

g.region w=0 e=1000 s=0 n=1000 res=1 -p r.mapcalc "DEM = 1000 - y()"
r.watershed -s elevation=DEM@PERMANENT accumulation=ACC drainage=DIR

After a first rapid look I can confirm the issue, but don't have an explanation, nor a workaround.

MarkusM, you know r.watershed best. Could you have a look ?

Moritz