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