r.flowmd(1)		      Grass User's Manual		   r.flowmd(1)



NNAAMMEE
       _r_._f_l_o_w_m_d   - construction of slope lines (flowlines),  flowpath lengths
       and flowline  densities from  a raster digital elevation model using  a
       modified multiple directions  algorithm.


       _(_G_R_A_S_S _R_a_s_t_e_r_/_V_e_c_t_o_r _P_r_o_g_r_a_m_)

SSYYNNOOPPSSIISS
       rr..fflloowwmmdd

       rr..fflloowwmmdd hheellpp

       rr..fflloowwmmdd  [--dd ] eelleevviinn==nnaammee  aassppiinn==nnaammee
	[bbaarrrriieerriinn==nnaammee ] [sskkiipp==vvaall ] [fflloouutt==nnaammee  [llggoouutt==nnaammee ] [ddssoouutt==nnaammee ]



DDEESSCCRRIIPPTTIIOONN
       _r_._f_l_o_w_m_d



	generates flowlines using a combined raster-vector approach from input
       elevation  _e_l_e_v_i_n  ,  aspect  _a_s_p_i_n   and  optionally barrier _b_a_r_r_i_e_r_i_n
       raster maps.

	Input elevation raster map with integer values should have  values  in
       centimeters  preventing	premature flowline stop in flat areas.	Aspect
       used for input must follow the same rules as aspect computed  in  other
       GRASS  programs	(see r.slope.aspect, s.surf.rst). Barriers are defined
       by non-zero values in an input raster map _b_a_r_i_e_r_i_n . Make sure that the
       resolution  of your current region is set to the resolution of the ele-
       vation raster file.

	There are three possible output maps which can be produced in any com-
       bination  simultaneously:  a  vector file _f_l_o_u_t	of flowlines, a raster
       map _l_g_o_u_t  of flowpath lengths, and a raster map _d_s_o_u_t of flowline den-
       sities.	Flowlines  are constructed by straight line segments (vectors)
       with endpoints creating intersections of the flowline with edges of the
       imaginary  mesh	connecting  centers  of the grid cells.  Flowlines are
       generated from each  cell uphill by  default;  they  can  be  generated
       downhill  using	the  flag  --dd  .  A flowline stops if its next segment
       would reverse the direction of flow (from up to	down  or  vice-versa),
       cross  a  barrier,  or  arrive  at  a  cell with undefined elevation or
       aspect.	Another option, sskkiipp =_v_a_l , indicates that only the  flowlines
       from  every _v_a_l th cell are to be included in _f_l_o_u_t .  The default sskkiipp
       is 1. A high sskkiipp  usually speeds up processing time and often improves
       the readability of a visualization of _f_l_o_u_t .




       Flowpath  length output _f_l_o_u_t  gives the horizontal length of the flow-
       line for given grid cell in units defined by your mapset.  It  is  com-
       puted  as  the  sum  of the planar length of all straight flowline seg-
       ments.


       Flowline density output _d_s_o_u_t  represents the number of generated flow-
       lines passing through the given cell. This program uses a modified mul-
       tiple directions algorithm. Flowline density for each flowline  passing
       between 2 grid cell centers is	fractioned between these grid cells by
       distance. This algorithm smoothes  flowline densities on  convex  (dis-
       persing)  slopes.  Flowline  lengths  and densities can be computed for
       both uphill and downhill directionss.



OOPPTTIIOONNSS
       The user can run this  program  either  interactively  or  non-interac-
       tively. The program will be run non-interactively if the user specifies
       program arguments and flag settings on the command line using the form:


       rr..fflloowwmmdd   [--dd  ] eelleevviinn==nnaammee  aassppiinn==nnaammee  [bbaarrrriieerriinn==nnaammee]] [[sskkiipp==vvaall ]
       [fflloouutt==nnaammee ] [llggoouutt==nnaammee ] [ddssoouutt==nnaammee ]




       Alternately, the user can simply type rr..fflloowwmmdd	on  the  command  line
       without program arguments.  In this case, the user will be prompted for
       parameter values and flag settings  using  the  standard  GRASS	parser
       interface.




       FFllaagg::

       [--dd ]
	   Generate flowlines downhill (default generates flowlines uphill)





       PPaarraammeetteerrss::

       eelleevviinn==_n_a_m_e
	   Use the existing raster file with elevations_n_a_m_e  as input.

       aassppiinn==_n_a_m_e
	   Use the existing raster file with aspect_n_a_m_e  as input.

       bbaarrrriieerriinn==_n_a_m_e
	    "  4m Use the existing raster file with non-zero values represent-
	   ing barriers with _n_a_m_e  as input.

       sskkiipp==_v_a_l
	   Set the the number of cells skipped for origins of flowlines to _v_a_l
	   .

       fflloouutt==_n_a_m_e
	   Output coordinates of flowlines to vector file named  _n_a_m_e .

       llggoouutt==_n_a_m_e
	   Output flowpath length values to raster file named  _n_a_m_e .

       ddssoouutt==_n_a_m_e
	   Output flowline density values to raster file named	_n_a_m_e .




AAllggoorriitthhmm bbaacckkggrroouunndd
       1.  Construction  of  flow-lines (slope-lines): r.flow uses an original
       vector-grid algorithm which  uses  an  infinite	number	of  directions
       between	0.0000... and 360.0000...  and traces the flow as a line (vec-
       tor) in the direction of gradient (rather than from cell to cell in one
       of  the	8  directions  = D-infinity algorithm). They are traced in any
       direction using aspect (so there  is  no  limitation  to  8  directions
       here). The D8 algorithm produces zig-zag lines. The value in the outlet
       is very similar for both r.flowmd and r.flow algorithms (because it  is
       essentially  the  watershed  area), however the spatial distribution of
       flow, especially on hillslopes is quite different. It  is  still  a  1D
       flow  routing  so  the  dispersal flow is not accurately described, but
       still better than D8.

       2. Computation of contributing areas: r.flowmd divides this  flow  pro-
       portionally  to two downslope adjacent cells using the distance between
       the intersection node (flowline node) and these adjacent cell  centres.
       (All  these three points are always on one connection line).  Therefore
       r.flowmd uses a multiple flow algorithm but using a flux  decomposition
       different from Desmet & Govers (1996). D. & G. split the flux vector to
       two ordinal components (cells) using sin, cos of the aspect value.  The
       flux is then divided to 2 from 4 neighboring cardinal cells.  The algo-
       rithm used in r.flowmd divides the flux to two adjacent downslope cells
       (always	one  cardinal  and  one  diagonal  cell)  using a procedure as
       described above.

NNOOTTEESS
       Flowlines generated uphill are used for	computation  of  the  flowpath
       length  (slope  lenghts)  defining  the	distance between the grid cell
       and upland area.  This can be used, for example, in water erosion  mod-
       eling  for the computation of LS factor in standard form of USLE. Flow-
       lines can be also generated downhill from each grid point  to  simulate
       the  topographic  potential for quasi steady-state overland water flow.
       Downslope flowline density multiplied by grid cell area gives the  ups-
       lope  contributing   area.  This topographic parameter  defines an area
       from which water  inflows to the given cell. This area is  an  estimate
       of potential steady-state water flux and can be used in the modeling of
       water erosion and for computation of unit stream power based LS factor.
       The  program  has  been designed for modeling erosion on hillslopes and
       has a very strict condition for ending the flowline.  It  is  therefore
       not  very  suitable for the extraction of stream network or delineation
       of watersheds unless a DEM without pits or flat areas is available.



	To label the vector flowlines automatically, the user can  use	v.lla-
       bel.

FFUURRTTHHEERR NNOOTTEESS
       Differences between _r_._f_l_o_w and _r_._f_l_o_w_m_d



	       r.flow  has  an	option	to compute slope and aspect internally
	      thus making the program capable to process much larger data sets
	      than  r.flowmd. It has also 2 additional options for handling of
	      large data sets but it is not known that they work properly.

	       the programs handle the special cases when the flowline	passes
	      exactly (or very close) through the grid vertices differently.

	       r.flowmd  has  the  simplified  multiple  flow  addition so the
	      results are smoother.

       In conclusion, _r_._f_l_o_w_m_d produces nicer results but is slower and it  do
       support as large data sets as _r_._f_l_o_w.

SSEEEE AALLSSOO
       _r_._f_l_o_w_,

       _r_._w_a_t_e_r_s_h_e_d_,

       _r_._d_r_a_i_n_,

       _r_._s_l_o_p_e_._a_s_p_e_c_t_,

       _s_._s_u_r_f_._r_s_t _v_._l_l_a_b_e_l






AAUUTTHHOORR
       Jaroslav Hofierka, GeoModel s.r.o., Bratislava, Slovakia



RREEFFEERREENNCCEESS
       Mitasova,  H., L. Mitas, 1993, Interpolation by regularized spline with
       tension : I. Theory and implementation.	Mathematical  Geology  25,  p.
       641-655.  (online)

       GMSL/University of Illinois at Urbana-Champaign

       Mitasova,  H.,  J.  Hofierka, 1993, Interpolation by regularized spline
       with tension : II.  Application to terrain modeling and surface	geome-
       try analysis. Mathematical Geology 25, p. 657-669. (online)

	Mitasova,  H., Hofierka, J., Zlocha, M., Iverson, R. L. (1996). Model-
       ling Topographic Potential for Erosion and Deposition Using GIS. Inter-
       national  Journal  of  Geographical  Information  Systems, 10, 629-641.
       (online)

       Mitasova, H.(1993): Surfaces and modeling. Grassclippings  (winter  and
       spring) p.18-19.

       Mitasova,  H.,  J.  Hofierka,  M.  Zlocha, L.R. Iverson, 1996, Modeling
       topographic potential for erosion and deposition using GIS. Int.  Jour-
       nal  of	Geographical  Information Science, 10(5), 629-641. (reply to a
       comment to this paper appears in 1997 in Int. Journal  of  Geographical
       Information Science, Vol. 11, No. 6)

       _L_a_s_t _c_h_a_n_g_e_d_: _$_D_a_t_e_: _2_0_0_3_/_0_2_/_0_5 _1_2_:_4_6_:_0_3 _$



GRASS 5.0							   r.flowmd(1)
