DESCRIPTION

Module r.stream.distance may calculate distance using two methods: downstream and upstream.

The default is downstream method when it calculates 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 be used to calculate distance and elevation parameters.

With upstream method it calculates 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 a particle of water must run from divide to reach particular cell, while farthest mode means the possible longest path.

OPTIONS

-o
Outlets. Downstream method only. Calculate distance and relative elevation to basin outlets instead of streams. It chooses only last outlets in the network ignoring nodes.
-s
Subbasins. Downstream method only. Calculate distance and elevation to stream nodes instead of streams. It creates distance and elevation parameters not for whole basins but for all elementary subbasins.
-n
Near. For upstream method only. Calculate distance and elevation to the nearest local maximum/divide. With the default option distance/elevation is calculated to the farthest possible maximum/divide.
stream_rast
Stream network: name of input stream map on which ordering will be performed, produced by r.watershed or r.stream.extract. Because streams network produced by r.watershed and r.stream.extract may slighty differ in detail it is required to use both stream and direction map produced by the same module. Non-stream cell values must be set to NULL.
direction
Flow direction: name of input direction map produced by r.watershed or r.stream.extract. If r.stream.extract output map is used, it only has non-NULL values in places where streams occur. NULL (nodata) cells are ignored, zero and negative values are valid direction data if they vary from -8 to 8 (CCW from East in steps of 45 degrees). Direction map shall be of integer type (CELL). Region resolution and map resoultion must be the same. Also stream_rast network map must have the same resolution. It is checked by default. If resolutions differ, the module informs about it and stops. Region boundary and maps boundary may differ but it may lead to unexpected results.
elevation
Elevation: name of input elevation map. Map can be of type CELL, FCELL or DCELL. It is not restricted to resolution of region settings as stream and direction.
method
It is possible to calculate distance with two method: downstream from any raster cell to the nearest stream cell/ junction cell or outlet or upstream from any cell upstream to the nearest maximum or divide.

OUTPUTS

difference
Returns elevation difference to the targer (outlet, node, stream, divide, maximum) along watercoures. The map is of FCELL type.
distance
Returns distance to the targer (outlet, node, stream, divide, maximum) along watercoures. The map is of FCELL type.

NOTES

If there are more than one point or one stream network 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 omited. 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 r.mapcalc formula:

r.mapcalc "dist_corrected = sqrt(distance^2 + elevation^2)"
The module can work only if direction map, streams map and region have the same settings. It is also required that streams map and direction map come from the same source. For lots of reason this limitation probably cannot be omitted. This means that if stream_rast 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.distance is the ability to calculate distance not only for streams generated with r.stream.extract, but also to any CELL map with resolution corresponding to direction map. It can be a lake, swamp, depression and lake boundaries even divided into smaller fragments each with its own category.

EXAMPLE

g.region -p -a rast=elevation
r.watershed elevation=elevation threshold=10000 drainage=direction stream=streams
r.stream.distance stream_rast=streams direction=direction elevation=elevation \
  method=downstream distance=distance_stream_downstream difference=difference_stream_downstream
r.stream.distance stream_rast=streams direction=direction elevation=elevation \
  method=upstream distance=distance_stream_upstream difference=difference_stream_upstream

SEE ALSO

r.watershed, r.stream.extract, r.stream.order, r.stream.basins, r.mapcalc, r.reclass

AUTHOR

Jarek Jasiewicz, Adam Mickiewicz University, Geoecology and Geoinformation Institute.

Last changed: $Date$