Extract valleys (Johnston and Rosenfeld)

This tool can be used to extract channel networks from digital elevation models (DEMs) based on the Johnston and Rosenfeld (1975) method. The algorithm is a type of 'valley recognition' method and operates as follows: channel cells are flagged in a 3 x 3 window if the north and south neighbours are higher than the centre grid cell or if the east and west neighbours meet this same criterion. The group of cells that are flagged after one pass of the roving window constituted the drainage network. This method is best applied to DEMs that are relatively smooth and do not exhibit high levels of short-range roughness. As such, it may be desirable to use a smoothing filter before applying this tool.

This method of extracting valley networks results in line networks that can be wider than a single grid cell. As such, it is often desirable to thin the resulting network using a line-thinning algorithm. The option to perform line-thinning is provided by the tool as a post-processing step.

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"
lineThinning = "true"
args = [demFile, outputFile, lineThinning]
pluginHost.runPlugin("ExtractValleysJohnstonAndRosenfeld", 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 lineThinning = "true"
String[] args = [demFile, outputFile, lineThinning]
pluginHost.runPlugin("ExtractValleysJohnstonAndRosenfeld", args, false)