Weighted overlay

This tool performs a weighted overlay on multiple input images. It can be used to combine multiple factors with varying levels of weight or relative importance. The Weighted Overlay tool is similar to the Weighted Sum tool but is more powerful because it automatically converts the input factors to a common user-defined scale and allows the user to specify benefit factors and cost factors. A benefit factor is a factor for which higher values are more suitable. A cost factor is a factor for which higher values are less suitable. By default, Weighted Overlay assumes that input images are benefit factors, unless the Cost? checkbox is checked. Constraints are absolute restriction with values of 0 (unsuitable) and 1 (suitable). This tool is particularly useful for performing multi-criteria evaluations (MCE).

Notice that the algorithm will convert the user-defined factor weights internally such that the sum of the weights is always equal to one. As such, the user can specify the relative weights as decimals, percentages, or relative weightings (e.g. slope is 2 times more important than elevation, in which case the weights may not sum to 1 or 100).

NoData valued grid cells in any of the input images will be assigned NoData values in the output image. The output raster is of the float data type and continuous data scale.

See Also:

Scripting:

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

wd = pluginHost.getWorkingDirectory()
# image1;weight1;image2;weight2;... inputData = wd + "input1.dep" + ";" + "0.2" + ";" + wd + "input2.dep" + ";" + "0.8"
# You may have multiple input files but they must
# be separated by semicolons in the string.
constraintsFiles = wd + "constraint1.dep" + ";" + wd + "constraint2.dep" + ";" + wd + "constraint3.dep"
outputFile = wd + "output.dep"
commonScale = "0-1" # must be 0-1, 0-100, or 0-255
args = [inputData, constraintsFiles, outputFile, commonScale]
pluginHost.runPlugin("WeightedOverlay", args, False)

This is a Groovy script also using this tool:

def wd = pluginHost.getWorkingDirectory()
// image1;weight1;image2;weight2;... def inputData = wd + "input1.dep" + ";" + "0.2" + ";" + wd + "input2.dep" + ";" + "0.8"
// You may have multiple input files but they must
// be separated by semicolons in the string.
def constraintsFiles = wd + "constraint1.dep" + ";" + wd + "constraint2.dep" + ";" + wd + "constraint3.dep"
def outputFile = wd + "output.dep"
def commonScale = "0-255" // must be 0-1, 0-100, or 0-255
String[] args = [inputData, constraintsFiles, outputFile, commonScale]
pluginHost.runPlugin("WeightedOverlay", args, false)

Credits: