FuzzyNear (arcpy.sa)

Резюме

Задает функцию принадлежности нечеткого множества возле определенного значения, заданного пользователем как средняя точка с принадлежностью равной 1, с определенным разбросом, приближающимся к нулю.

Обсуждение

Инструмент, использующий объект FuzzyNear Fuzzy Membership (Принадлежность нечеткому множеству).

Уравнение нечеткой функции Near:

Уравнение нечеткой функции Near

Входные данные уравнения: разброс f1 и середина f2. Увеличение разброса делает кривую нечеткого множества круче.

Полезно использовать функцию Near, если принадлежность близка к заданному значению.

Входные значения могут быть положительными целочисленными значениями или положительными значениями с плавающей точкой.

Функция Near схожа с функцией Gaussian, только у нее более узкий разброс.

Диаграмма функции Fuzzy Near
Вариации функции принадлежности Fuzzy Near.

Синтаксис

FuzzyNear (midpoint, spread)
ПараметрОбъяснениеТип данных
midpoint

Определенное пользователем значение с нечетким множеством 1.

Средняя точка (Midpoint) является по умолчанию средней точкой диапазона значений входного растра.

Double
spread

Определяет разброс функции Near. Разброс варьируется в диапазоне от 0.001 до 1; чем выше его значение, тем гуще распределение от средней точки.

(Значение по умолчанию — 0.1)

Double

Свойства

СвойствоОбъяснениеТип данных
midpoint
(чтение и запись)

Заданное пользователем значением, определяющую среднюю точку для функцию принадлежности.

Double
spread
(чтение и запись)

Определяет разброс функции множества. Чем больше значение, тем больше будет крутизна распределения от середины.

Double

Пример кода

FuzzyNear. Пример 1 (окно Python)

Иллюстрирует создание класса FuzzyNear и его применение в инструменте FuzzyMembership в окне Python.

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 (автономный скрипт)

Выполняет FuzzyMembership с использованием класса FuzzyNear.

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

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)

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

Связанные темы

9/11/2013