FuzzyLinear (arcpy.sa)
Резюме
Задает функцию принадлежности нечеткого множества на основе линейного преобразования между указанным пользователем минимальным значением, имеющим значение принадлежности равное 0, и заданное пользователем максимальным значением, с принадлежностью равной 1.
Обсуждение
Инструмент, использующий объект FuzzyLinear Fuzzy Membership (Принадлежность нечеткому множеству).
Линейная функция полезна в тех случаях, когда меньшие значения принадлежности линейно растут в сторону больших значений при положительном наклоне, в случае отрицательного наклона имеет место обратная ситуация.
Линейная функция не работает с отрицательными числами.
Синтаксис
Параметр | Объяснение | Тип данных |
minimum |
Значение, которое будет иметь номер элемента в множестве, равный 0. Если значение minimum меньше, чем значение maximum, линейная функция будет иметь положительный уклон. Если значение minimum больше, чем значение maximum, линейная функция будет иметь отрицательный уклон. (Значение по умолчанию — Minimum of the input) | Double |
maximum |
Значение, которое будет иметь номер элемента множества, равно 1. Если значение maximim больше, чем значение minimum, линейная функция будет иметь положительный уклон. Если значение maximum меньше, чем значение minimum, линейная функция будет иметь отрицательный уклон. (Значение по умолчанию — Maximum of the input) | Double |
Свойства
Свойство | Объяснение | Тип данных |
minimum (чтение и запись) |
Значение, которое будет иметь номер элемента в множестве, равный 0. Если значение minimum меньше, чем значение maximum, линейная функция будет иметь положительный уклон. Если значение minimum больше, чем значение maximum, уклон будет иметь отрицательный уклон. | Double |
maximum (чтение и запись) |
Значение, которое будет иметь номер элемента множества, равный 1. Если значение maximim больше, чем значение minimum, линейная функция будет иметь положительный уклон. Если значение minimum меньше, чем значение maximum, уклон будет отрицательным. | Double |
Пример кода
Иллюстрирует создание класса FuzzyLinear и его применение в инструменте FuzzyMembership в окне Python.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outFzyMember = FuzzyMembership("as_std", FuzzyLinear(12, 16))
outFzyMember.save("c:/sapyexamples/fzyline")
Выполняет FuzzyMembership с использованием класса FuzzyLinear.
# Name: FuzzyLinear_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 FuzzyLinear algorithm object
min = 19
max = 22
myFuzzyAlgorithm = FuzzyLinear(min, max)
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute FuzzyMembership
outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm)
# Save the output
outFuzzyMember.save("c:/sapyexamples/fzyline2")