FuzzyGaussian (arcpy.sa)

Резюме

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

Обсуждение

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

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

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

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

Полезно использовать функцию Нечеткий Гауссов (Gaussian), если принадлежность близка к заданному значению.

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

Кривая Гаусса аналогична функции Ближайший объект, но имеет более узкое распределение.

График нечеткой гауссовой функции
Вариации нечеткой функции принадлежности Gaussian.

Синтаксис

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

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

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

Double
spread

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

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

Double

Свойства

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

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

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

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

Double

Пример кода

Пример FuzzyGaussian №1 (окно Python)

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

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("as_std", FuzzyGaussian(12, 0.1))
outFzyMember.save("c:/sapyexamples/fzymemb")
Пример FuzzyGaussian №2 (автономный скрипт)

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

# Name: FuzzyGaussian_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 FuzzyGaussian algorithm object
midpoint = 10
spread = 0.2
myFuzzyAlgorithm = FuzzyGaussian(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/fzygauss")

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

9/11/2013