Weighted Sum (Spatial Analyst)

Summary

Overlays several rasters, multiplying each by their given weight and summing them together.

Learn more about how Weighted Sum works

Illustration

Weighted Sum illustration
In the illustration, the cell values are multiplied by their weight factor, and the results are added together to create the output raster. For example, consider the top left cell. The values for the two inputs become (2.2 * 0.75) = 1.65 and (3 * 0.25) = 0.75. The sum of 1.5 and 0.75 is 2.4.

Usage

Syntax

WeightedSum (in_rasters)
ParameterExplanationData Type
in_rasters
in_weighted_sum_table

The Weighted Sum tool overlays several rasters, multiplying each by their given weight and summing them together.

An Overlay class is used to define the table. The WSTable object is used to specify a Python list of input rasters and weight them accordingly.

The form of the WSTable object is:

  • WSTable ([[inRaster, field, weight],...])

WSTable

Return Value

NameExplanationData Type
out_raster

The output suitability raster.

It will be of floating point type.

Raster

Code Sample

WeightedSum example 1 (Python window)

This example creates a suitability raster for locating a ski resort by combining multiple rasters together, and applying appropriate weight factors.

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

# Execute WeightedSum
outWeightedSum = WeightedSum(WSTable([["snow", "VALUE", 0.25], ["land", "VALUE",0.25],
									  ["soil", "VALUE", 0.5]]))
outWeightedSum.save("C:/sapyexamples/output/outwsum")
WeightedSum example 2 (stand-alone script)

This example creates a suitability raster for locating a ski resort by combining multiple rasters together, and applying appropriate weight factors.

# Name: WeightedSum_Ex_02.py
# Description: Overlays several rasters multiplying each by their given
#    weight and summing them together.
# Requirements: Spatial Analyst Extension
# Author: ESRI

# 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"
WSumTableObj = WSTable([[inRaster1, "VALUE", 0.25], [inRaster2, "VALUE", 0.25],
                        [inRaster3, "VALUE", 0.5]])

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute WeightedSum
outWeightedSum = WeightedSum(WSumTableObj)

# Save the output 
outWeightedSum.save("C:/sapyexamples/output/weightsumout")

Environments

Related Topics

Licensing Information

ArcView: Requires Spatial Analyst
ArcEditor: Requires Spatial Analyst
ArcInfo: Requires Spatial Analyst

6/29/2011