This tool can be used to extract, or map, the likely stream cells from an input flow-accumulation image (flow_accumulation
). The algorithm applies a threshold to the input flow accumulation image such that streams are considered to be all grid cells with accumulation values greater than the specified threshold (threshold
). As such, this threshold represents the minimum area (area is used here as a surrogate for discharge) required to initiate and maintain a channel. Smaller threshold values result in more extensive stream networks and vice versa. Unfortunately there is very little guidance regarding an appropriate method for determining the channel initiation area threshold in practice. As such, it is frequently determined either by examining map or imagery data, using field work, or by experimentation until a suitable or desirable channel network is identified. Notice that the threshold value will be unique for each landscape and dataset (including source and grid resolution), further complicating its a priori determination. There is also evidence that in some landscape the threshold is a combined upslope area-slope function. Generally, a lower threshold is appropriate in humid climates and a higher threshold is appropriate in areas underlain by more resistant bedrock. Climate and bedrock resistance are two factors related to drainage density, i.e. the extent to which a landscape is dissected by drainage channels.
The background value of the output raster will be the NoData value unless zero_background
is set to True.
flow_accumulation (Raster): The input flow accumulation Raster object.
threshold (float): The minimum accumulation value required to be part of a stream channel. Default is 0.0, but should be set higher.
zero_background (bool): Whether the output raster uses 0.0 for non-channel cells (True) or NoData (False). Default is False.
Raster
def extract_streams(self, flow_accumulation: Raster, threshold: float = 0.0, zero_background: bool = False) -> Raster: ...