加权总和 (空间分析)

摘要

通过将栅格各自乘以指定的权重并合计在一起来叠加多个栅格。

了解有关“加权总和”工作原理的详细信息

插图

“加权总和”图示
在图示中,将像元值乘以其加权因子,然后将结果相加即可创建输出栅格。 例如,考虑左上角像元。 两个输入的值将分别为 (2.2 * 0.75) = 1.65 和 (3 * 0.25) = 0.75。 1.65 与 0.75 相加等于 2.4。

使用情况

  • 将多个栅格数据一起添加的有效方法是输入多个栅格并将所有权重设置为 1。

  • 输入栅格可以是整型或浮点型。

  • 权重值可以是正的或负的小数值。 并不限定该值必须是相对百分比,也无需等于 1.0。

  • 权重将应用至输入栅格的指定字段。 字段的类型可以是短整型或长整型,双精度型或浮点型。

  • 默认情况下,如果有多核处理器可用,此工具将使用多核处理。 最多可以使用 4 个核。

    要使用较少的核,请使用并行处理因子环境设置。

参数

标注说明数据类型
输入栅格

加权总和表允许您在对输入栅格求和之前对其应用不同的权重。

  • 栅格 - 进行加权的栅格。
  • 字段 - 用于加权的栅格字段。
  • 权重 - 与栅格数据相乘的权重值。 该值可以是正的或负的小数值。
WSTable

返回值

标注说明数据类型
输出栅格

输出已加权的栅格。

此栅格为浮点类型。

Raster

WeightedSum(in_rasters)
名称说明数据类型
in_rasters

加权总和工具通过将栅格数据各自乘以指定的权重并合计在一起来叠加多个栅格数据。

Overlay 类用于定义表。 WSTable 对象用于指定输入栅格的 Python 列表并对输入栅格进行相应的加权。

对象形式为:

  • WSTable(weightedSumTable)

WSTable

返回值

名称说明数据类型
out_raster

输出已加权的栅格。

此栅格为浮点类型。

Raster

代码示例

WeightedSum 示例 1(Python 窗口)

本示例通过将多个栅格合并到一起并应用适当的加权因子来创建适宜性栅格,用以为滑雪场地选址。

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 示例 2(独立脚本)

本示例通过将多个栅格合并到一起并应用适当的加权因子来创建适宜性栅格,用以为滑雪场地选址。

# Name: WeightedSum_Ex_02.py
# Description: Overlays several rasters multiplying each by their given
#    weight and summing them together.
# 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"
WSumTableObj = WSTable([[inRaster1, "VALUE", 0.25], [inRaster2, "VALUE", 0.25],
                        [inRaster3, "VALUE", 0.5]])

# Execute WeightedSum
outWeightedSum = WeightedSum(WSumTableObj)

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