资源描述
地理国情监测云平台
ArcGIS教程:模糊叠加和加权叠加
一、模糊叠加
摘要
基于所选叠加类型组合模糊分类栅格数据。
用法
· 建议您在使用模糊分类工具的所得结果时使用此工具。它可以专门应用于值范围介于 0 到 1 之间的栅格。
· 下面列出了适合在某些情况下使用的叠加类型。
1. 当任何输入证据栅格都可以具有较高值以使输出值较高时使用 OR。
2. 当所有输入证据栅格都必须具有较高值以使输出值较高时使用 AND。
3. 当组合证据栅格的重要性低于单个证据栅格时使用 PRODUCT。
4. 当组合证据栅格的重要性高于任何单个证据栅格时使用 SUM。
· 叠加类型 GAMMA 通常用于执行较基本数据的模糊组合。当 amma 为 1 时,结果与 Fuzzy Sum 相同。当 amma 为 0时,结果与 Fuzzy Product 相同。介于二者之间的值允许用户组合这两个极值之间的证据栅格,结果可能不同于 Fuzzy And 或 Fuzzy Or。
语法
FuzzyOverlay (in_rasters, {overlay_type}, {gamma})
参数
说明
数据类型
in_rasters
[in_raster,...]
要在叠加中进行组合的输入分类栅格列表。
Raster Layer
overlay_type
(可选)
指定在组合两个或多个分类数据时所使用的方法。
· AND —输入模糊栅格中模糊分类栅格的最小值。
· OR —输入栅格中模糊分类栅格的最大值。
· PRODUCT — 递减函数。当多个证据栅格的组合的重要性或该组合小于任何单个输入栅格时使用此函数。
· SUM —递增函数。当多个证据栅格的组合的重要性或该组合大于任何单个输入栅格时使用此函数。
· GAMMA — 以 Fuzzy Sum 和 Fuzzy Product 为底,以 gamma 为指数的代数乘积。
String
gamma
(可选)
要使用的 gamma 值。仅适用于将叠加类型设置为 GAMMA 时。
默认值为 0.9。
Double
返回值
名称
说明
数据类型
out_raster
应用模糊运算符后得到的输出栅格。
输出值将始终介于 0 到 1 之间。
Raster
代码实例
模糊叠加 (FuzzyOverlay) 示例 1(Python 窗口)
本例将组合输入分类栅格和 AND 叠加类型,从而确定二者之间的最小分类值。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyOverlay = FuzzyOverlay(["fzymembout1", "fzymembout2"], "AND")
outFzyOverlay.save("c:/sapexamples/output/fuzzover.tif")
模糊叠加 (FuzzyOverlay) 示例 2(独立脚本)
本例将组合输入分类栅格和 GAMMA 叠加类型。
# Name: FuzzyOverlay_Ex_02.py
# Description: Combine fuzzy membership rasters data together based on
# selected overlay type ("GAMMA" in this case).
# 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
inRasterList = ["fzymembout1", "fzymembout2"]
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FuzzyMembership
outFzyOverlay = FuzzyOverlay(inRasterList, "GAMMA", 0.9)
# Save the output
outFzyOverlay.save("c:/sapexamples/output/fuzzoverlay")
二、加权叠加
摘要
使用常用测量比例叠加多个栅格数据,并根据各栅格数据的重要性分配权重。
插图
插图中,两个输入栅格已重新分类为 1 至 3 三种公共测量级别。为每个栅格均分配了一个影响百分比。这些像元值与其影响百分比相乘,两者所得结果相加创建输出栅格。以左上角像元为例。这两个输入的值变为 (2 * 0.75) = 1.5 与 (3 * 0.25) = 0.75。1.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 示例 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])
# 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")
北京数字空间科技有限公司
展开阅读全文