Weighted Overlay (Spatial Analyst)

Available with Spatial Analyst license.

Summary

Overlays several rasters using a common measurement scale and weights each according to its importance.

Learn more about how Weighted Overlay works

Illustration

Weighted Overlay illustration
In the illustration, the two input rasters have been reclassified to a common measurement scale of 1 to 3. Each raster is assigned a percentage influence. The cell values are multiplied by their percentage influence, and the results are added together to create the output raster. For example, consider the upper left cell. The values for the two inputs become (2 * 0.75) = 1.5 and (3 * 0.25) = 0.75. The sum of 1.5 and 0.75 is 2.25. Because the output raster from Weighted Overlay is integer, the final value is rounded to 2.

Usage

  • All input rasters must be integer. A floating-point raster must first be converted to an integer raster before it can be used in Weighted Overlay. The Reclassification tools provide an effective way to do the conversion.

  • Each value class in an input raster is assigned a new value based on an evaluation scale. These new values are reclassifications of the original input raster values. A restricted value is used for areas you want to exclude from the analysis.

  • Each input raster is weighted according to its importance or its percent influence. The weight is a relative percentage, and the sum of the percent influence weights must equal 100. Influences are specified by integer values only. Decimal values are rounded down to the nearest integer.

  • Changing the evaluation scales or the percentage influences can change the results of the weighted overlay analysis.

  • By default, this tool will take advantage of multicore processors. The maximum number of cores that can be used is four.

    To use fewer cores, use the Parallel Processing Factor environment setting.

  • See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.

Parameters

LabelExplanationData Type
Weighted overlay table

The weighted overlay table allows the calculation of a multiple-criteria analysis between several rasters.

Input Rasters:

  • Rasters—List of input criteria rasters being weighted. Use the options to browse for raster datasets or add map layers to the list of inputs.
  • %—The percent influence of the input raster compared to the other criteria rasters as a percentage of 100. Influences are specified by integer values only. Decimal values are rounded down to the nearest integer. The sum of influences must equal 100.

    Use the set equal influences option (the = sign button) to balance the percent influence of all rasters equally and sum them to 100.

Remap Table:

  • Field—The field of the input criteria to be weighted.
  • Value—The input field value.
  • Scale—The output scale value for the criterion, as specified by the Scale setting. Changing these values will alter the value in the input raster. You can enter a value directly or select from the drop-down list. In addition to numerical values, the following options are available:
    • Restricted—Assigns the restricted value (the minimum value of the evaluation scale set, minus one) to cells in the output, regardless of whether other input rasters have a different scale value set for that cell.
    • NoData—Assigns NoData to cells in the output, regardless of whether other input rasters have a different scale value set for that cell.

Scale—Evaluation scale for defining the remap values. Select from a list of predefined evaluation scales. You can also define your own evaluation scale controls by typing in the parameter sign hyphens or spaces to separate values. A negative value must be preceded by a space.

WOTable

Return Value

LabelExplanationData Type
Output raster

The output weighted raster.

Raster

WeightedOverlay(in_weighted_overlay_table)
NameExplanationData Type
in_weighted_overlay_table

The Weighted Overlay tool allows the calculation of a multiple-criteria analysis between several rasters.

An Overlay class is used to define the table. The WOTable object is used to specify the criteria rasters and their respective properties.

The form of the object is:

  • WOTable(weightedOverlayTable, evaluationScale)

WOTable

Return Value

NameExplanationData Type
out_raster

The output weighted raster.

Raster

Code sample

WeightedOverlay example 1 (Python window)

This example creates a suitability IMG raster that identifies potential site locations for a ski area.

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"

outsuit = WeightedOverlay(WOTable(
           [
            ["snow", 50, 'VALUE', RemapValue([[1,"Nodata"],[5,3],[9,10],["NODATA","NODATA"]])], 
            ["land", 20, '', RemapValue([["water","1"],["forest",5],["open field",9],["NODATA", "NODATA"]])],
            ["soil", 30, 'VALUE', RemapValue([[1,"Restricted"],[5,5],[7,7],[9,9],["NODATA", "Restricted"]])]
           ],[1,9,1]))
outsuit.save("C:/sapyexamples/output/outsuit.img")
WeightedOverlay example 2 (stand-alone script)

This example creates a suitability IMG raster that identifies potential site locations for a ski area.

# Name: WeightedOverlay_Ex_02.py
# Description: Overlays several rasters using a common scale and weighing 
#    each according to its importance.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster1 = "snow"
inRaster2 = "land"
inRaster3 = "soil"

remapsnow = RemapValue([[0,1],[1,1],[5,5],[9,9],["NODATA","NODATA"]])
remapland = RemapValue([[1,1],[5,5],[6,6],[7,7],[8,8],[9,9],["NODATA","Restricted"]])
remapsoil = RemapValue([[0,1],[1,1],[5,5],[6,6],[7,7],[8,8],[9,9],["NODATA", "NODATA"]])

myWOTable = WOTable([[inRaster1, 50, "VALUE", remapsnow],
                     [inRaster2, 20, "VALUE", remapland], 
                     [inRaster3, 30, "VALUE", remapsoil]
					          ], [1, 9, 1])    

# Execute WeightedOverlay
outWeightedOverlay = WeightedOverlay(myWOTable)

# Save the output
outWeightedOverlay.save("C:/sapyexamples/output/weightover2")