『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:加权叠加

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

摘要

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

插图


插图中,两个输入栅格已重新分类为 1 3 三种公共测量级别。为每个栅格均分配了一个影响百分比。这些像元值与其影响百分比相乘,两者所得结果相加创建输出栅格。以左上角像元为例。这两个输入的值变为 (2 * 0.75) = 1.5 (3 * 0.25) = 0.751.5 0.75 的和为 2.25。因为加权叠加获得的输出栅格为整数,所以最终值取整为 2

用法

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

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

·      根据各个输入栅格数据的重要性或者影响力百分比对其进行加权。权重是相对百分比,并且影响力百分比权重的总和必须等于 100

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

语法

    WeightedOverlay (in_weighted_overlay_table)

参数

说明

数据类型

in_weighted_overlay_table

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

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

对象形式为:

·         WOTable([[inRaster, influence, field, remap],...], [from, to, by])

WOTable

返回值

名称

说明

数据类型

out_raster

输出适宜性栅格。

Raster

代码实例

    WeightedOverlay 示例 1Python 窗口)

    本示例创建的适宜性 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])   

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

      京ICP备2025132830号-1 京公网安备 号