FuzzySmall (arcpy.sa)
Резюме
Определяет функцию нечеткого множества с меньшими входными значениями, принадлежность которых приближается к единице.
Обсуждение
Инструмент, использующий объект FuzzySmall: Нечеткое множество (Fuzzy Membership).
Уравнение функции fuzzy Small следующее:
Входные данные уравнения: разброс f1 и середина f2. Увеличение разброса делает кривую нечеткого множества круче.
Функция Small может оказаться полезной, когда малые входные значения имеют более высокую принадлежность.
Входные значения могут быть положительными целочисленными значениями или положительными значениями с плавающей точкой.
Синтаксис
Параметр | Объяснение | Тип данных |
midpoint |
Определенное пользователем значение с нечетким множеством 0.5. Средняя точка (Midpoint) является по умолчанию средней точкой диапазона значений входного растра. | Double |
spread |
Определяет разброс функции Small. Разброс варьируется в диапазоне от 1 до 10; чем выше его значение, тем гуще распределение от средней точки. (Значение по умолчанию — 5) | Double |
Свойства
Свойство | Объяснение | Тип данных |
midpoint (чтение и запись) |
Заданное пользователем значением, определяющую среднюю точку для функцию принадлежности. | Double |
spread (чтение и запись) |
Определяет разброс функции множества. Чем больше значение, тем больше будет крутизна распределения от середины. | Double |
Пример кода
Иллюстрирует создание класса FuzzySmall и его применение в инструменте Нечеткое множество (FuzzyMembership) в окне Python.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("as_std", FuzzySmall(19, 8))
outFzyMember.save("c:/sapyexamples/fzysml")
Выполняет Нечеткое множество (FuzzyMembership), используя класс FuzzySmall.
# Name: FuzzySmall_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 FuzzySmall algorithm object
midpoint = 12
spread = 8
myFuzzyAlgorithm = FuzzySmall(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/fzysml2")