Пересчет по функции (Spatial Analyst)
Краткая информация
Изменяет масштаб значений входного растра посредством применения выбранной функции преобразования, а затем преобразования полученных значений в заданной непрерывной шкале оценки.
Использование
Основное преимущество от использования этого инструмента, по сравнению с другими методами переклассификации, состоит в более высоком уровне контроля над тем, как переклассифицируются входные значения:
- Принимает и напрямую обрабатывает непрерывные входные значения, не требуя группировки значений по категориям.
- Позволяет применять ко входным данным линейные и нелинейные непрерывные функции.
- Изменяет масштаб входных значений по непрерывной оценочной шкале значений в формате чисел с плавающей точкой.
Просмотр тематического словаря по данному инструменту может помочь в понимании следующих положений.
-
Перемасштабирование входных данных по непрерывной шкале концептуально является двух-шаговым процессом:
- Применить заданную функцию к значениям входного растра.
- Линейно трансформировать значения функции к заданной оценочной шкале. В прогрессивной оценочной шкале, минимальные и максимальные значения функции установлены на заданные значения минимума (От масштаба (From scale)) и максимума (До масштаба (To scale)) оценочной шкалы, соответственно. Тем не менее, оценочная шкала может быть также реверсирована в регрессивную шкалу.
На следующем рисунке показан пример графика функции Power (Степень) для введения в общую концепцию и терминологию, связанную с применением функции преобразования.
Входной диапазон данных в данном примере составляет от 3000 до 5000. Самое низкое значение во входном растре установлено на значение Нижний порог (Lower threshold), а самое высокое – на Верхний порог (Upper threshold) (если смотреть на ось х), с функцией Power (Степень) ограниченной (подогнанной к) порогами(ам). Форморегулирующие параметры определяют форму функции--такие, как Сдвиг входных данных (Input shift) и Экспонента (Exponent) для функции Power (Степень)--что позволяет вам контролировать начало функции и крутизну её роста. Полученные значения функции от функции Power (Степень) затем линейно преобразуются к оценочной шкале для присвоения выходных значений. На графике выше, оценочная шкала от 1 до 10 была определена с использованием параметров От масштаба (From scale) и До масштаба (To scale), как это можно видеть на оси у.
По умолчанию минимальное значение Входного растра (Input raster) присваивается значению Нижнего порога (Lower threshold), а максимальное значение – значению Верхнего порога (Upper threshold).
По умолчанию, заданная функция ограничена (подогнана к) нижним и верхним порогами и, если возможно, с использованием значений Входного растра (Input raster). Как функция вписывается между нижним и верхним порогами, зависит от конкретных функций преобразования используемых следующими способами:
- Линейная и Симметричная Линейная функции, по определению, являются подогнанными, так как минимум и максимум функций установлены на минимум (нижний порог) и максимум (верхний порог) Входного растра (Input raster).
- Подогнанные версии Экспоненциальной и Логарифмической функции применяются к значениям Входного растра (Input raster).
- Многие параметры, насколько возможно, выводятся из Входного растра (Input raster) (например, Середина (Midpoint), Фактор (Factor) и Сдвиг входных данных (Input shift)) для получения наилучшего варианта функций: Gaussian, Near, Small, MSSmall, Large, MSLarge, Power, Logistic Growth и Logistic Decay.
-
Когда значения Нижнего порога (Lower threshold) и Верхнего порога (Upper threshold) введены, применяются следующие взаимодействия:
- Если входная ячейка имеет значение меньшее, чем значение Нижнего порога (Lower threshold), то оно присваивается значению, устанавливаемому в параметре Значение ниже порога (Value below threshold).
- Если входная ячейка имеет значение большее, чем значение Верхнего порога (Upper threshold), то оно присваивается значению, устанавливаемому в параметре Значение выше порога (Value above threshold).
- Все значения ячеек, включая и между значениями Нижнего порога (Lower threshold) и Верхнего порога (Upper threshold), будут присвоены соответствующей оценочной шкале на основе значения функции, f(x). В некоторых случаях, когда форморегулирующий параметр (например, Разброс (Spread) и Экспонента (Exponent)) введён, выходной растр может не иметь никаких ячеек приписанных к значениям От масштаба (From scale) или До масштаба (To scale).
По умолчанию, параметры, определяющие вид функции (например, Разброс (Spread) или Базовый коэффициент (Base factor)) рассчитываются так, чтобы наилучшим образом подогнать (ограничить) функцию к минимуму и максимуму Входного растра (Input raster). Однако, форморегулирующие параметры могут быть изменены для уточнения подгонки функции для предпочтения взаимодействия явления со значениями критерия. Если значение задано для любого форморегулирующего параметра, полученная функции, в сочетании со значениями нижнего и верхнего порогов, будут использованы при изменении масштаба значений Входного растра (Input raster); подогнанная версии функции не будет использоваться.
От масштаба (From scale) и До масштаба (To scale) определяют верхнее и нижнее значения непрерывной оценочной шкалы. Наименьшее значение функции присваивается значению, установленному для От масштаба (From scale), и наибольшее значение функции присваивается значению, установленному для До масштаба (To scale). Все значения функции между ними присваиваются соответствующим оценочным значениям.
Оценочная шкала может быть установлена в диапазоне от низкого до высокого (например, от 1 до 10) или от высокого к низкому (например, от 10 до 1).
-
Значения Значение ниже порога (Value below threshold) и Значение выше порога (Value above threshold) присваиваются всем ячейкам, которые имеют входное значение ниже и выше порога соответственно. Данные значения присваиваются напрямую финальному выходному растру и данные ячейки не рассматриваются в процессе выполнения функции преобразования.
В диалоговом окне инструмента, обычно когда Нижний порог (Lower threshold) или Верхний порог (Upper threshold) введены, форморегулирующие параметры – параметры, определяющие форму функции, например, Разброс (Spread) или Базовый коэффициент (Base factor) – автоматически перевычисляются. Тем не менее, когда форморегулирующий параметр введён, значения Нижнего порога (Lower threshold) и Верхнего порога (Upper threshold) не изменяются автоматически, и, если Нижний порог (Lower threshold) или Верхний порог (Upper threshold) впоследствии изменятся, то введённый форморегулирующий параметр (и любые другие связанные форморегулирующие параметры) сохранит изменённые установки и он не будет пересчитан.
Форморегулирующие параметры для функции (например, Разброс (Spread) или Базовый коэффициент (Base factor)) и нижний и верхний пороги основываются на статистике, рассчитанной для текущих обрабатываемых настроек среды: экстента (extent), размера ячейки (cell size) и растра привязки (snap raster). Если ни один из них не установлен, используется статистика, ассоциированная с полным экстентом входного растра.
В диалоговом окне инструмента, если входной растр не имеет действительной статистики для расчета форморегулирующих параметров или для определения порогов, то эти параметры будут пустыми и вы получите предупреждающее сообщение. Для заполнения параметров, вам потребуется нажать кнопку Вычислить статистику (Calculate Stats) для вычисления статистики при текущих установках среды. Значение Нижнего порога (Lower threshold) будет приведено к минимальному значению в пределах экстента обработки и значение Верхнего порога (Upper threshold) – к максимальному значению, с соответствующим образом определёнными значениями форморегулирующего параметра. Вы можете не иметь актуальной статистики при следующих условиях:
- Параметры среды: экстент обработки, размер ячейки и растр привязки – установлены до запуска диалогового окна инструмента.
- Входной растр не имеет вычисленной статистики.
В окне инструмента, если параметры среды: экстент обработки, размер ячейки или растр привязки изменятся после того, как введён входной растр и задана функция, то параметры функции могут быть установлены пустыми (параметр без значения). Нажмите кнопку Вычислить статистику (Calculate Stats), для повторного заполнения параметров и просмотра значений для нового экстента. Если Нижний порог (Lower threshold), Верхний порог (Upper threshold) или любой форморегулирующий параметр изменены вводом значения, то инструмент отследит эти изменения параметров. Если экстент обработки изменяется, то значения для данных параметров будут оставаться такими, какими были установлены после нажатия кнопки Вычислить статистику (Calculate Stats).
Множество функций может быть применено к различным диапазонам входного растра. Для этого, функции могут быть сцеплены посредством запуска инструмента Пересчёт по функции (Rescale by Function) множество раз, в первый раз с указанием функции преобразования для определенного диапазона входных значений и, затем, последующих запусков с применением другой функции к другим диапазонам значений. Полученные выходное растры затем комбинируются, например
- Запустите инструмент Пересчёт по функции (Rescale by Function) с применением линейной функции к значениям в диапазоне от 1500 до 3200 и установите значения ниже и выше порогов на 0.
- Запустите инструмент второй раз для того же входного растра, на этот раз, с применением Экспоненциальной функции к значениям, превышающим 3200 и меньшим, чем 5000, и установите значения выше и ниже порогов на 0.
- Сложите два полученных выходных растра вместе с помощью инструмента Плюс (Plus).
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Входной растр для изменения масштаба. | Raster Layer |
transformation_function (дополнительно) |
Определяет непрерывную функцию для преобразования входного растра. Классы функции преобразования используются для задания типа функции преобразования. Типами классов функции преобразования являются
Какую из функций преобразования следует использовать, зависит от того, какая функцию лучше всего отражает взаимодействие предпочтений явления со входными значениями. Чтобы лучше понять, как нижний и верхний пороги влияют на выходные значения, для получения дополнительной информации о параметрах, которые контролируют пороговые значения, см. Взаимодействие нижнего и верхнего порогов для выходных значений (The interaction of the lower and upper thresholds on the output values). Формы классов функции преобразования:
Функцией преобразования по умолчанию является TfMSSmall. Параметры по умолчанию для функции преобразования включают следующие:
| Transformation function |
from_scale (дополнительно) |
Начальное значение выходной оценочной шкалы. Значение from_scale не может быть эквивалентно значению to_scale. Значение from_scale может быть ниже или выше значения to_scale (например, от 1 до 10 или от 10 до 1). Значение должно быть положительным и может быть либо целым, либо вещественным числом двойной точности. Значение по умолчанию равно 1. | Double |
to_scale (дополнительно) |
Конечное значение выходной оценочной шкалы. Значение to_scale не может быть эквивалентно значению from_scale. Значение to_scale может быть ниже или выше значения from_scale (например, от 1 до 10 или от 10 до 1). Значение должно быть положительным и может быть либо целым, либо вещественным числом двойной точности. Значение по умолчанию равно 10. | Double |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster |
Выходной перемасштабированный растр. Выходными данными будет растр значений с плавающей точкой от (или внутри) оценочных значений from_scale и to_scale. | Raster |
Пример кода
Этот пример создает растр, значения которого перемасштабированы с помощью функции MSSmall.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("elevation", TfMSSmall(1.25, 1.5, "#", "#", 4000, "NoData"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfms1")
Демонстрирует использование этого инструмента на данных высот, где низкие местоположения являются более предпочтительными, чем высокие. Местоположения с высотой выше 4000 метров установлены на значение NoData.
# Name: TfMSSmall_Ex_02.py
# Description: Rescales input raster data using a MSSmall 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 = "elevation"
# Create the TfMSSmall object
meanmult = 1.25
stdmult = 1.5
lowerthresh = "#"
valbelowthresh = "10"
upperthresh = 4000
valabovethresh = "NoData"
myTfFunction = TfMSSmall(meanmult, stdmult, 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/rescaletfms2")