需要 Spatial Analyst 许可。
摘要
通过一个基于平均值和标准差的函数,以隶属度更接近于 1 的较大值定义模糊隶属度。
讨论
使用 FuzzyMSLarge 对象的工具:模糊隶属度。
根据 a * m 的乘积,MS 较大值函数有两个方程。
- 如果 x > a * m:
u(x) = 1 - (b * s) / (x - (a * m) + (b * s))
- 其中:
m = 平均值
s = 标准差
a = 平均值乘数
b = 标准差乘数
a 和 b 乘数是输入参数。
- 其中:
- 如果 x <= a * m:
u(x) = 0
当较大的输入值具有较高的隶属度时,MSLarge 函数十分有用。
输入值可以为整型值或浮点型正值。
结果可能与较大值模糊隶属度函数类似,具体取决于平均值和标准差的乘数定义方式。
语法
FuzzyMSLarge (meanMultiplier, STDMultiplier)
参数 | 说明 | 数据类型 |
meanMultiplier | MS 大值函数方程中输入值的平均值的乘数。 (默认值为 1) | Double |
STDMultiplier | MS 大值函数方程中输入值的标准差的乘数。 (默认值为 1) | Double |
属性
属性 | 说明 | 数据类型 |
meanMultiplier (读写) | 隶属度函数方程中输入值的平均值的乘数。 | Double |
STDMultiplier (读写) | 隶属度函数方程中输入值的标准差的乘数。 | Double |
代码实例
FuzzyMSLarge 示例 1(Python 窗口)
演示如何在 Python 窗口下创建 FuzzyMSLarge 类,并通过 FuzzyMembership 工具使用该类。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("as_std", FuzzyMSLarge(1, 1.8))
outFzyMember.save("c:/sapyexamples/fzymslrg")
FuzzyMSLarge 示例 2(独立脚本)
使用 FuzzyMSLarge 类执行 FuzzyMembership。
# Name: FuzzyMSLarge_Ex_02.py
# Description: Scales input raster data into values ranging from zero to one
# indicating the strength of a membership in a set.
# 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
inRaster = "as_std"
# Create the FuzzyMSLarge algorithm object
meanMultiply = 1.5
stdMultiply = 2.2
myFuzzyAlgorithm = FuzzyMSLarge(meanMultiply, stdMultiply)
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)
# Save the output
outFuzzyMember.save("c:/sapyexamples/fzymslrg2")