This tool is used to generate a flow accumulation grid (i.e. contributing area) using the MDInf algorithm (Seibert and McGlynn, 2007). The MDInf algorithm combines the advantages of the multiple flow direction algorithm as proposed by Quinn et al. (1991) with the use of triangular facets as in the DInf approach described by Tarboton (1997).
The user must specify:
The name of the input digital
elevation model (DEM) that has been hydrologically corrected to remove all
spurious depressions and flat areas. DEM pre-processing is usually achived
using the Fill Depressions tool.
The names of the Upslope, Streams and LocalIn output grids needs to be specified. The Upslope grid contains the contributing area, the Streams grid the total contribution to the stream, whereas the LocalIn grid contains the local contribution to the stream.
The exponent parameter, a number
that controls the degree of dispersion in the resulting flow-accumulation grid.
The output type, either 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, or 3) the number of upslope grid cells.
Whether the output grids should be log-tranformed. If this option is selected, the output 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. This is a flow-accumulation value
(measured in upslope grid cells, which is directly proportional to area) above
which flow dispersion is not longer permitted. 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.
Quinn, P. F., Beven K. J., Chevallier P. and Planchon O. (1991), The prediction of hillslope flowpaths for distributed modelling using digital terrain models, Hydrol. Processes, 5, 59-80.
Seibert, J. and McGlynn B. L. (2007), A new triangular multiple flow direction algorithm for computing upslope areas from gridded digital elevation models, Water Resources Research, Vol. 43, W04501.
Tarboton, D. G. (1997), A new method for the determination of flow directions and upslope areas in grid digital elevation models, Water Resour. Res., 33(2), 309-319.
The following is an example of a Python script that uses this tool:
wd = pluginHost.getWorkingDirectory()
dem = wd + dem.dep"
upslope = wd + "fcc.dep"
streams = wd + "streams.dep"
localIn = wd + "localIn.dep"
expParameter = "1"
outType = "Specific catchment area (sca)"
logTrans = "false"
dispersThresh = "5000"
args = [dem, upslope, streams, localIn, expParameter, outType, logTrans, dispersThresh]
pluginHost.runPlugin("FlowAccumMDInf", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
def dem = wd + dem.dep"
def upslope = wd + "fcc.dep"
def streams = wd + "streams.dep"
def localIn = wd + "localIn.dep"
def expParameter = "1"
def outType = "Specific catchment area (sca)"
def logTrans = "false"
def dispersThresh = "5000"
String[] args = [dem, upslope, streams, localIn, expParameter, outType, logTrans, dispersThresh]
pluginHost.runPlugin("FlowAccumMDInf", args, false)