TfMSLarge
Краткая информация
Задает функцию преобразования MSLarge, которая определяется по контролирующим форму параметрам множитель среднего и множитель стандартного отклонения, а также по верхнему и нижнему порогам, задающим диапазон, в котором применяется функция.
Более подробно о влиянии параметров на эту функцию преобразования
Обсуждение
Инструмент, который использует объект TfMSLarge, – это Пересчет по функции (Rescale by Function).
Если x – входное значение, для функции MSLarge есть два уравнения, в зависимости от результата произведения a * m:
Если x > a * m:
\(f(x) \space = \space 1 \space - \space (b \space * \space s) \space / \space (x \space - \space (a \space * \space m) \space + \space (b \space * \space s))\)
, где:
x = входное значение
m = среднее
s = стандартное отклонение
a = множитель среднего
b = множитель стандартного отклонения
Данные a and b множители являются входными параметрами.
Если x <= a * m:
\(f(x) \space = \space 0\)
Диапазон значений функции варьирует от 0 до 1, которые затем преобразуется к оценочной шкале.
Функция преобразования MSLarge наиболее удобна, когда предпочтение отдается большим входным значениям, которые будут получать более высокие выходные значения высот.
Результат функция преобразования MSLarge может быть похож на результат использовании функции Large, в зависимости от определения множителей среднего и стандартного отклонения.
Синтаксис
TfMSLarge(meanMultiplier, STDMultiplier, lowerThreshold, valueBelowThreshold, upperThreshold, valueAboveThreshold)
| Имя | Объяснение | Тип данных |
|---|---|---|
|
meanMultiplier |
Множитель для среднего значения входных значений в уравнении функции MSLarge.
(Значение по умолчанию — 1.0) |
Double |
|
STDMultiplier |
Множитель для стандартного отклонения входных значений в уравнении функции MSLarge.
(Значение по умолчанию — 1.0) |
Double |
|
lowerThreshold |
Задает начальное значение, к которому начинает применяться указанная функция преобразования. Входное значение, соответствующее Значение (Значение по умолчанию — None) |
Double |
|
valueBelowThreshold |
Указываемое пользователем значение, которое будет присвоено ячейкам, чьи значения ниже Значение (Значение по умолчанию — None) |
Variant |
|
upperThreshold |
Задает конечное значение,на котором заканчивается применение указанной функции преобразования. Входное значение, соответствующее Значение (Значение по умолчанию — None) |
Double |
|
valueAboveThreshold |
Указываемое пользователем значение, которое будет присвоено ячейкам, чьи значения выше Значение (Значение по умолчанию — None) |
Variant |
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
meanMultiplier (Чтение / Запись) |
Значение |
Double |
|
STDMultiplier (Чтение / Запись) |
Значение |
Double |
|
lowerThreshold (Чтение / Запись) |
Значение |
Double |
|
valueBelowThreshold (Чтение / Запись) |
Значение, которое будет присвоено ячейкам выходного растра, чьи значения ниже |
Variant |
|
upperThreshold (Чтение / Запись) |
Значение |
Double |
|
valueAboveThreshold (Чтение / Запись) |
Значение, которое будет присвоено ячейкам выходного растра, чьи значения превышают |
Variant |
Пример кода
Иллюстрирует создание класса TfMSLarge и его использование в инструменте RescaleByFunction в окне Python.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("biomass", TfMSLarge(1.2, 1.25, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfml1")
Иллюстрирует преобразование входных данных с помощью инструмента RescaleByFunction, использующего класс TfMSLarge.
# Name: TfMSLarge_Ex_02.py
# Description: Rescales input raster data using a MSLarge function and
# transforms the function values onto a specified evaluation scale.
# 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 = "biomass"
# Create the TfMSLarge object
meanmult = 1.2
stdmult = 1.25
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfMSLarge(meanmult, stdmult, lowerthresh, valbelowthresh, upperthresh, valabovethresh)
# Set evaluation scale
fromscale = 1
toscale = 10
# Run RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)
# Save the output
outRescale.save("c:/sapyexamples/rescaletfml2")