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

NAME

       r.terraflow  - Flow computation for massive grids (float version).

KEYWORDS

       raster, hydrology

SYNOPSIS

       r.terraflow
       r.terraflow help
       r.terraflow    [-sq]    elevation=name    filled=name    direction=name    swatershed=name
       accumulation=name   tci=name    [d8cut=float]     [memory=integer]     [STREAM_DIR=string]
       [stats=string]   [--overwrite]  [--verbose]  [--quiet]

   Flags:
       -s
           SFD (D8) flow (default is MFD)

       -q
           Quiet

       --overwrite
           Allow output files to overwrite existing files

       --verbose
           Verbose module output

       --quiet
           Quiet module output

   Parameters:
       elevation=name
           Name of elevation raster map

       filled=name
           Name for output filled (flooded) elevation raster map

       direction=name
           Name for output flow direction raster map

       swatershed=name
           Name for output sink-watershed raster map

       accumulation=name
           Name for output flow accumulation raster map

       tci=name
           Name for output topographic convergence index (tci) raster map

       d8cut=float
           Routing using SFD (D8) direction
           If  flow  accumulation is larger than this value it is routed using SFD (D8) direction
           (meaningfull only  for MFD flow)
           Default: infinity

       memory=integer
           Maximum runtime memory size (in MB)
           Default: 300

       STREAM_DIR=string
           Directory to hold temporary files (they can be large)

       stats=string
           Name of file containing runtime statistics
           Default: stats.out

DESCRIPTION

       r.terraflow takes as input a raster digital elevation model (DEM) and  computes  the  flow
       direction  raster  and  the  flow  accumulation  raster,  as well as the flooded elevation
       raster,  sink-watershed  raster  (partition  into  watersheds  around   sinks)   and   tci
       (topographic convergence index) raster.

       r.terraflow  computes  these rasters using well-known approaches, with the difference that
       its emphasis is on the computational complexity of the algorithms, rather than on modeling
       realistic  flow.   r.terraflow emerged from the necessity of having scalable software able
       to process efficiently  very  large  terrains.   It  is  based  on  theoretically  optimal
       algorithms  developed  in  the  framework  of  I/O-efficient  algorithms.  r.terraflow was
       designed and optimized especially for massive grids and is able to process terrains  which
       were impractical with similar functions existing in other GIS systems.

       Flow  directions  are computed using either the MFD (Multiple Flow Direction) model or the
       SFD (Single Flow  Direction,  or  D8)  model,  illustrated  below.  Both  methods  compute
       downslope flow directions by inspecting the 3-by-3 window around the current cell. The SFD
       method assigns a unique flow direction towards the steepest downslope  neighbor.  The  MFD
       method assigns multiple flow directions towards all downslope neighbors.

       Flow direction to steepest
        downslope neighbor (SFD).  Flow direction to all
        downslope neighbors (MFD).

       The  SFD  and  the MFD method cannot compute flow directions for cells which have the same
       height as all their neighbors (flat areas) or cells which do not have downslope  neighbors
       (one-cell pits).
       On  plateaus (flat areas that spill out) r.terraflow routes flow so that globally the flow
       goes towards the spill cells of the plateaus.  On sinks (flat areas that do not spill out,
       including  one-cell  pits)  r.terraflow assigns flow by flooding the terrain until all the
       sinks are filled and assigning flow directions on the filled terrain.

       In order to flood the terrain, r.terraflow identifies all sinks and partitions the terrain
       into  sink-watersheds  (a sink-watershed contains all the cells that flow into that sink),
       builds a graph representing the adjacency information of  the  sink-watersheds,  and  uses
       this  sink-watershed  graph  to merge watersheds into each other along their lowest common
       boundary until all watersheds have a flow path outside the terrain.  Flooding  produces  a
       sink-less  terrain  in  which  every  cell  has  a downslope flow path leading outside the
       terrain and therefore every cell in the terrain can be assigned SFD/MFD flow directions as
       above.

       Once flow directions are computed for every cell in the terrain, r.terraflow computes flow
       accumulation by routing water using the flow directions and  keeping  track  of  how  much
       water flows through each cell.

       If  flow  accumulation  of a cell is larger than the value given by the d8cut option, then
       the flow of this cell is routed to its neighbors using the SFD  (D8)  model.  This  option
       affects only the flow accumulation raster and is meaningful only for MFD flow (i.e. if the
       -s flag is not used); If this option is used for SFD flow it is ignored. The default value
       of d8cut is infinity.

       r.terraflow  also  computes  the tci raster (topographic convergence index, defined as the
       logarithm of the ratio of flow accumulation and local slope).

       For more details on the algorithms see [1,2,3] below.

NOTES

       One of the techniques used by r.terraflow is the space-time trade-off. In  particular,  in
       order  to  avoid searches, which are I/O-expensive, r.terraflow computes and works with an
       augmented elevation raster in which each cell stores  relevant  information  about  its  8
       neighbors,  in  total up to 80B per cell.  As a result r.terraflow works with intermediate
       temporary files that may be up to 80N bytes, where N  is  the  number  of  cells  (rows  x
       columns)  in  the  elevation  raster  (more precisely, 80K bytes, where K is the number of
       valid (not no-data) cells in the input elevation raster).

       All these intermediate temporary files are stored in the path specified by the  STREAM_DIR
       option.  Note:  STREAM_DIR must contain enough free disk space in order to store up to 2 x
       80N bytes.

       The memory option can be used to set the maximum amount of main memory  (RAM)  the  module
       will use during processing. In practice its value should be an underestimate of the amount
       of available (free) main memory on the machine. r.terraflow will use at all times at  most
       this  much  memory,  and  the  virtual  memory system (swap space) will never be used. The
       default value is 300 MB.

       The internal type used by r.terraflow to store elevations can be defined at  compile-time.
       By  default,  r.terraflow is compiled to store elevations internally as floats.  A version
       which  is  compiled  to  store  elevations  internally   as   shorts   is   available   as
       r.terraflow.short. Other versions can be created by the user if needed.

       r.terraflow.short  uses  less  space (up to 60B per cell, up to 60N intermediate file) and
       therefore is more space and time efficient.  r.terraflow is intended for use with floating
       point  raster data (FCELL), and r.terraflow.short with integer raster data (CELL) in which
       the maximum elevation does not exceed the value of a short SHRT_MAX=32767 (this is  not  a
       constraint for any terrain data of the Earth, if elevation is stored in meters).

       Both  r.terraflow  and  r.terraflow.short  work  with input elevation rasters which can be
       either integer, floating point or  double  (CELL,  FCELL,  DCELL).  If  the  input  raster
       contains  a  value  that  exceeds the allowed internal range (short for r.terraflow.short,
       float for r.terraflow), the program exits with a warning message. Otherwise, if all values
       in  the  input  elevation  raster  are in range, they will be converted (truncated) to the
       internal elevation type (short for r.terraflow.short, float for r.terraflow). In this case
       precision may be lost and artificial flat areas may be created.

       For  instance,  if  r.terraflow.short  is  used  with floating point raster data (FCELL or
       DCELL), the values of  the  elevation  will  be  truncated  as  shorts.  This  may  create
       artificial  flat  areas,  and  the  output of r.terraflow.short may be less realistic than
       those of r.terraflow on floating point raster data.  The outputs of r.terraflow.short  and
       r.terraflow are identical for integer raster data (CELL maps).

       The  stats option defines the name of the file that contains the statistics (stats) of the
       run. The default name is stats.out (in the current directory).

EXAMPLES

       Spearfish sample data set:
       g.region rast=elevation.10m -p
       r.terraflow elev=elevation.10m filled=elevation10m.filled \
           dir=elevation10m.mfdir swatershed=elevation10m.watershed \
           accumulation=elevation10m.accu tci=elevation10m.tci

       g.region rast=elevation.10m -p
       r.terraflow elev=elevation.10m filled=elevation10m.filled \
           dir=elevation10m.mfdir swatershed=elevation10m.watershed \
           accumulation=elevation10m.accu tci=elevation10m.tci d8cut=500 memory=800 \
           stats=elevation10mstats.txt

SEE ALSO

        r.flow, r.basins.fill, r.drain, r.topidx, r.topmodel, r.water.outlet, r.watershed

AUTHORS

       Original version of program: The <a
              href="http://www.cs.duke.edu/geo*/terraflow/">TerraFlow   project,    1999,    Duke
              University.
              Lars  Arge,  Jeff  Chase,  Pat  Halpin,  Laura Toma, Dean Urban, Jeff Vitter, Rajiv
              Wickremesinghe.

       Porting for GRASS, 2002:
               Lars Arge, Helena Mitasova, Laura Toma.

       Contact:  Laura Toma

REFERENCES

       1
               The TerraFlow project at Duke University

       2      <A                                                             NAME="arge:drainage"
              HREF="http://www.cs.duke.edu/geo*/terraflow/papers/alenex00_drainage.ps.gz">   I/O-
              efficient algorithms for problems on grid-based terrains.  Lars Arge,  Laura  Toma,
              and   Jeffrey   S.   Vitter.   In  Proc.  Workshop  on  Algorithm  Engineering  and
              Experimentation, 2000. To appear in Journal of Experimental Algorithms.

       3      <A                                                        NAME="terraflow:acmgis01"
              HREF="http://www.cs.duke.edu/geo*/terraflow/papers/acmgis01_terraflow.pdf">    Flow
              computation on massive grids.  Lars Arge, Jeffrey  S.  Chase,  Patrick  N.  Halpin,
              Laura  Toma,  Jeffrey  S. Vitter, Dean Urban and Rajiv Wickremesinghe. In Proc. ACM
              Symposium on Advances in Geographic Information Systems, 2001.

       4      <A                                                  NAME="terraflow:geoinformatica"
              HREF="http://www.cs.duke.edu/geo*/terraflow/papers/journal_terraflow.pdf">     Flow
              computation on massive grid terrains.  Lars Arge,  Jeffrey  S.  Chase,  Patrick  N.
              Halpin,  Laura  Toma,  Jeffrey  S. Vitter, Dean Urban and Rajiv Wickremesinghe.  In
              GeoInformatica,  International  Journal  on  Advances  of  Computer   Science   for
              Geographic Information Systems, 7(4):283-313, December 2003.

       Last changed: $Date: 2011-11-08 03:29:50 -0800 (Tue, 08 Nov 2011) $

       Full index

       © 2003-2013 GRASS Development Team