Provided by: grass-doc_6.4.3-3_all bug

NAME

       r.drain  - Traces a flow through an elevation model on a raster map.

KEYWORDS

       raster, hydrology

SYNOPSIS

       r.drain
       r.drain help
       r.drain  [-cand]  input=name   [indir=string]  output=name  [voutput=string]   [coordinate=x,y[,x,y,...]]
       [vector_points=name[,name,...]]   [--overwrite]  [--verbose]  [--quiet]

   Flags:
       -c
           Copy input cell values on output

       -a
           Accumulate input values along the path

       -n
           Count cell numbers along the path

       -d
           The input surface is a cost surface (if checked, a direction surface must also be specified

       --overwrite
           Allow output files to overwrite existing files

       --verbose
           Verbose module output

       --quiet
           Quiet module output

   Parameters:
       input=name
           Name of elevation raster map

       indir=string
           Name of movement direction map associated with the cost surface

       output=name
           Name for output raster map

       voutput=string
           Output drain vector map (recommended for cost surface made using knight's move)

       coordinate=x,y[,x,y,...]
           Map coordinates of starting point(s) (E,N)

       vector_points=name[,name,...]
           Name of vector map(s) containing starting point(s)

DESCRIPTION

       r.drain traces a flow through a least-cost path in an elevation model. The  input  elevation  surface  (a
       raster  map  layer)  might  be  a cumulative cost map generated by the r.cost program.  The output result
       (also a raster map layer) will show one or more least-cost paths between each  user-provided  location(s)
       and the minima (low category values) in the input map. By default, the output will be an integer CELL map
       with 1 along the least cost path, and null cells elsewhere.

       With  the  -c  (copy)  flag,  the  input  map cell values are copied verbatim along the path. With the -a
       (accumulate) flag, the accumulated cell value from the starting point up to the current cell  is  written
       on  output.  With either the -c or the -a flags, the output map is created with the same cell type as the
       input map (integer, float or double).  With the -n (number) flag, the cells  are  numbered  consecutively
       from the starting point to the final point.  The -c, -a, and -n flags are mutually incompatible.

       The  path  is  calculated  by  choosing the steeper "slope" between adjacent cells. The slope calculation
       accurately acounts for the variable scale in lat-lon projections.

       The coordinate parameter consists of map E and N grid coordinates of a starting point. Each x,y  pair  is
       the  easting  and  northing  (respectively)  of a starting point from which a least-cost corridor will be
       developed.  The vector_points parameter can take multiple  vector  maps  containing  additional  starting
       points.   Up  to 1024 starting points can be input from a combination of the coordinate and vector_points
       parameters.

NOTES

       r.drain currently finds only the lowest point (the cell having the smallest category value) in the  input
       file that can be reached through directly adjacent cells that are less than or equal in value to the cell
       reached  immediately  prior to it; therefore, it will not necessarily reach the lowest point in the input
       file. It currently finds pits in the data, rather than the lowest point in  the  entire  input  map.  The
       r.fill.dir,  r.terraflow,  and r.basins.fill modules can be used to fill in subbasins prior to processing
       with r.drain.

       r.drain will not give sane results at the region boundary. On outer rows and columns bordering  the  edge
       of  the  region,  the  flow direction is always directly out of the map. In this case, the user could try
       adjusting the region extents slightly with g.region to allow additional outlet paths for r.drain.

EXAMPLES

       Consider the following example:
       Input:                          Output:
         ELEVATION SURFACE               LEAST COST PATH

       The user-provided starting location in the above example is the boxed 19 in the left-hand map.  The  path
       in  the  output  shows  the least-cost corridor for moving from the starting box to the lowest (smallest)
       possible point. This is the path a raindrop would take in this landscape.

       With the -c (copy) flag, you get the following result:
       Input:                          Output:
         ELEVATION SURFACE               LEAST COST PATH
       Note that the last 0 will not be put in the null values map.

       With the -a (accumulate) flag, you get the following result:
       Input:                          Output:
         ELEVATION SURFACE               LEAST COST PATH

       With the -n (number) flag, you get the following result:
       Input:                          Output:
         ELEVATION SURFACE               LEAST COST PATH

BUGS

       Sometimes, when the differences among integer cell category values in the r.cost cumulative cost  surface
       output are small, this cumulative cost output cannot accurately be used as input to r.drain (r.drain will
       output  bad  results).   This problem can be circumvented by making the differences between cell category
       values in the cumulative cost output bigger. It is recommended that if the output from r.cost  is  to  be
       used  as  input to r.drain, the user multiply the r.cost input cost surface map by the value of the map's
       cell resolution, before running r.cost. This can be done using r.mapcalc. The map resolution can be found
       using g.region.  This problem doesn't arise with floating point maps.

SEE ALSO

       g.region, r.cost, r.fill.dir, r.basins.fill, r.terraflow, r.mapcalc, r.walk

AUTHOR

       Completely rewritten by Roger S. Miller, 2001

       July 2004 at WebValley 2004, error checking and vector points added by Matteo Franchi (Liceo Leonardo  Da
       Vinci, Trento) and Roberto Flor (ITC-irst, Trento, Italy)

       Last changed: $Date: 2012-12-27 08:11:57 -0800 (Thu, 27 Dec 2012) $

       Full index

       © 2003-2013 GRASS Development Team

GRASS 6.4.3                                                                                      r.drain(1grass)