r.watershed.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. <h2>DESCRIPTION</h2>
  2. <em>r.watershed</em> generates a set of maps indicating: 1) flow
  3. accumulation, drainage direction, the location of streams and
  4. watershed basins, and 2) the LS and S factors of the Revised Universal
  5. Soil Loss Equation (RUSLE).
  6. <!-- Interactive mode not activated in GRASS 7.
  7. <p>
  8. <em>r.watershed</em> can be run either interactively or non-interactively.
  9. The interactive version of
  10. <em>r.watershed</em> can prepare inputs to lumped-parameter hydrologic models.
  11. After a verbose interactive session, <em>r.watershed</em> will query the user
  12. for a number of
  13. map layers. Each map layer's values will be tabulated by watershed basin and sent
  14. to an output file. This output file is organized to ease data entry into a
  15. lumped-parameter hydrologic model program. The non-interactive version of
  16. <em>r.watershed</em> cannot create this file.
  17. -->
  18. <h2>NOTES</h2>
  19. Without flag <b>-m</b> set, the entire analysis is run in memory
  20. maintained by the operating system. This can be limiting, but is very
  21. fast. Setting this flag causes the program to manage memory on disk
  22. which allows very large maps to be processed but is slower.
  23. <p>
  24. Flag <b>-s</b> force the module to use single flow direction (SFD, D8)
  25. instead of multiple flow direction (MFD). MFD is enabled by default.
  26. <p>
  27. By <b>-4</b> flag the user allow only horizontal and vertical flow of
  28. water. Stream and slope lengths are approximately the same as outputs
  29. from default surface flow (allows horizontal, vertical, and diagonal
  30. flow of water). This flag will also make the drainage basins look
  31. more homogeneous.
  32. <p>
  33. When <b>-a</b> flag is specified the module will use positive flow
  34. accumulation even for likely underestimates. When this flag is not
  35. set, cells with a flow accumulation value that is likely to be an
  36. underestimate are converted to the negative. See below for a detailed
  37. description of flow accumulation output.
  38. <p>
  39. Option <b>convergence</b> specifies convergence factor for MFD. Lower
  40. values result in higher divergence, flow is more widely
  41. distributed. Higher values result in higher convergence, flow is less
  42. widely distributed, becoming more similar to SFD.
  43. <p>
  44. Option <b>elevation</b> specifies the elevation data on which entire
  45. analysis is based. NULL (nodata) cells are ignored, zero and negative
  46. values are valid elevation data. Gaps in the elevation map that are
  47. located within the area of interest must be filled beforehand,
  48. e.g. with <em><a href="r.fillnulls.html">r.fillnulls</a></em>, to
  49. avoid distortions. The elevation map need not be sink-filled because
  50. the module uses a least-cost algorithm.
  51. <p>
  52. Map of actual depressions or sinkholes in the landscape that are large
  53. enough to slow and store surface runoff from a storm event. All cells
  54. that are not NULL and not zero indicate depressions. Water will flow
  55. into but not out of depressions.
  56. <p>
  57. Raster <b>flow</b> map specifies amount of overland flow per cell.
  58. This map indicates the amount of overland flow units that each cell
  59. will contribute to the watershed basin model. Overland flow units
  60. represent the amount of overland flow each cell contributes to surface
  61. flow. If omitted, a value of one (1) is assumed.
  62. <p>
  63. Input Raster map or value containing the percent of disturbed land
  64. (i.e., croplands, and construction sites) where the raster or input
  65. value of 17 equals 17%. If no map or value is
  66. given, <em>r.watershed</em> assumes no disturbed land. This input is
  67. used for the RUSLE calculations.
  68. <p>
  69. Option <b>blocking</b> specifies terrain that will block overland
  70. surface flow. errain that will block overland surface flow and
  71. restart the slope length for the RUSLE. All cells that are not NULL
  72. and not zero indicate blocking terrain.
  73. <p>
  74. Option <b>threshold</b> specifies the minimum size of an exterior
  75. watershed basin in cells, if no flow map is input, or overland flow
  76. units when a flow map is given. Warning: low threshold values will
  77. dramactically increase run time and generate difficult to read basin
  78. and half_basin results. This parameter also controls the level of
  79. detail in the <b>stream</b> segments map.
  80. <p>
  81. Value given by <b>max_slope_length</b> option indicates the maximum
  82. length of overland surface flow in meters. If overland flow travels
  83. greater than the maximum length, the program assumes the maximum
  84. length (it assumes that landscape characteristics not discernible in
  85. the digital elevation model exist that maximize the slope length).
  86. This input is used for the RUSLE calculations and is a sensitive
  87. parameter.
  88. <p>
  89. Output <b>accumulation</b> map contains the absolute value of each
  90. cell in this output map is the amount of overland flow that traverses
  91. the cell. This value will be the number of upland cells plus one if no
  92. overland flow map is given. If the overland flow map is given, the
  93. value will be in overland flow units. Negative numbers indicate that
  94. those cells possibly have surface runoff from outside of the current
  95. geographic region. Thus, any cells with negative values cannot have
  96. their surface runoff and sedimentation yields calculated accurately.
  97. <p>
  98. Output <b>tci</b> raster map contains topographic index TCI is
  99. computed as
  100. <tt>ln(&alpha; / tan(&beta;))</tt> where &alpha; is the cumulative
  101. upslope area draining through a point per unit contour length and
  102. <tt>tan(&beta;)</tt> is the local slope angle. The TCI reflects the
  103. tendency of water to accumulate at any point in the catchment and the
  104. tendency for gravitaional forces to move that water downslope (Quinn
  105. et al. 1991). This value will be negative if <tt>&alpha; /
  106. tan(&beta;) &lt; 1</tt>.
  107. <p>
  108. Output <b>drainage</b> raster map contains drainage direction.
  109. Provides the &quot;aspect&quot; for each cell measured CCW from East.
  110. Multiplying positive values by 45 will give the direction in degrees
  111. that the surface runoff will travel from that cell. The value 0
  112. (zero) indicates that the cell is a depression area (defined by the
  113. depression input map). Negative values indicate that surface runoff
  114. is leaving the boundaries of the current geographic region. The
  115. absolute value of these negative cells indicates the direction of
  116. flow.
  117. <p>
  118. The output <b>basin</b> map contains unique label for each watershed
  119. basin. Each basin will be given a unique positive even integer. Areas
  120. along edges may not be large enough to create an exterior watershed
  121. basin. 0 values indicate that the cell is not part of a complete
  122. watershed basin in the current geographic region.
  123. <p>
  124. The output <b>stream</b> contains stream segments. Values correspond
  125. to the watershed basin values. Can be vectorized after thinning
  126. (<em><a href="r.thin.html">r.thin</a></em>) with
  127. <em><a href="r.to.vect.html">r.to.vect</a></em>.
  128. <p>
  129. The output <b>half_basin</b> raster map stores each half-basin is
  130. given a unique value. Watershed basins are divided into left and right
  131. sides. The right-hand side cell of the watershed basin (looking
  132. upstream) are given even values corresponding to the values in basin.
  133. The left-hand side cells of the watershed basin are given odd values
  134. which are one less than the value of the watershed basin.
  135. <p>
  136. The output <b>length_slope</b> raster map stores slope length and
  137. steepness (LS) factor for the Revised Universal Soil Loss Equation
  138. (RUSLE). Equations taken from <em>Revised Universal Soil Loss
  139. Equation for Western Rangelands</em> (Weltz et al. 1987). Since the LS
  140. factor is a small number (usually less than one), the GRASS output map
  141. is of type DCELL.
  142. <p>
  143. The output <b>slope_steepness</b> raster map stores slope steepness
  144. (S) factor for the Universal Soil Loss Equation (RUSLE). Equations
  145. taken from article entitled
  146. <em>Revised Slope Steepness Factor for the Universal Soil
  147. Loss Equation</em> (McCool et al. 1987). Since the S factor is a small
  148. number (usually less than one), the GRASS output map is of type DCELL.
  149. <h3>A<sup>T</sup> least-cost search algorithm</h3>
  150. <em>r.watershed</em> uses an A<sup>T</sup> least-cost search algorithm
  151. (see REFERENCES section) designed to minimize the impact of DEM data
  152. errors. Compared
  153. to <em><a href="r.terraflow.html">r.terraflow</a></em>, this algorithm
  154. provides more accurate results in areas of low slope as well as DEMs
  155. constructed with techniques that mistake canopy tops as the ground
  156. elevation. Kinner et al. (2005), for example, used SRTM and IFSAR DEMs
  157. to compare <em>r.watershed</em>
  158. against <em><a href="r.terraflow.html">r.terraflow</a></em> results in
  159. Panama. <em><a href="r.terraflow.html">r.terraflow</a></em> was unable
  160. to replicate stream locations in the larger valleys
  161. while <em>r.watershed</em> performed much better. Thus, if forest
  162. canopy exists in valleys, SRTM, IFSAR, and similar data products will
  163. cause major errors in <em>r.terraflow</em> stream output. Under
  164. similar conditions, <em>r.watershed</em> will generate
  165. better <b>stream</b> and <b>half_basin</b> results. If watershed
  166. divides contain flat to low slope, <em>r.watershed</em> will generate
  167. better basin results
  168. than <em><a href="r.terraflow.html">r.terraflow</a></em>. (<em><a href="r.terraflow.html">r.terraflow</a></em>
  169. uses the same type of algorithm as ESRI's ArcGIS watershed software
  170. which fails under these conditions.) Also, if watershed divides
  171. contain forest canopy mixed with uncanopied areas using SRTM, IFSAR,
  172. and similar data products, <em>r.watershed</em> will generate better
  173. basin results
  174. than <em><a href="r.terraflow.html">r.terraflow</a></em>. The
  175. algorithm produces results similar to those obtained when running
  176. <em><a href="r.cost.html">r.cost</a></em> and
  177. <em><a href="r.drain.html">r.drain</a></em> on every cell on the raster map.
  178. <h3>Multiple flow direction (MFD)</h3>
  179. <em>r.watershed</em> offers two methods to calculate surface flow:
  180. single flow direction (SFD, D8) and multiple flow direction
  181. (MFD). With MFD, water flow is distributed to all neighbouring cells
  182. with lower elevation, using slope towards neighbouring cells as a
  183. weighing factor for proportional distribution. The A<sup>T</sup>
  184. least-cost path is always included. As a result, depressions and
  185. obstacles are traversed with a gracefull flow convergence before the
  186. overflow. The convergence factor causes flow accumulation to converge
  187. more strongly with higher values. The supported range is 1 to 10,
  188. recommended is a convergence factor of 5 (Holmgren, 1994). If many
  189. small sliver basins are created with MFD, setting the convergence
  190. factor to a higher value can reduce the amount of small sliver basins.
  191. <h3>In-memory mode and disk swap mode</h3>
  192. There are two versions of this program: <em>ram</em> and <em>seg</em>.
  193. <em>ram</em> is used by default, <em>seg</em> can be used by setting
  194. the <b>-m</b> flag.
  195. <p>
  196. The <em>ram</em> version requires a maximum of 31 MB of RAM for 1
  197. million cells. Together with the amount of system memory (RAM)
  198. available, this value can be used to estimate whether the current
  199. region can be processed with the <em>ram</em> version.
  200. <p>
  201. The <em>ram</em> version uses virtual memory managed by the operating
  202. system to store all the data structures and is faster than
  203. the <em>seg</em> version; <em>seg</em> uses the GRASS segmentation
  204. library which manages data in disk files. <em>seg</em> uses only as
  205. much system memory (RAM) as specified with the <b>memory</b> option,
  206. allowing other processes to operate on the same system, even when the
  207. current geographic region is huge.
  208. <p>
  209. Due to memory requirements of both programs, it is quite easy to run
  210. out of memory when working with huge map regions. If the <em>ram</em>
  211. version runs out of memory and the resolution size of the current
  212. geographic region cannot be increased, either more memory needs to be
  213. added to the computer, or the swap space size needs to be
  214. increased. If <em>seg</em> runs out of memory, additional disk space
  215. needs to be freed up for the program to run.
  216. The <em><a href="r.terraflow.html">r.terraflow</a></em> module was
  217. specifically designed with huge regions in mind and may be useful here
  218. as an alternative, although disk space requirements
  219. of <em><a href="r.terraflow.html">r.terraflow</a></em> are several times higher than of <em>seg</em>.
  220. <h3>Large regions with many cells</h3>
  221. The upper limit of the <em>ram</em> version is 2 billion
  222. (2<sup>31</sup> - 1) cells, whereas the upper limit for
  223. the <em>seg</em> version is 9 billion billion (2<sup>63</sup> - 1)
  224. cells.<br> In some situations, the region size (number of cells) may
  225. be too large for the amount of time or memory
  226. available. Running <em>r.watershed</em> may then require use of a
  227. coarser resolution. To make the results more closely resemble the
  228. finer terrain data, create a map layer containing the lowest elevation
  229. values at the coarser resolution. This is done by: 1) Setting the
  230. current geographic region equal to the elevation map layer
  231. with <em><a href="g.region.html">g.region</a></em>, and 2) Use
  232. the <em><a href="r.neighbors.html">r.neighbors</a></em> or
  233. <em><a href="r.resamp.stats.html">r.resamp.stats</a></em> command to
  234. find the lowest value for an area equal in size to the desired
  235. resolution. For example, if the resolution of the elevation data is 30
  236. meters and the resolution of the geographic region
  237. for <em>r.watershed</em> will be 90 meters: use the minimum function
  238. for a 3 by 3 neighborhood. After changing to the resolution at
  239. which <em>r.watershed</em> will be run, <em>r.watershed</em> should be
  240. run using the values from the <b>neighborhood</b> output map layer
  241. that represents the minimum elevation within the region of the coarser
  242. cell.
  243. <h3>Basin threshold</h3>
  244. The minimum size of drainage basins, defined by the <b>threshold</b>
  245. parameter, is only relevant for those watersheds with a single stream
  246. having at least the <b>threshold</b> of cells flowing into it.
  247. (These watersheds are called exterior basins.) Interior drainage
  248. basins contain stream segments below multiple tributaries. Interior
  249. drainage basins can be of any size because the length of an interior
  250. stream segment is determined by the distance between the tributaries
  251. flowing into it.
  252. <h3>MASK and no data</h3>
  253. The <em>r.watershed</em> program does not require the user to have the
  254. current geographic region filled with elevation values. Areas without
  255. elevation data (masked or NULL cells) are ignored. It is NOT necessary
  256. to create a raster map (or raster reclassification)
  257. named <tt>MASK</tt> for NULL cells. Areas without elevation data will
  258. be treated as if they are off the edge of the region. Such areas will
  259. reduce the memory necessary to run the program. Masking out
  260. unimportant areas can significantly reduce processing time if the
  261. watersheds of interest occupy a small percentage of the overall area.
  262. <p>
  263. Gaps (NULL cells) in the elevation map that are located within the
  264. area of interest will heavily influence the analysis: water will flow
  265. into but not out of these gaps. These gaps must be filled beforehand,
  266. e.g. with <em><a href="r.fillnulls.html">r.fillnulls</a></em>.
  267. <p>
  268. Zero (0) and negative values will be treated as elevation data (not
  269. no_data).
  270. <h3>Further processing of output layers</h3>
  271. Problem areas, i.e. those parts of a basin with a likely underestimate
  272. of flow accumulation, can be easily identified with e.g.
  273. <div class="code"><pre>
  274. r.mapcalc "problems = if(flow_acc &lt; 0, basin, null())"
  275. </pre></div>
  276. If the region of interest contains such problem areas, and this is not
  277. desired, the computational region must be expanded until the catchment
  278. area for the region of interest is completely included.
  279. <p>
  280. To isolate an individual river network using the output of this
  281. module, a number of approaches may be considered.
  282. <ol>
  283. <li>Use a resample of the basins catchment raster map as a MASK.<br>
  284. The equivalent vector map method is similar
  285. using <em><a href="v.select.html">v.select</a></em> or
  286. <em><a href="v.overlay.html">v.overlay</a></em>.
  287. <li>Use the <em><a href="r.cost.html">r.cost</a></em> module with a
  288. point in the river as a starting point.
  289. <li>Use the <em><a href="v.net.iso.html">v.net.iso</a></em> module
  290. with a node in the river as a starting point.
  291. </ol>
  292. All individual river networks in the stream segments output can be
  293. identified through their ultimate outlet points. These points are all
  294. cells in the stream segments output with negative drainage direction.
  295. These points can be used as start points
  296. for <em><a href="r.water.outlet.html">r.water.outlet</a></em> or
  297. <em><a href="v.net.iso.html">v.net.iso<a/></em>.
  298. <p>
  299. To create <i>river mile</i> segmentation from a vectorized streams
  300. map, try
  301. the <em><a href="v.net.iso.html">v.net.iso<a/></em> or <em><a href="v.lrs.segment.html">v.lrs.segment</a></em>
  302. modules.
  303. <p>
  304. The stream segments output can be easily vectorized after thinning
  305. with
  306. <em><a href="r.thin.html">r.thin</a></em>. Each stream segment in the
  307. vector map will have the value of the associated basin. To isolate
  308. subbasins and streams for a larger basin, a MASK for the larger basin
  309. can be created with
  310. <em><a href="r.water.outlet.html">r.water.outlet</a></em>. The stream
  311. segments output serves as a guide where to place the outlet point used
  312. as input to <em><a href="r.water.outlet.html">r.water.outlet</a></em>.
  313. The basin threshold must have been sufficiently small to isolate a
  314. stream network and subbasins within the larger basin.
  315. <h2>EXAMPLES</h2>
  316. These examples use the Spearfish sample dataset.
  317. <h3>Convert <em>r.watershed</em> streams map output to a vector map</h3>
  318. If you want a detailed stream network, set the threshold option small
  319. to create lots of catchment basins, as only one stream is presented
  320. per catchment. The <tt>r.to.vect -v</tt> flag preserves the catchment
  321. ID as the vector category number.
  322. <div class="code"><pre>
  323. r.watershed elev=elevation.dem stream=rwater.stream
  324. r.to.vect -v in=rwater.stream out=rwater_stream
  325. </pre></div>
  326. <p>
  327. Set a different color table for the accumulation map:
  328. <div class="code"><pre>
  329. MAP=rwater.accum
  330. r.watershed elev=elevation.dem accum=$MAP
  331. eval `r.univar -g "$MAP"`
  332. stddev_x_2=`echo $stddev | awk '{print $1 * 2}'`
  333. stddev_div_2=`echo $stddev | awk '{print $1 / 2}'`
  334. r.colors $MAP col=rules &lt;&lt; EOF
  335. 0% red
  336. -$stddev_x_2 red
  337. -$stddev yellow
  338. -$stddev_div_2 cyan
  339. -$mean_of_abs blue
  340. 0 white
  341. $mean_of_abs blue
  342. $stddev_div_2 cyan
  343. $stddev yellow
  344. $stddev_x_2 red
  345. 100% red
  346. EOF
  347. </pre></div>
  348. <p>
  349. Create a more detailed stream map using the accumulation map and
  350. convert it to a vector output map. The accumulation cut-off, and
  351. therefore fractal dimension, is arbitrary; in this example we use the
  352. map's mean number of upstream catchment cells (calculated in the above
  353. example by <em><a href="r.univar.html">r.univar</a></em>) as the
  354. cut-off value. This only works with SFD, not with MFD.
  355. <div class="code"><pre>
  356. r.watershed elev=elevation.dem accum=rwater.accum
  357. r.mapcalc 'MASK = if(!isnull(elevation.dem))'
  358. r.mapcalc "rwater.course = \
  359. if( abs(rwater.accum) > $mean_of_abs, \
  360. abs(rwater.accum), \
  361. null() )"
  362. r.colors -g rwater.course col=bcyr
  363. g.remove -f type=rast name=MASK
  364. # <i>Thinning is required before converting raster lines to vector</i>
  365. r.thin in=rwater.course out=rwater.course.Thin
  366. r.colors -gn rwater.course.Thin color=grey
  367. r.to.vect in=rwater.course.Thin out=rwater_course type=line
  368. v.db.dropcolumn map=rwater_course column=label
  369. </pre></div>
  370. <!-- can't set line attribute to catchment it is in as v.what.rast and
  371. v.distance only work for point features. Could create endpoint node
  372. points map and upload to that ?? -->
  373. <!-- Note value column containing accumulation cells in output vector
  374. may not necessarily reference the downstream end of the line! drop it? -->
  375. <h3>Create watershed basins map and convert to a vector polygon map</h3>
  376. <div class="code"><pre>
  377. r.watershed elev=elevation.dem basin=rwater.basin thresh=15000
  378. r.to.vect -s in=rwater.basin out=rwater_basins type=area
  379. v.db.dropcolumn map=rwater_basins column=label
  380. v.db.renamecolumn map=rwater_basins column=value,catchment
  381. </pre></div>
  382. <p>
  383. Display output in a nice way
  384. <div class="code"><pre>
  385. r.relief map=elevation.dem
  386. d.shade shade=elevation.dem.shade color=rwater.basin bright=40
  387. d.vect rwater_course color=orange
  388. </pre></div>
  389. <h2>REFERENCES</h2>
  390. <ul>
  391. <li>Ehlschlaeger C. (1989). <i>Using the A<sup>T</sup> Search Algorithm
  392. to Develop Hydrologic Models from Digital Elevation Data</i>,
  393. <b>Proceedings of International Geographic Information Systems (IGIS)
  394. Symposium '89</b>, pp 275-281 (Baltimore, MD, 18-19 March 1989).<br>
  395. URL: <a href="http://chuck.ehlschlaeger.info/older/IGIS/paper.html">
  396. http://chuck.ehlschlaeger.info/older/IGIS/paper.html</a>
  397. <li>Holmgren P. (1994). <i>Multiple flow direction algorithms for runoff
  398. modelling in grid based elevation models: An empirical evaluation.</i>
  399. <b>Hydrological Processes</b> Vol 8(4), 327-334.<br>
  400. DOI: <a href="http://dx.doi.org/10.1002/hyp.3360080405">10.1002/hyp.3360080405</a>
  401. <li>Kinner D., Mitasova H., Harmon R., Toma L., Stallard R. (2005).
  402. <i>GIS-based Stream Network Analysis for The Chagres River Basin,
  403. Republic of Panama</i>. <b>The Rio Chagres: A Multidisciplinary Profile of
  404. a Tropical Watershed</b>, R. Harmon (Ed.), Springer/Kluwer, p.83-95.<br>
  405. URL: <a href="http://www4.ncsu.edu/~hmitaso/measwork/panama/panama.html">
  406. http://www4.ncsu.edu/~hmitaso/measwork/panama/panama.html</a>
  407. <li>McCool et al. (1987). <i>Revised Slope Steepness Factor for the Universal
  408. Soil Loss Equation</i>, <b>Transactions of the ASAE</b> Vol 30(5).
  409. <li>Metz M., Mitasova H., Harmon R. (2011). <i>Efficient extraction of
  410. drainage networks from massive, radar-based elevation models with least
  411. cost path search</i>, <b>Hydrol. Earth Syst. Sci.</b> Vol 15, 667-678.<br>
  412. DOI: <a href="http://dx.doi.org/10.5194/hess-15-667-2011">10.5194/hess-15-667-2011</a>
  413. <li>Quinn P., K. Beven K., Chevallier P., Planchon O. (1991). <i>The
  414. prediction of hillslope flow paths for distributed hydrological modelling
  415. using Digital Elevation Models</i>, <b>Hydrological Processes</b> Vol 5(1),
  416. p.59-79.<br>
  417. DOI: <a href="http://dx.doi.org/10.1002/hyp.3360050106">10.1002/hyp.3360050106</a>
  418. <li>Weltz M. A., Renard K.G., Simanton J. R. (1987). <i>Revised Universal Soil
  419. Loss Equation for Western Rangelands</i>, <b>U.S.A./Mexico Symposium of
  420. Strategies for Classification and Management of Native Vegetation for
  421. Food Production In Arid Zones</b> (Tucson, AZ, 12-16 Oct. 1987).
  422. </li>
  423. </ul>
  424. <h2>SEE ALSO</h2>
  425. <em>
  426. <a href="g.region.html">g.region</a>,
  427. <a href="r.cost.html">r.cost</a>,
  428. <a href="r.drain.html">r.drain</a>,
  429. <a href="r.fillnulls.html">r.fillnulls</a>,
  430. <a href="r.flow.html">r.flow</a>,
  431. <!-- <a href="r.flowmd.html">r.flowmd</a>, -->
  432. <a href="r.mask.html">r.mask</a>,
  433. <a href="r.neighbors.html">r.neighbors</a>,
  434. <a href="r.param.scale.html">r.param.scale</a>,
  435. <a href="r.resamp.interp.html">r.resamp.interp</a>,
  436. <a href="r.terraflow.html">r.terraflow</a>,
  437. <a href="r.topidx.html">r.topidx</a>,
  438. <a href="r.water.outlet.html">r.water.outlet</a>,
  439. <a href="r.stream.extract.html">r.stream.extract</a>
  440. </em>
  441. <h2>AUTHORS</h2>
  442. Original version:
  443. Charles Ehlschlaeger, U.S. Army Construction Engineering Research Laboratory
  444. <br>
  445. Faster sorting algorithm and MFD support:
  446. Markus Metz &lt;markus.metz.giswork at gmail.com&gt;
  447. <p>
  448. <i>Last changed: $Date$</i>