FD8 flow accumulation

This tool is used to generate a flow accumulation grid (i.e. contributing area) using the FD8 algorithm (Freeman, 1991). This algorithm is an examples of a multiple-flow-direction (MFD) method because the flow entering each grid cell is routed to each downslope neighbour, i.e. flow divergence is permitted. The user must specify the name of the input digital elevation model(DEM). Notice that unlike the other flow-accumulation tools, this tool does not require an input flow-pointer grid. The DEM should be hydrologically corrected to remove all spurious depressions and flat areas before being input to this tool. DEM pre-processing is usually achieved using the Fill Depressions tool. A value must also be specified for the exponent parameter, a number that controls the degree of dispersion in the resulting flow-accumulation grid. A lower value yields greater apparent flow dispersion across divergent hillslopes. Some experimentation suggests that a value of 1.1 is appropriate, though this is almost certainly landscape-dependent.

In addition to the input DEM grid name and exponent, the user must specify the output type. The output flow-accumulation can be 1) specific catchment area (SCA), which is the upslope contributing area divided by the contour length (taken as the grid resolution), 2) total catchment area in square-metres, or 3) the number of upslope grid cells. The user must also specify whether the output flow-accumulation grid should be log-tranformed, i.e. the output, if this option is selected, will be the natural-logarithm of the accumulated area. This is a transformation that is often performed to better visualize the contributing area distribution. Because contributing areas tend to be very high along valley bottoms and relatively low on hillslopes, when a flow-accumulation image is displayed, the distribution of values on hillslopes tends to be 'washed out' because the palette is stretched out to represent the highest values. Log-transformation provides a means of compensating for this phenomenon. Importantly, however, log-transformed flow-accumulation grids must not be used to estimate other secondary terrain indices, such as the wetness index, or relative stream power index. Perhaps a better alternative to log-transformation of flow-accumulation values is to increase the 'Palette non-linearity' value under the Layer Properties tab.

The non-dispersive threshold is a flow-accumulation value (measured in upslope grid cells, which is directly proportional to area) above which flow dispersion is not longer permited. Grid cells with flow-accumulation values above this threshold will have their flow routed in a manner that is similar to the D8 single-flow-direction algorithm, directing all flow towards the steepest downslope neighbour. This is usually done under the assumption that flow dispersion, whilst appropriate on hillslope areas, is not realistic once flow becomes channelized.

Grid cells possessing the NoData value in the input flow-pointer grid are assigned the NoData value in the output flow-accumulation image. The output raster is of the float data type and continuous data scale.

See Also:


The following is an example of a Python script that uses this tool:

wd = pluginHost.getWorkingDirectory()
demFile = wd + "DEM.dep"
outputFile = wd + "output.dep"
exponent = "1.0"
outputType = "specific catchment area (sca)"
logTransformOutput = "false"
threshold = "1000"
args = [demFile, outputFile, exponent, outputType, logTransformOutput, threshold]
pluginHost.runPlugin("FlowAccumFD8", args, False)

This is a Groovy script also using this tool:

def wd = pluginHost.getWorkingDirectory()
def demFile = wd + "DEM.dep"
def outputFile = wd + "output.dep"
def exponent = "1.0"
def outputType = "number of upslope grid cells"
def logTransformOutput = "true"
def threshold = "not specified"
String[] args = [demFile, outputFile, exponent, outputType, logTransformOutput, threshold]
pluginHost.runPlugin("FlowAccumFD8", args, false)