Skip To Content

Flow Direction function

Available with Spatial Analyst license.


One of the keys to deriving hydrologic characteristics of a surface is the ability to determine the direction of flow from every pixel in the raster. The Flow Direction raster function takes a surface as input and creates a raster of flow direction from each pixel to its steepest downslope neighbor. The Flow Direction function supports three flow modeling methods: the D8 (eight directions), Multi-Flow Direction (MFD), and D-Infinity (DINF).


The D8 flow option models flow direction from each pixel to its steepest downslope neighbor. All of the flow is directed to this steepest neighbor. The output of the D8 direction type is an integer raster whose values range from 1 to 255. The values for each direction from the center are shown in the following image:

Flow Direction codes
For example, if the direction of steepest drop was to the left of the current processing pixel, its flow direction would be coded as 16. The example below shows how elevation values are converted to flow direction codes.
Flow Direction illustration
Elevation values converted to flow direction codes
  • If a pixel is lower than its eight neighbors, that pixel is given the value of its lowest neighbor, and flow is directed towards this pixel. If multiple neighbors have the lowest value, the pixel is still assigned this value but flow is defined with one of the two methods described below. This method is used to remove sinks, which are considered noise.

    A sink is a pixel or set of spatially connected pixels whose flow direction cannot be assigned one of the eight valid values in a flow direction raster. This can occur when all neighboring pixels are higher than the processing pixel or when two pixels flow into each other, creating a two-pixel loop.

    • If a pixel has the same change in z-value in multiple directions and that pixel is part of a sink, the flow direction is referred to as undefined. In such cases, the value for that pixel in the output flow direction raster will be the sum of those directions. For example, if the change in z-value is the same to the right (flow direction = 1) and down (flow direction = 4), the flow direction for that pixel is 1 + 4 = 5.
    • If a pixel has the same change in z-value in multiple directions and that pixel is not part of a sink, the flow direction is assigned with a lookup table defining the most likely direction. See Greenlee (1987) below.

The Multiple Flow Direction (MFD) algorithm, described by Qin (2007), partitions flow from a pixel to all downslope neighbors. A flow-partition exponent is created from an adaptive approach based on local terrain conditions and is used to determine the fraction of flow draining to each downslope neighbor.

  • The MFD flow direction output only displays the D8 flow directions. As MFD flow directions potentially have multiple values tied to each pixel of interest—each value corresponds to the proportion of flow to each downslope neighbor—the output is not easily visualized. However, a MFD flow direction output raster is an input recognized by the Flow Accumulation tool that utilizes the proportional MFD flow directions and accumulates flow from each pixel to all downslope neighbors.

The D-Infinity (DINF) flow method, described by Tarboton (1997), determines flow direction as the steepest downward slope on eight triangular facets formed in a 3x3 pixel window centered on the pixel of interest. Flow direction output is a floating point raster represented as a single angle in degrees, progressing counterclockwise from 0 (due east) to 360 (again due east).

  • With the Force all edge cells to flow outward parameter in the default unchecked setting, a pixel at the edge of the surface raster will flow towards the inner pixel with the steepest drop in z-value. If the drop is less than or equal to zero, the pixel will flow out of the surface raster.




The input raster representing a continuous elevation surface.

Force all edge cells to flow outward

Specifies if edge pixels will always flow outward or follow normal flow rules.

  • No—If the maximum drop on the inside of an edge pixel is greater than zero, the flow direction will be determined as usual; otherwise, the flow direction will be towards the edge. Pixels that should flow from the edge of the surface raster inward will do so. This is the default.
  • Yes—All the pixels at the edge of the surface raster will flow outward from the surface raster.

Flow Direction Type

Specifies the type of flow method to use for computing flow directions.

  • D8—Assigns a flow direction based on the D8 flow method. This method assigns flow direction to the steepest downslope neighbor. This is the default.
  • MFD—Assigns a flow direction based on the MFD flow method. This method assigns proportional flow in multiple directions towards all downslope neighbors.
  • DINF—Assigns a flow direction based on the D-Infinity flow method using the steepest slope of a triangular facet.


This function requires the ArcGIS Spatial Analyst extension to be enabled.


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

Qin, C, A. X. Zhu, T. Pei, B. Li, C. Zhou, and L. Yang. 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

Tarboton, D. G., R. L. Bras, and I. Rodriguez–Iturbe. 1991. "On the Extraction of Channel Networks from Digital Elevation Data." Hydrological Processes 5: 81–100.