Доступно с лицензией Image Analyst.
Сводка
Оценивает тренд для каждого пиксела вдоль измерения для одной или нескольких переменных в многомерном растре.
Использование
Приведем пример использования этого инструмента. У вас есть данные среднемесячной температуры океана за 40 лет, и вы хотите подогнать линию тренда для каждого пиксела, чтобы увидеть, где и как температура менялась с течением времени.
Поддерживаются следующие многомерные наборы растровых данных: Облачный растр (CRF), многомерные наборы данных мозаики или многомерные растровые слои, созданные из файлов netCDF, GRIB или HDF.
Этот инструмент создает набор многомерных растровых данных в облачном растровом формате (CRF). Другие форматы выходных данных в настоящее время не поддерживаются.
По умолчанию многомерные выходные растровые данные сжимаются, тип сжатия – LZ77. Однако рекомендуется изменить тип сжатия на LERC и настроить максимальное значение ошибки, основываясь на ваших данных. Например, если вы ожидаете, что результаты анализа будут иметь точность до трех знаков после запятой, используйте 0,001 для максимального значения ошибки. Лучше избегать ненужных требований к точности, так как они увеличат время обработки и размер хранилища.
Этот инструмент может использоваться для размещения данных вдоль линейной, гармонической или полиномиальной линии тренда, или его можно использовать для определения тренда с помощью теста Mann-Kendall или Seasonal-Kendall.
Тесты Mann-Kendall и Seasonal-Kendall используются для определения наличия монотонного тренда в данных. Они являются непараметрическими, т.е. они не учитывают определенное распределение данных. Тест Mann-Kendall не учитывает корреляцию рядов или сезонные эффекты. Если данные являются сезонными, лучше использовать тест Seasonal-Kendall.
Если инструмент используется для выполнения теста Mann-Kendall или Seasonal-Kendall, выходными данными является пятиканальный растр:
- Канал 1 = склон Сена
- Канал 2 = p-значение
- Канал 3 = оценка Mann-Kendall (S)
- Канал 4 = S-дисперсия
- Канал 5 = Z-оценка
Выходные данные теста Mann-Kendall или Seasonal-Kendall могут использоваться для определения пикселей в многомерных временных рядах, которые имеют статистически значимый тренд. Эту информацию можно использовать вместе с анализом линейного, гармонического или полиномиального тренда для получения значимых трендов во временных рядах. Вы можете сгенерировать маску, включающую пиксели со значимыми p-значениями, применить маску к многомерному растру и использовать этот многомерный растр с маской как входные данные для инструмента, чтобы выполнить анализ линейного, гармонического или полиномиального тренда.
Существует три варианта линии тренда для выстраивания тренда к значениям переменных по размеру: линейный, полиномиальный и гармонический. Три варианта выстраивания тренда описаны ниже.
- Линейная – линейная линия тренда является наиболее подходящей прямой линией, которая используется для оценки простых линейных отношений. Линейный тренд выделяет скорость изменения, которая увеличивается или уменьшается с постоянной скоростью. Формула для линейной линии тренда выглядит следующим образом:
- 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}, {seasonal_period})
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 |
seasonal_period (Дополнительный) | Задает единицы измерения времени, использующиеся для продолжительности сезонного периода при выполнении теста Seasonal-Kendall.
| String |
Значение отраженного сигнала
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_model = "LINEAR"
ignore_Nodata = "DATA"
# Execute - fit a linear model for salinity and temperature
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_model, None, ignore_nodata)
# 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_test = "SEASONAL_KENDALL"
trend_model = "HARMONIC"
harmonic_frequency = 1
ignore_Nodata = "DATA"
length_of_cycle = 365.25
rmse = RMSE
r_square = NO_r2
p_value = NO_SLOPEPVALUE
# Test for monotonic trend
trendtest = GenerateTrendRaster(inFile, dimensionName, variables,
trend_test, '', ignore_Nodata, '', '', '', '', '', 'MONTHS')
# Execute
trendCoeffMultidim = GenerateTrendRaster(inFile, dimensionName,
variables, trend_model, harmonic_frequency, ignore_nodata,
length_of_cycle,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