Skip To Content

How Flow Direction works

Available with Image Server

One of the keys to deriving hydrologic characteristics of a surface is the ability to determine the direction of flow from every cell in the raster. This is done with the Flow Direction tool.

This tool takes a surface as input and outputs a raster showing the direction of flow out of each cell. If the Output drop raster option is chosen, an output raster is created showing a ratio of the maximum change in elevation from each cell along the direction of flow to the path length between centers of cells and is expressed in percentages. If the Force all edge cells to flow outward option is chosen, all cells at the edge of the surface raster will flow outward from the surface raster.

There are eight valid output directions relating to the eight adjacent cells into which flow could travel. This approach is commonly referred to as an eight-direction (D8) flow model and follows an approach presented in Jenson and Domingue (1988).

The coding of the direction of flow
The coding of the direction of flow is shown.

Calculate the direction of flow using the D8 method

In the D8 method, the direction of flow is determined by the direction of steepest descent, or maximum drop, from each cell (Jenson and Domingue, 1988). This is calculated as follows:

maximum_drop = change_in_z-value/distance

The distance is calculated between cell centers. For example, if the cell size is 1, the distance between two orthogonal cells is 1, and the distance between two diagonal cells is the square root of 2. If the maximum descent to several cells is the same, the neighborhood is enlarged until the steepest descent is found.

When a direction of steepest descent is found, the output cell is coded with the value representing that direction.

If all neighbors are higher than the processing cell, it will be considered noise, be filled to the lowest value of its neighbors, and have a flow direction toward this cell. However, if a one-cell sink is next to the physical edge of the raster or has at least one NoData cell as a neighbor, it is not filled due to insufficient neighbor information. To be considered a true one-cell sink, all neighbor information must be present.

If two cells flow to each other, they are sinks and have an undefined flow direction. This method of deriving flow direction from a digital elevation model (DEM) is presented in Jenson and Domingue (1988).

Cells that are sinks can be identified using the Sink tool. To obtain an accurate representation of flow direction across a surface, fill the sinks before using the Flow Direction tool.

Calculate the direction of flow using the MFD method

In the MFD method, flow is partitioned across all downslope neighbors (Qin et al., 2007). The amount of flow each downslope neighbor receives is estimated as a function of the maximum slope gradient, which allows for local terrain conditions. The expression for estimating MFD is as follows:

MFD partitioning equation


  • di = Portion of flow from each cell that flow into cell i
  • f (e) = Exponent that adapts to local terrain conditions and it is given by

    Adaptive exponent

  • β = Downslope angle (in radians)
  • n = number of cells that flow into cell i
  • Li, Lj = Adjusted factor to account for distance between processing cell and orthogonal and diagonal cells
  • κ = Maximum drop across cells that flow into cell i


Jenson, S. K., and Domingue, J. O. 1988. "Extracting Topographic Structure from Digital Elevation Data for Geographic Information System Analysis." Photogrammetric Engineering and Remote Sensing 54 (11): 1593–1600.

Qin, C., Zhu, A. X., Pei, T., Li, B., Zhou, C., & Yang, L. 2007. "An adaptive approach to selecting a flow partition exponent for a multiple flow direction algorithm." International Journal of Geographical Information Science 21(4): 443-458.