TfNear (arcpy.sa)
Краткая информация
Задает функцию преобразования Near, которая определяется по контролирующим форму параметрам midpoint и spread, а также по верхнему и нижнему порогам, задающим диапазон, в котором применяется функция.
Более подробно о влиянии параметров на эту функцию преобразования
Обсуждение
Инструмент, который использует объект TfNear, – это Пересчет по функции (Rescale by Function).
Уравнение функции преобразования Near:
Входные данные для уравнения – это: f1, spread и f2, midpoint.
Диапазон значений функции варьирует от 0 до 1, которые затем преобразуется к оценочной шкале.
Значение spread определяет скорость уменьшения значений функции преобразования от средней точки. Если средняя точка находится между верхним и нижним порогом, spread определяет скорость уменьшения значений функции от toScale до fromScale. Чем больше значение, тем больше наклон функции у средней точки. Другими словами, при уменьшении значения распределения, значения функции преобразования медленнее достигает средней точки. Выбор соответствующего значения распределения – это субъективный процесс, который зависит от диапазона входных значений. Следует начинать со значения 0.1, предлагаемого по умолчанию. Как правило, значения варьируют в диапазоне от 0,01 до 1 или от 0,001 до 1, соответственно. По умолчанию spread вычисляется так, чтобы функция соответствовала минимуму и максимуму из входного набора данных.
Функция Near удобна, если вы хотите присвоить наибольшие выходные значения высот (предпочтение высоких значений) ячейкам с входными значениями, находящимися вблизи к указанному (предпочтение), уменьшающимися по мере удаления входных значений от данного значения.
Функция Near схожа с функцией преобразования Gaussian, только у Near более узкий разброс.
Синтаксис
Параметр | Объяснение | Тип данных |
midpoint |
Задаваемое пользователем значение, которое определяет высшую точку кривой функции Near. Если значение midpoint находится между нижнем и верхним порогом, входные местоположения ячеек с соответствующим значением получит в выходном растре значение шкалы оценки toScale. (Значение по умолчанию — None) | Double |
spread | Задает разброс функции преобразования Near, управляющее крутизной затухания функции от средней точки. Разброс варьируется в диапазоне от 0.001 до 1; чем выше его значение, тем круче падение от средней точки. (Значение по умолчанию — None) | Double |
lowerThreshold | Задает начальное значение, к которому начинает применяться указанная функция преобразования. Входное значение, соответствующее lowerThreshold, присваивается шкале оценки fromScale в выходном растре. Входные значения меньшее lowerThreshold присваиваются значению valueBelowThreshold и не рассматриваются в диапазоне значений функции. Значение lowerThreshold должно быть меньше, чем upperThreshold. (Значение по умолчанию — None) | Double |
valueBelowThreshold | Указываемое пользователем значение, которое будет присвоено ячейкам, чьи значения ниже lowerThreshold. Значение valueBelowThreshold может быть числом с плавающей точкой, целым числом или NoData. В диалоговом окне инструмента вокруг NoData не используются кавычки; однако в скрипте необходимо указывать "NoData" (с кавычками). (Значение по умолчанию — None) | Variant |
upperThreshold | Задает конечное значение,на котором заканчивается применение указанной функции преобразования. Входное значение, соответствующее upperThreshold, присваивается шкале оценки toScale в выходном растре. Входные значения выше upperThreshold присваиваются значению valueAboveThreshold и не рассматриваются в диапазоне значений функции. Значение lowerThreshold должно быть меньше, чем upperThreshold. (Значение по умолчанию — None) | Double |
valueAboveThreshold | Указываемое пользователем значение, которое будет присвоено ячейкам, чьи значения выше upperThreshold. Значение valueAboveThreshold может быть числом с плавающей точкой, целым числом или NoData. В диалоговом окне инструмента вокруг NoData не используются кавычки; однако в скрипте необходимо указывать "NoData" (с кавычками). (Значение по умолчанию — None) | Variant |
Свойства
Свойство | Объяснение | Тип данных |
midpoint (чтение и запись) |
Значение midpoint для функции преобразования, задающее высшую точку кривой функции. | Double |
spread (чтение и запись) |
Значение spread для функции преобразования, управляющее крутизной затухания функции от средней точки. | Double |
lowerThreshold (чтение и запись) |
Значение lowerThreshold для функция преобразования, задающее начальное значение, к которому начинает применяться функция преобразования. | Double |
valueBelowThreshold (чтение и запись) |
Значение, которое будет присвоено ячейкам выходного растра, чьи значения ниже lowerThreshold. | Variant |
upperThreshold (чтение и запись) |
Значение upperThreshold для функция преобразования, задающее конечное значение, к которому начинает применяться функция преобразования. | Double |
valueAboveThreshold (чтение и запись) |
Значение, которое будет присвоено ячейкам выходного растра, чьи значения превышают upperThreshold. | Variant |
Пример кода
Иллюстрирует создание класса TfNear и его использование в инструменте RescaleByFunction в окне Python.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("solar", TfNear(180, 0.002, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfne1")
Иллюстрирует преобразование входных данных с помощью инструмента RescaleByFunction, использующего класс TfNear.
# Name: TfNear_Ex_02.py
# Description: Rescales input raster data using a Near function and
# transforms the function values onto a specified evaluation scale.
# Requirements: Spatial Analyst Extension
# Author: esri
# 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 = "solar"
# Create the TfNear object
midpoint = 180
spread = 0.002
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfNear(midpoint, spread, lowerthresh, valbelowthresh, upperthresh, valabovethresh)
# Set evaluation scale
fromscale = 1
toscale = 10
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)
# Save the output
outRescale.save("c:/sapyexamples/rescaletfne2")