加权叠加 (空间分析)

需要 Spatial Analyst 许可。

摘要

使用常用测量比例叠加多个栅格数据,并根据各栅格数据的重要性分配权重。

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

插图

加权叠加图示
在图示中,两个输入栅格已重分类为常用测量等级 1 到 3。 每个栅格均分配了影响力百分比。 将像元值乘以其影响力百分比,然后将结果相加即可创建输出栅格。 以左上角像元为例。 两个输入的值分别为 (2 * 0.75) = 1.5 和 (3 * 0.25) = 0.75。 1.5 与 0.75 相加等于 2.25。 由于加权叠加的输出栅格为整型,因此最终值四舍五入为 2。

使用情况

  • 所有输入栅格数据必须为整型。 浮点型栅格数据要先转换为整型栅格数据,然后才能在加权叠加中使用。 重分类工具是执行换转的有效方法。

  • 根据评估等级为输入栅格中的各个值类分配一个新值。 这些新值是原始输入栅格值的重分类。 对于要从分析中排除的区域,将使用受限值。

  • 根据各个输入栅格数据的重要性或者影响力百分比对其进行加权。 权重是相对百分比,并且影响力百分比权重的总和必须等于 100。 影响力仅通过整数值进行指定。 十进制值将向下舍入为最近的整数。

  • 通过更改评估等级或影响力百分比可以改变加权叠加分析的结果。

  • 默认情况下,此工具会利用多核处理器。 可供使用的最大核数为四。

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

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
加权叠加表

使用加权叠加表可执行多个栅格数据之间的多条件分析计算。

输入栅格:

  • 栅格 - 进行加权的输入条件栅格列表。 使用此选项浏览栅格数据集或将地图图层添加到输入列表。
  • % - 以百分比形式表示输入栅格相对于其他条件栅格的影响力百分比。 影响力仅通过整数值进行指定。 十进制值将向下舍入为最近的整数。 影响力总和必须等于 100。

    使用设置等效影响选项(等号按钮)对所有栅格的影响力百分比进行平衡设置并且要保证总和为 100。

重映射表:

  • 字段 - 要进行加权处理的输入条件字段。
  • - 输入字段值。
  • 级别 - 根据级别设置指定的内容,为条件设定的输出级别值。 更改这些值将更改输入栅格中的值。 您可以直接输入值或者从下拉列表中选择一个值。 除了数值以外,还可以使用以下选项:
    • 受限 - 无论其他输入栅格是否具有为该像元设置的其他等级值,都将受限制的值(设置的评估等级最小值为负 1)分配至输出中的像元。
    • NoData - 无论其他输入栅格是否为该像元设置了其他等级值,都将 NoData 分配至输出中的像元。

等级 - 用于定义重映射值的评估等级。 从预定义的评估等级列表中进行选择。 您还可通过将参数连字符或空格输入到分隔值来定义您自己的评估等级控件。 负值前面必须使用空格。

WOTable

返回值

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

输出加权栅格。

Raster

WeightedOverlay(in_weighted_overlay_table)
名称说明数据类型
in_weighted_overlay_table

使用加权叠加工具可执行多个栅格之间的多条件分析计算。

Overlay 类用于定义表。 WOTable 对象用于指定条件栅格及其各自的属性。

对象形式为:

  • WOTable(weightedOverlayTable, evaluationScale)

WOTable

返回值

名称说明数据类型
out_raster

输出加权栅格。

Raster

代码示例

WeightedOverlay 示例 1(Python 窗口)

本示例创建了一个可识别滑雪场的潜在位置的适宜性 IMG 栅格。

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

本示例创建了一个可识别滑雪场的潜在位置的适宜性 IMG 栅格。

# 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")