The multiscale elevation residual index (MERI) characterizes the relative
landscape position of a location across a range of spatial scales. The algorithm
calculates the ** Difference From Mean
Elevation** (DFME) for each grid cell for each scale, defined by a the neighbourhood
size of the DFME operation. Mean elevations are determined for each tested scale at
each grid cell in an input digital elevation model (DEM) uing a highly efficient method
based on an integral image, sometimes referred to as a summed area table. Neighbourhoods
are therefore based on the square regions surrounding each cell, with the smallest tested
neighbourhood having a search radius of one cell (i.e. the 3 x 3 neighbourhood) to the
maximum tested search radius (

*r _{max}* = floor[log

Where *B* is the base value and *C* and *R* are the number
of columns and rows in the DEM respectively. The base value determines the density with
which the range of scales are sampled. The default base value is 1.5 and 1 <
*B* ≤ 2. The series of neighbourhoods of dimensions *s* x *s* is given as:

*s* = 2 x floor(*B*^{i}) + 1

for 0 ≤ *i* ≤ *r _{max}*. Additionally, repeated values, which can
occur for small values of

The DFME is calculated for each neighbourhood in the series above. The index is then defined as the proportion of the tested scales for which the grid cell's elevation is higher than the mean elevation. Thus, MERI ranges from 0, indicating that a location (i.e. grid cell in a DEM) is lower than the mean elevation across the entire range of tested scales, and 1, indicating that the location is consitently higher than the mean elevation. The calculation of DFME requires creating two temporary images that will be deleted upon completion.

The following is an example of a Python script using this tool:

```
wd = pluginHost.getWorkingDirectory()
```

inputFile = wd + "DEM.dep"

outputFile = wd + "output.dep"

baseValue = "1.5"

args = [inputFile, outputFile, baseValue]

pluginHost.runPlugin("MultiscaleElevationResidualIndex", 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 baseValue = "1.5"

String[] args = [inputFile, outputFile, baseValue]

pluginHost.runPlugin("MultiscaleElevationResidualIndex", args, false)

- John Lindsay (2013) email: jlindsay@uoguelph.ca