How Flow Direction works

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

Calculating the direction of flow

The direction of flow is determined by the direction of steepest descent, or maximum drop, from each cell. This is calculated as follows:

 maximum_drop = change_in_z-value / distance * 100

The distance is calculated between cell centers. Therefore, if the cell size is 1, the distance between two orthogonal cells is 1, and the distance between two diagonal cells is 1.414 (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, the sinks should be filled before using a flow direction raster.


Greenlee, D. D. 1987. "Raster and Vector Processing for Scanned Linework." Photogrammetric Engineering and Remote Sensing 53 (10): 1383–1387.

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

Related Topics