The scale signature is a function that characterizes a measure of the relative topographic position of a location on Earth’s surface relative to its surroundings across a range of spatial scales. In this sense, it is analogous to the spectral signature of remote sensing, which relates surface reflectance for varying wavelengths of electromagnetic energy, or the semivariogram of geostatistics, which relates the variance among point measurements offset by a range of lag distances. The tool measures relative topographic position using the elevation residual index deviation from mean elevation (DEV).
The user must specify the name of an input digital elevation model (DEM) raster and an input vector points file (shapefile) and associated attribute field for data labeling. The tool outputs a line graph containing the signature line for each input point. A text output may also optionally be output. 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. 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"
# Input data has the shapefile name followed
# by the attribute, separated by a semicolon.
pointsData = wd + "points.shp" + ";" + "FID"
outputText = "not specified"
minNeighbourhood = "3"
maxNeighbourhood = "1000"
stepSize = "10"
args = [demFile, pointsData, outputText, minNeighbourhood, maxNeighbourhood, stepSize]
pluginHost.runPlugin("LocalTopographicPositionScaleSignature", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
def demFile = wd + "DEM.dep"
// Input data has the shapefile name followed
// by the attribute, separated by a semicolon.
def pointsData = wd + "points.shp" + ";" + "FID"
def outputText = "signature.csv"
def minNeighbourhood = "3"
def maxNeighbourhood = "1000"
def stepSize = "10"
String[]args = [demFile, pointsData, outputText, minNeighbourhood, maxNeighbourhood, stepSize]
pluginHost.runPlugin("LocalTopographicPositionScaleSignature", args, false)