# We would like to use r.drain to find the flow paths FROM

# a point on a stream up the slope to the watershed divide.

#

# We have tried several unsuccesful methods, inverting the

# elevation, slope and accumulation maps (accumulation map from

# watershed).

How does r.drain fail? Two ways that I can think of:

1) The drain path does not continue to the expected outlet point. This

can be caused by lakes, depressions, or "pits". The drain process

in r.drain follows the greatest downward gradient. If all surrounding

cells are higher the drain process stops. This situation happens

often in the creation of DEMs. A narrow drain point (relative to the

cell resolution) can be completely lost, creating an uphill lake.

Solution: "fill" the lakes. Does someone have an imaginative way to

accomplish this? I have done this with a recursive r.mapcalc script

which "simulates" the drainage of water from a "storm event" over the

DEM. I was surprised to see how many "lakes" existed in the DEM.

The r.mapcalc script is in an as yet unpublished document on r.mapcalc

which is probably available through the GRASS Info Center (1-800-USA-CERL).

2) A drainage does occur, but the path turns into spaghetti here and there.

This is an artifact of the mathematics tracing flows through a cell that

contains two or more drain directions with equivalent slopes.