This tool calculates the maximum value of deviation from mean elevation (DEV) across a range of spatial scales. The user must specify the name of an input digital elevation model (DEM) raster. Two output rasters are created including a raster containing the maximum deviation value and a second raster containing the scale at which this maximum occurred. The scale range must be specified using the minimum and maximum search window radius, or the window half-size, r, where D = 2r + 1. The series r = 1, 2, 3, therefore describes the series of square pixel-centered windows, such that r = 1 denotes a 3 x 3 roving window, r = 2 denotes a 5 x 5 window, and so on. Window half-sizes must be positive integers. Additionally, the user must specify the step size, which determines the step in r between consecutive derived DEV rasters, and therefore determines the sampling density of the scale signature. The minimum step value is 1. Note that derived DEV rasters for each scale are only stored in memory and only the two output rasters are ever stored to disc. The tool uses an extremely efficient technique based on an integral images to calculate DEV for each scale. The efficiency of this method is independent of the size of the search window, thereby allowing for the calculation of DEV with very large window sizes.
The following is an example of a Python script using this tool:
wd = pluginHost.getWorkingDirectory()
demFile = wd + "DEM.dep"
outputMagnitudeFile = wd + "outputMagnitude.dep"
outputScaleFile = wd + "outputScale.dep"
minNeighbourhood = "3"
maxNeighbourhood = "1000"
stepSize = "10"
args = [demFile, outputMagnitudeFile, outputScaleFile, minNeighbourhood, maxNeighbourhood, stepSize]
pluginHost.runPlugin("MaximumElevationDeviation", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
def demFile = wd + "DEM.dep"
def outputMagnitudeFile = wd + "outputMagnitude.dep"
def outputScaleFile = wd + "outputScale.dep"
def minNeighbourhood = "3"
def maxNeighbourhood = "1000"
def stepSize = "10"
String[] args = [demFile, outputMagnitudeFile, outputScaleFile, minNeighbourhood, maxNeighbourhood, stepSize]
pluginHost.runPlugin("MaximumElevationDeviation", args, false)