WOTable

需要 Spatial Analyst 许可。

描述

定义输入栅格、标识输入值的字段、栅格值的重映射、每个栅格的权重以及评估等级供加权叠加工具使用。

讨论

加权叠加工具使用 WOTable 对象。

对于在 WOTable 对象中标识的输入栅格中的每个值,加权叠加工具可根据重映射对象指定新值。两个可用的重映射类为 RemapValueRemapRange。然而,由于 WOTable 通常用于处理分类数据,因此,建议输入 RemapValue 对象。

加权叠加工具中,WOTable 对象中的每个输入栅格都是根据其重要性或者影响力百分比(此对象也进行了定义)进行加权。权重是相对百分比,并且影响力百分比权重的总和必须等于 100%。

“起始”、“终止”和“增量”评估级别参数不会影响所得计算值,但是却必须输入。

语法

 WOTable (weightedOverlayTable, evaluationScale)
参数说明数据类型
weightedOverlayTable
[[inRaster, influence, field, Remap],...]

该表用于指定输入栅格及其影响、要使用的字段,以及重映射表(用于识别旧值需重映射到的新值)。

  • inRaster - 进行加权的输入栅格条件。
  • 影响 - 栅格相对于其他条件的影响力(数据类型:双精度)。
  • 字段 - 用于加权的条件栅格字段(数据类型:字符串)。
  • 重映射 - 重映射对象可识别输入条件的比例权重。

除了重映射表中比例权重的数值外,还可以使用以下选项:

  • RESTRICTED - 无论其他输入栅格是否具有为该像元设置的其他等级值,都将受限制的值分配至输出像元中。
  • NoData - 无论其他输入栅格是否为该像元设置了其他等级值,都将 NoData 分配至输出中的像元。
List
evaluationScale
[from, to, by]

重映射旧值时所采用的新值的范围和间隔。该参数为对话框和脚本所需参数,但对脚本无任何影响。

  • - 是新值要使用的最低值(数据类型:双精度)。
  • - 是新值要使用的最高值(数据类型:双精度)。
  • 通过 - 是新重映射值之间的间隔(数据类型:双精度)。
List

属性

属性说明数据类型
weightedOverlayTable
(可读写)

包含用于标识将要重映射的栅格的加权叠加表、每个栅格的影响程度、要重映射的值和要将其重映射至的值。

List
evaluationScale
(可读写)

重映射旧值时所采用的新值的范围和间隔。

List

代码示例

WOTable 示例 1(Python 窗口)

演示如何创建 WOTable 类以及如何在 Python 窗口的 WeightedOverlay 工具中使用该类。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
myWOTable = WOTable([["snow", 50, "VALUE", RemapValue([[0, 1], [1, 1], [5, 5],
                    [6, 6], [7, 7], [8, 8], [9, 9], ["NODATA", "NODATA"]])],
                    ["land", 20, "VALUE", RemapValue([[0, 1], [1, 1], [5, 5],
                    [6, 6],[7, 7], [8, 8], [9, 9], ["NODATA", "NODATA"]])],
                    ["soil", 30, "VALUE", RemapValue([[0, 1], [1, 1], [2, 2],
                    [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9],
                    ["NODATA", "NODATA"]])]], [1, 9, 1])
outWeightedOverlay = WeightedOverlay(myWOTable)
outWeightedOverlay.save("C:/sapyexamples/output/woverlaytbl")
WOTable 示例 2(独立脚本)

使用 WOTable 类执行加权叠加分析。

# Name: WOTable_Ex_02.py
# Description: Uses the WOTable object to execute WeightedOverlay tool.
# 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"

# Define WOTable 
myWOTable = WOTable([[inRaster1, 50, "VALUE", RemapValue([[1, 1], [5, 5],
                    [6, 5], [7, 5], [8, 9], [9, 9], ["NODATA", "NODATA"]])],
                    [inRaster2, 20, "VALUE", RemapValue([[1, 1], [5, 5],
                    [6, 5], [7, 5], [8, 9], [9, 9], ["NODATA", "NODATA"]])],
                    [inRaster3, 30, "VALUE", RemapValue([[1, 1], [2, 1],
                    [3, 1], [4, 5], [5, 5], [6, 5], [7, 9], [8, 9], [9, 9],
                    ["NODATA", "NODATA"]])]], [1, 9, 1])
 
# Execute WeightedOverlay
outWeightedOverlay = WeightedOverlay(myWOTable)

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

相关主题