Weighted Overlay (Spatial Analyst)
Summary
Overlays several rasters using a common measurement scale and weights each according to its importance.
Illustration
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.
-
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 multi-core processors. The maximum number of cores that can be utilized is limited to 4.
If you wish the tool to use fewer cores, use the parallelProcessingFactor environment setting.
Syntax
Parameter | Explanation | Data 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 |
Return Value
Name | Explanation | Data Type |
out_raster |
The output suitability raster. | Raster |
Code Sample
This example create 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")
This example create 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])
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute WeightedOverlay
outWeightedOverlay = WeightedOverlay(myWOTable)
# Save the output
outWeightedOverlay.save("C:/sapyexamples/output/weightover2")