The D8 and D-Infinity Algorithms

Streamlines or "flowlines" are the set of lines that define the direction of flow at each point on a topographic surface. These lines begin on drainage divides and trace the path that water will take as it flows downhill under the influence of gravity. They always cross contour lines at right angles, and can be viewed as the set of curves that are everywhere perpendicular to the set of contour lines. On a hillslope streamlines may first diverge (spread out) before converging into channels at the bottom of the hill.

The well-known D8 algorithm is the most commonly used method for approximating flow directions on a topographic surface, and this method tracks "flow" from each pixel to one of its eight neighbor pixels. The RiverTools implementation of the D8 algorithm is efficient and powerful, and can assign reasonable flow directions even in very complex and ambiguous situations without user intervention. The D8 method is well-suited to the identification of individual channels, channel networks and basin boundaries. However, it is based on two simplifying assumptions that do not capture the geometry of divergent flow over hillslopes. These simplifications are:

(1) the use of eight discrete flow angles, and
(2) each pixel has a single flow direction (SFD),

that is, all flow leaving any given pixel (or the area contributing flow to the pixel) is assumed to flow into a single downstream neighbor pixel. While these simplifications are valid in regions where the flow is convergent, such as the channelized portion of the landscape, they do not work well on divergent hillslopes. This leads to potentially large errors in the calcuation of contributing area (or basin area) for hillslope pixels, even though computed values for channel pixels are correct. Accurate contributing areas for hillslope pixels are needed for process-based models of erosion and landslide potential.

The D-Infinity algorithm was proposed by Tarboton (1997) in an effort to compute contributing area more accurately on divergent hillslopes. While it does not provide a completely rigorous solution to this challenging "flow tube" problem, it is a fairly robust and pragmatic approach and gives visually appealing results. It is a multiple flow direction (MFD) algorithm, that allows

(1) continuous flow angles, and
(2) flow partitioning between one or two neighbor pixels.

However, it does not allow flow to be partioned between more than two neighbors, and thereby minimizes another problem with MFD algorithms that could be called over-disperson. Also, the D-Infinity algorithm can handle all of the ambiguous situations that can occur in real topography (sometimes resorting to the D8 method) while many other MFD methods cannot.

Both of these algorithms are available in RiverTools. The D8 algorithm can be found in the RiverTools menu under Extract > D8-Based Grid and the D-Infinity algorithm is under Extract > D-Infinity Grid. The latter can be used to create a continuous angle flow grid, a slope grid, and a contributing area grid.

In addition to these two methods, Rivix introduced a new method in RiverTools 3.0 that is superior to both of them called the Mass Flux Method. This new method can be viewed as the ultimate solution to the problem of computing total and specific contributing area on both divergent and convergent topographic surfaces.

If you want to learn more about the algorithms that are used for extracting drainage networks and other information from DEMs, there are many good papers on the subject. A list of references can be found in the Recommended Reading section of the RiverTools User's Guide. You should be aware that there are several different approaches to any given problem, and several different ways to try to resolve ambiguous situations and other problems that arise. This area of research is evolving rapidly and promising new approaches and algorithms will continue to be included as options in future versions of RiverTools.

Copyright (c) 1998-2014, Rivix, LLC. All rights reserved.