Доступно с лицензией Image Analyst.
Сводка
Оценивает тренд для каждого пиксела вдоль измерения для одной или нескольких переменных в многомерном растре.
Использование
Приведем пример использования этого инструмента. У вас есть данные среднемесячной температуры океана за 40 лет, и вы хотите подогнать линию тренда для каждого пиксела, чтобы увидеть, где и как температура менялась с течением времени.
Поддерживаются следующие наборы многомерных растровых данных: netCDF, GRIB, HDF и CRF Esri. Также поддерживаются наборы многомерных данных мозаики.
Этот инструмент создает набор многомерных растровых данных в облачном растровом формате (CRF). Другие форматы выходных данных в настоящее время не поддерживаются.
По умолчанию многомерные выходные растровые данные сжимаются, тип сжатия – LZ77. Рекомендуется изменить этот тип сжатия на LERC и настроить Максимальную ошибку в зависимости от своих данных. Например, если вы ожидаете точность результатов анализа до трех знаков после запятой, используйте для Максимальной ошибки значение 0.001. Лучше избегать ненужных требований к точности, так как они увеличат время обработки и размер хранилища.
Существует три варианта линии тренда для выстраивания тренда к значениям переменных по размеру: линейный, полиномиальный и гармонический. Три варианта выстраивания тренда описаны ниже.
- Линейная – линейная линия тренда является наиболее подходящей прямой линией, которая используется для оценки простых линейных отношений. Линейный тренд выделяет скорость изменения, которая увеличивается или уменьшается с постоянной скоростью. Формула для линейной линии тренда выглядит следующим образом:
- y = значение переменной пиксела
- х = значение измерения
- β0 = y-перехват
- β1 = линейный уклон или скорость изменения
β1 > 0 указывает на растущий тренд
β1 < 0 указывает на убывающий тренд
- Гармоническая – гармоническая линия тренда – это периодически повторяющаяся криволинейная линия, которая лучше всего используется для описания данных, следующих циклической схеме, например сезонных изменений температуры. Формула для гармонической линии тренда выглядит следующим образом:
- y = значение переменной пиксела
- t = дата по Юлианскому календарю
- β0 = y-перехват
- ß1 = скорость изменения
- α, γ = коэффициенты межгодовых или внутригодовых изменений
- ω = i
- f = гармоническая частота
- Полиномиальная – полиномиальная линия тренда – это кривая, которая используется для данных с флуктуациями. В этом случае значение полиномиального порядка используется для указания максимального числа возникающих флуктуаций. Формула для полиномиальной линии тренда выглядит следующим образом:
- y = значение переменной пиксела
- х = значение измерения
- ß0, ß1, ß2, ß3, ..., ßn = константные коэффициенты
- Линейная – линейная линия тренда является наиболее подходящей прямой линией, которая используется для оценки простых линейных отношений. Линейный тренд выделяет скорость изменения, которая увеличивается или уменьшается с постоянной скоростью. Формула для линейной линии тренда выглядит следующим образом:
Выходной растр тренда, сгенерированный с помощью этого инструмента, используется в качестве входных данных для функции Прогнозирование с использованием растра тренда. Выходные данные представляют собой многомерный растр, в котором каждый срез является многоканальным растром, содержащим информацию о линии тренда. Если вы анализируете тренд для одной переменной в наборе данных, содержащем одно измерение (например, время), в выходном наборе данных будет один срез. При анализе одной переменной для набора данных, содержащего несколько измерений (например, время и глубину), каждый срез будет содержать информацию о тренде для каждого значения измерения, не включенного в анализ.
Для анализа линейного тренда выходные данные содержат трехканальные растры, где:
- Канал 1 = Уклон
- Канал 2 = Пересечение
- Канал 3 = Среднеквадратичная ошибка (RMSE) или ошибка вокруг линии наилучшего соответствия
Для анализа гармонического тренда количество каналов на выходе зависит от порядка гармонической частоты. Когда частота установлена на 1, в результате создается пятиканальный растр, где:
- Канал 1 = Уклон
- Канал 2 = Пересечение
- Канал 3 = Harmonic_sin1
- Канал 4 = Harmonic_cos1
- Канал 5 = RMSE
Когда частота установлена на 2, в результате создается семиканальный растр, где:
- Канал 1 = Уклон
- Канал 2 = Пересечение
- Канал 3 = Harmonic_sin1
- Канал 4 = Harmonic_cos1
- Канал 5 = Harmonic_sin2
- Канал 6 = Harmonic_cos2
- Канал 7 = RMSE
Для анализа полиномиального тренда количество каналов на выходе зависит от степени полинома. Полиномиальное выстраивание второго порядка создает четырехканальный растр, где:
- Канал 1 = Polynomial_2
- Канал 2 = Polynomial_1
- Канал 3 = Polynomial_0
- Канал 4 = RMSE
Полиномиальное выстраивание третьего порядка создает пятиканальный растр, где:
- Канал 1 = Polynomial_3
- Канал 2 = Polynomial_2
- Канал 3 = Polynomial_1
- Канал 4 = Polynomial_0
- Канал 5 = RMSE
Параметр Длина цикла гармонического тренда используется для указания количества и длины циклов, которые вы ожидаете увидеть в своих данных в течение дня или года. Например, если вы ожидаете, что ваши данные будут проходить через два цикла изменения в течение одного года, то продолжительность цикла составит 182,5 дня или 0,5 года. Если у вас есть данные о температуре, собранные через каждые три часа, и есть один цикл изменения в день, то продолжительность цикла будет составлять 1 день.
Параметр Частота используется для описания гармонической модели, чтобы соответствовать данным. Если частота установлена на 1, то для подгонки модели будет использоваться комбинация линейной и гармонической кривой первого порядка. Если частота равна 2, то для подгонки данных будет использоваться комбинация линейных гармонических кривых первого порядка и гармонических кривых второго порядка. Если частота равна 3, то для моделирования данных будет использоваться дополнительная гармоническая кривая третьего порядка и т. д.
В качестве дополнительных выходных данных может быть сгенерирована модельная статистика соответствия. Среднеквадратичная ошибка (RMSE), R-квадрат и значение p наклона тренда могут быть вычислены и отображены в окне Свойства выходного растра в разделе Статистика. Вы также можете отобразить статистику, отобразив выходной растр тренда в RGB и задав в качестве статистики красный, зеленый и синий каналы.
Синтаксис
GenerateTrendRaster(in_multidimensional_raster, dimension, {variables}, {line_type}, {frequency}, {ignore_nodata}, {cycle_length}, {cycle_unit}, {rmse}, {r2}, {slope_p_value})
Parameter | Объяснение | Тип данных |
in_multidimensional_raster | Входной многомерный набор растровых данных. | Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File |
dimension | Измерение, по которому будет извлечен тренд для переменной или переменных, выбранных в анализе. | String |
variables [variables,...] (Дополнительный) | Переменная или переменные, для которых будут рассчитываться тренды. Если переменная не задана, будет анализироваться первая переменная многомерного растра. | String |
line_type (Дополнительный) | Задает тип линии, которая будет использоваться со значениями пикселов в данном измерении.
| String |
frequency (Дополнительный) | Частота или номер порядка полинома для использования в подгонке тренда. Если тренд полиномиальный, этот параметр определяет порядок полинома. Если тренд гармонический, этот параметр задает число моделей, используемых для подгонки тренда. Этот параметр включается в анализ тренда только в том случае, если анализируемым измерением является время. Если значение параметра line_type - HARMONIC, значение по умолчанию - 1, то есть для подгонки модели будет использоваться гармоническая кривая первого порядка. Если значение параметра line_type - POLYNOMIAL, значение по умолчанию - 2, соответствующее полиному второго порядка. | Long |
ignore_nodata (Дополнительный) | Определяет, будут ли игнорироваться значения NoData в анализе.
| Boolean |
cycle_length (Дополнительный) | Длина периодической вариации для моделирования. Этот параметр требуется, когда для параметра line_type задано значение HARMONIC. Например, зеленый цвет листьев часто имеет один сильный цикл изменения в течение одного года, поэтому длина цикла составляет 1. Почасовые температурные данные имеют один сильный цикл изменения в течение одного дня, поэтому длина цикла равна 1 день. Длина по умолчанию для данных, которые варьируются в зависимости от годового цикла, составляет 1 год. | Double |
cycle_unit (Дополнительный) | Определяет единицу времени, которая будет использоваться для длины гармонического цикла.
| String |
rmse (Дополнительный) | Указывает, следует ли вычислить среднеквадратичную ошибку (RMSE) линии тренда.
| Boolean |
r2 (Дополнительный) | Указывает, следует ли вычислять статистику пригодности R-квадрата для линии тренда.
| Boolean |
slope_p_value (Дополнительный) | Указывает, следует ли вычислять статистику p-значения для коэффициента уклона линии тренда.
| Boolean |
Значение отраженного сигнала
Name | Объяснение | Тип данных |
out_multidimensional_raster | Выходной набор многомерных растровых данных в формате Cloud Raster Format (CRF). | Raster |
Пример кода
В этом примере вычисляется соответствие полиномиальному тренду для данных об изменении количества выпадающих осадков с течением времени.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
trendCoeffMultidim = arcpy.ia.GenerateTrendRaster("model_time_series.crf",
"StdTime", "precip", "POLYNOMIAL", 2, "DATA", None, '', "RMSE","R2", None)
# Save output
trendCoeffMultidim.save("C:/data/polynomial_trend_coefficients.crf")
В этом примере вычисляется соответствие полиномиальному тренду для данных об изменении тепературы и солености с течением времени.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
inFile = "C:/Data/ClimateVariables.crf"
dimensionName = "Depth"
variables = "salinity;temp"
trend_type = "LINEAR"
frequency = None
ignore_Nodata = "DATA"
cycle_length = None
cycle_unit = ''
rmse = "RMSE"
r2 = "R2"
slopeP = "NO_SLOPEPVALUE")
# Execute - fit a linear model for salinity and temperature
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_type, frequency, ignore_nodata, cycle_length,
cycle_unit, rmse, r2, slopeP)
# Save output
trendCoeffMultidim.save("C:/data/linear_trend_coefficients.crf")
В этом примере вычисляется соответствие гармоническому тренду временных рядов NDVI.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
inFile = "C:/data/ndvi_time_series.crf"
dimensionName = "StdTime"
variables = "ndvi"
trend_model = "HARMONIC"
harmonic_frequency = 1
ignore_Nodata = "DATA"
length_of_cycle = 1
cycle_unit = "YEARS"
rmse = "RMSE"
r_square = "NO_R2"
p_value = "NO_SLOPEPVALUE"
# Execute
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_model, harmonic_frequency, ignore_nodata,
length_of_cycle, cycle_unit, rmse,r_square,p_value)
# Save output
trendCoeffMultidim.save("C:/data/harmonic_trend_coefficients.crf")
Environments
Информация о лицензиях
- Basic: Требуется Image Analyst
- Standard: Требуется Image Analyst
- Advanced: Требуется Image Analyst