It's a good question, so let's be rigorous with a solution. Regardless of the algorithm involved, the flow direction is ultimately determined by fitting planes to the surface at each point. (Theoretically, these planes are the derivative of the surface; in practice they are often computed as least-squares fits to the values in the immediate 3X3 neighborhood.) Such a plane has an equation of the form
z = a*x + b*y + c
where (x,y) are horizontal coordinates, z
is the elevation, and constants a
, b
, c
determine the plane. The flow direction is computed solely in terms of a
and b
: these determine the aspect of the plane. In fact, all that really matters are a
and b
relative to their total size sqrt(a^2+b^2). This is because (a,b) is the direction vector of the projection of the surface normal into the plane.
When the units used for z
differ from those for a
and b
, in effect z
has been rescaled. The implied equation becomes
s*z = a*x + b*y + c.
For instance, converting z
from feet to meters uses a value of s = 12/39.37. Equivalently,
z = (a/s)*x + (b/s)*y + c/s.
Although a
and b
have changed, their values relative to their total size have not:
a / sqrt(a^2 + b^2) = (a/s) / sqrt((a/s)^2 + (b/s)^2)
and
b / sqrt(a^2 + b^2) = (b/s) / sqrt((a/s)^2 + (b/s)^2).
Therefore, no change is made to the flow direction. All is fine. You do not have to rescale the values of the DEM.