Module r.stream.distance may calculate distance using two methods: downstream and upstream.
The default is downstream method when it calculate distance to streams and outlets and relative elevation to streams and outlets. The distance and elevation is calculated along watercourses. In outlets mode it can also calculate parameters for subbasins.
In streams mode (default) it calculates that parameters downstream to streams which are added as stream mask. In outlets mode there are some additional possibilities. If subbasin is off it calculate parameters only for last point of last (downstream) CELL. In subbasin mode it calculates parameters for every subbasin separately. Subbasin mode acts similar to subbasin mask. Streams file prepared to create basins and subbasins with r.stream.basins can use to to calculate distance and elevation parameters.
With upstream method it calculate distance to the local maximum or divide. Opposite to downstream method, where every cell has one and only one downstream cell in upstream method every cell has usually more than one upstream cell. So it is impossible to determine interchangeable path from any cell. The upstream method offers two alternative modes switched with -n flag: nearest local maximum/divide: means the shortest path to local maximum and default option farthest maximum/divide means the longest path. In hydrological sense nearest mode means the shortest path which particle of water must run from divide to reach particular cell, while farthest mode means the possible longest path.
If there are more than one point or one stream networks and some separate points or separate streams networks are in catchment area defined by others it will results as in subbasin mode. In stream mode subbasin options is ommited. Input maps must be in CELL format (default output of r.watershed, r.stream.order and r.stream.extract). The distance are calculated in meters both for planimeters and Latitude-Longitude projections. The distance is calculated for flat areas not corrected by topography. Distance correction by topography may be done with following mapcalc formula:
echo 'dist_corrected = sqrt(distance^2 + elevation ^2)'|r.mapcalc
Module can work only if direction map, stream map and region has same settings. It is also required that stream map and direction map come from the same source. For lots of reason this limitation probably cannot be omitted. this means if stream map comes from r.stream.extract also direction map from r.stream.extract must be used. If stream network was generated with MFD method also MFD direction map must be used.
Probably one of the most imortant features of r.stream.extract is the ability to calculate distnace not only for streams generated with r.stream.order, but also to any CELL map with resoultion coresponding to dirs map. It can be a lake, swamp, depression and lake boundaries even divided into smaller fragments each with its own category.
Last changed: $Date$