This tool can be used to pre-process a digital elevation model (DEM) prior to being used for hydrological analysis. It will remove topographic depressions and apparent dams in the DEM in order to enforce continuous flow. This is achieved by breaching through topographic barriers. As such, depression breaching provides an alternative to depression filling. Unlike depression filling, which has one unique solution for each depression, there may be several competing solutions for depression breaching. This tool uses a cost-distance criteria for deciding upon the breach target, i.e. the cell to which the tool will trench a connecting path, and for determining the breach path itself. As such, the trenched path will not necessarily follow a straight line, but rather, will follow a path of lowest cost, where the cost is determined by the amount of change made to the original DEM.
The Breach Depressions (Fast) offers an alternative depression breaching solution, that is not as optimal as the solution provided by this tool, but which is considerably more computationally efficient, i.e. it runs faster. When this tool cannot be used, the Breach Depressions (Fast) tool should be viewed as a viable alternative to depression filling, as it will likely reduce the impact of the flow enforcement step on the surface flowpath information contained in the original DEM. Also note, that unlike the Breach Depressions (Fast) tool, this breaching algorithm will not necessarily find a breaching solution for every depression contained in the DEM. As such, the fast breaching method can offer a useful post-processing method for DEM processed using this optimized breaching algorithm to remove any features that remain after processing.
The following is an example of a Python script that uses this tool:
wd = pluginHost.getWorkingDirectory()
inputFile = wd + "DEM.dep"
outputFile = wd + "output.dep"
maxBreachLength = "50.0"
maxElevationDecrement = "not specified"
minElevationDrop = "not specified"
args = [inputFile, outputFile, maxElevationDecrement, minElevationDrop]
pluginHost.runPlugin("BreachDepressions", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
def inputFile = wd + "DEM.dep"
def outputFile = wd + "output.dep"
def maxBreachLength = "50.0"
def maxElevationDecrement = "10.0"
def minElevationDrop = "0.15"
String[] args = [inputFile, outputFile, maxElevationDecrement, minElevationDrop]
pluginHost.runPlugin("BreachDepressions", args, false)