On Mar 26, 2008, at 8:31 PM, Andrew Danner wrote:

Luca,

 The Terrastream direction coding for single flow direction is as
follows

1 = Water flows east
2 = SE
4 = S
8 = SW
16 = W
32 = NW
64 = N
128 = NE

Or pictorially

 32  64 128
 16   x  1
  8   4  2

In the MFD case, values do NOT represent aspects in the range 0 to 360,
but instead indicate sums of the directions above. Thus if water flows
N, S and SW, the value is 64+8+4 = 76.

In both the SFD/MFD outputs, a value of 0 means this point is local
minimum and there is no flow direction.

r.water.outlet reports:
drainage=name
        Input map: drainage direction. Indicates the "aspect" for each
cell. Multiplying positive values by 45 will give the direction
        in degrees that the surface runoff will travel from that cell.
The value -1 indicates that the cell is a depression area. Other
        negative values indicate that surface runoff is leaving the
boundaries of the current geographic region. The absolute value
        of these negative cells indicates the direction of flow. This
        map is generated from r.watershed

I don't know if the direction it refers to is measured from North or
East or if it moves clockwise or counterclockwise.

r.slope.aspect measures ccw from east, TerraStream and TerraFlow are
measuring clockwise from East, and standard compass direction is
measured clockwise from North.

If someone is more familiar with the r.water.outlet drainage directions, it should be relatively easy to map the values 1,2,4,8,16,32,64 and 128 to 1 through 7. log_2(tflow_dir)+1 will map terrastream flow directions
onto the range 1-7 (handling 0 is special case).

Is there any consistent way of encoding flow direction? TerraStream and TerraFlow I believe used an encoding from Jenson and Domingue, though in
looking up their reference they started with 1 in the NE and moved
clockwise. Perhaps ESRI products used 1=E. It seems that aspect should
be measured clockwise in degrees from north geographically, but it makes
more sense to measure ccw from east trigonometrically.

sometimes in early 90ies decision was made for GRASS to follow trigonometric
approach with ccw from east for aspect
- so r.slope.aspect, v..surf.rst, r.flow and in fact r.watershed follow that rule (r.watershed has 1 NE which is 45 deg and grows ccw (if anybody finds that this is not the
case please let me know - I will modify the man pages accordingly)).

I looked into yet unpublished Geomorphometry book that has a ton of info about flow direction and softwares that compute it, but it mentions what the numbers actually
mean in only one place
suggesting that aspect is usually measured cw from north (compass direction). It seems to me that 1 in the NE growing cw is essentially a D8 version of starting North, having 45deg at NE - so that would be the compass direction used by Jensen?

TerraStream could easily rotate or reverse the values 1-255 if there is
a standard out there to follow.

After digging through some literature, I would say there is no official standard
but for GRASS implementation it would make
sense to follow ccw from east with 1 (45deg) at NE.
Compass approach with 1 (45deg) at NE and growing cw would work too for general
audience. Other versions look rather non-standard to me.
Whatever is chosen, apparently it is necessary to have this documented in man pages.

Unrelated to this issue - it would be great to include the option of delineating watershed boundaries from given points into Terrastream and/or r.terraflow. It is a very common task - e.g. you need to compute % impervious areas upslope from a monitoring stations or sampling
site (they can be hundreds  of them).

Helena


-Andy







On Thu, 2008-03-27 at 00:49 +0100, Luca Casagrande wrote:
Hello everybody.
While Ivan is working on r.watershed I am trying to reach the result
using TerraSTREAM.

With the help of Thomas, I have successfully created a drainage map
from the DEM and the idea is to use it
with r.water.outlet. The problem is that it needs a drainage map with
values that run from -8 to 8, instead TerraSTREAM prompt out a bitmap
(using SFD) or a raster with values from 0 to 360 degree (with MFD). I
can reclass it with r.reclass
but I don't know how handle negative values.

Any suggestion on this?

Thanks

Luca


_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to