Skip to main content

FuzzyNear

汇总

通过一个用户定义的中点(分配的隶属度为 1)及经过定义减至零的散度,定义针对特定值的模糊隶属度函数。

讨论

使用 FuzzyNear 对象的工具: 模糊隶属度

FuzzyNear 函数的方程为:

模糊邻近分析函数方程

方程的输入为 f1 (散度 (spread))和 f2 (中点 (midpoint))。增大散度会导致模糊隶属度曲线变得陡峭。

如果隶属度接近特定值,则邻近分析函数十分有用。

输入值可以为整型值或浮点型正值。

邻近分析函数与高斯模糊隶属度函数类似,只是邻近分析函数的散度 (spread) 更小。

模糊邻近值图

模糊邻近值隶属度函数的变化。

语法

FuzzyNear(midpoint, spread)

名称 说明 数据类型

midpoint

模糊隶属度为 1 的用户定义值。

默认值为输入栅格值范围的中点。

Double

spread

定义邻近分析函数的散度。散度的范围通常在 0.001 到 1 之间,值越大,中点两侧值分布的幅度越大。

(默认值为 0.1)

Double

属性

名称 说明 数据类型

midpoint

(读取和写入)

定义隶属度函数中点的用户定义值。

Double

spread

(读取和写入)

用于定义成员从属函数的散度。值越大,从中点开始的分布越陡。

Double

代码示例

FuzzyNear 示例 1(Python 窗口)

演示如何在 Python 窗口下创建 FuzzyNear 类,并通过 FuzzyMembership 工具使用该类。

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("as_std", FuzzyGaussian(9, 0.1))
outFzyMember.save("c:/sapyexamples/fzynear")
FuzzyNear 示例 2(独立脚本)

使用 FuzzyNear 类执行 FuzzyMembership。

# Name: FuzzyNear_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 FuzzyNear algorithm object
midpoint = 11
spread = 0.2
myFuzzyAlgorithm = FuzzyNear(midpoint, spread)

# Run FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)

# Save the output
outFuzzyMember.save("c:/sapyexamples/fzynear2")