On 13/11/14 00:25, Thomas Adams wrote:
Moritz,

I need to be sure I understand this line:

down_id = if(dir=1, id[1,1], if(dir=2, id[0,1], if(dir=3, id[-1,1] .... etc

dir=1 is what direction?; dir=2 is what direction?, etc. Is dir=1
directly to the 'East', dir=3 directly 'south', dir=5 directly 'west'
and dir=7 directly 'north'

In the example, I was assuming (without making it explicit, sorry) a dir coming from r.watershed ('drainage' parameter) and as you can see in the man page:

"Provides the "aspect" for each cell measured CCW from East. Multiplying positive values by 45 will give the direction in degrees that the surface runoff will travel from that cell. The value 0 (zero) indicates that the cell is a depression area (defined by the depression input map). 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."

I.e. 2 = due north, 4 = east, 6 = south, 8 = east.

But obviously this has to be adapted to whatever tool you use for calculating your drainage direction.



Also, does the indexing [0,1] refer to the [x,y], i.e., [column, row] so
that [0,1] refers to the same column, but one row below? Which would
imply from your line that dir=2 is directly 'south'??

From the r.mapcalc man page:

"In r.mapcalc, maps may be followed by a neighborhood modifier that specifies a relative offset from the current cell being evaluated. The format is map[r,c], where r is the row offset and c is the column offset. For example, map[1,2] refers to the cell one row below and two columns to the right of the current cell, map[-2,-1] refers to the cell two rows above and one column to the left of the current cell, and map[0,1] refers to the cell one column to the right of the current cell."

I.e. the inverse of what you interpreted: [0,1] = same row, one to the east, i.e. drainage direction due east.

And I realise that I inversed it myself in the second element of the example. It should be:

down_id = if(dir=1, id[1,1], if(dir=2, id[1,0], if(dir=3, id[-1,1] .... etc

i.e. dir=2 implies due North and so one row up, same column.


I apologize for being dense about this, I just need to be sure — sorry…

It can be a bit difficult to wrap your head around, especially when those trying to help you induce you into error ;-)


Moritz

_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to