Создать растр тренда (Image Analyst)

Доступно с лицензией 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
(Дополнительный)

Задает тип анализа тренда для значений пикселов в данном измерении.

  • LINEARПеременные значения пикселов будут расположены вдоль линии линейного тренда. Это значение по умолчанию.
  • POLYNOMIALПеременные значения пикселов будут расположены вдоль линии тренда полинома второго порядка.
  • HARMONICПеременные значения пикселов будут расположены вдоль линии гармонического тренда.
  • MANN-KENDALLПеременные значения пикселей будут оцениваться с помощью теста тренда Mann-Kendall.
  • SEASONAL-KENDALLПеременные значения пикселей будут оцениваться с помощью теста тренда Seasonal-Kendall.
String
frequency
(Дополнительный)

Частота или номер порядка полинома для использования в подгонке тренда. Если тренд полиномиальный, этот параметр определяет порядок полинома. Если тренд гармонический, этот параметр задает число моделей, используемых для подгонки тренда.

Этот параметр включается в анализ тренда только в том случае, если анализируемым измерением является время.

Если значение параметра line_type - HARMONIC, значение по умолчанию - 1, то есть для подгонки модели будет использоваться гармоническая кривая первого порядка.

Если значение параметра line_type - POLYNOMIAL, значение по умолчанию - 2, соответствующее полиному второго порядка.

Long
ignore_nodata
(Дополнительный)

Определяет, будут ли игнорироваться значения NoData в анализе.

  • DATA Анализ будет включать все действительные пикселы по данному измерению и игнорировать любые пикселы NoData. Это значение по умолчанию.
  • NODATAРезультатом анализа будет значение NoData, если для этого пиксела по данному измерению есть хотя бы одно значение NoData.
Boolean
cycle_length
(Дополнительный)

Длина периодической вариации для моделирования. Этот параметр требуется, когда для параметра line_type задано значение HARMONIC. Например, зеленый цвет листьев часто имеет один сильный цикл изменения в течение одного года, поэтому длина цикла составляет 1. Почасовые температурные данные имеют один сильный цикл изменения в течение одного дня, поэтому длина цикла равна 1 день.

Длина по умолчанию для данных, которые варьируются в зависимости от годового цикла, составляет 1 год.

Double
cycle_unit
(Дополнительный)

Определяет единицу времени, которая будет использоваться для длины гармонического цикла.

  • DAYSЕдиницей измерения длины для гармонического цикла является день.
  • YEARSЕдиницей измерения длины для гармонического цикла является год. Это значение по умолчанию.
String
rmse
(Дополнительный)

Указывает, следует ли вычислить среднеквадратичную ошибку (RMSE) линии тренда.

  • RMSERMSE будет вычислена. Это значение по умолчанию.
  • NO_RMSERMSE не будет вычисляться.
Boolean
r2
(Дополнительный)

Указывает, следует ли вычислять статистику пригодности R-квадрата для линии тренда.

  • R2R-квадрат будет вычисляться.
  • NO_R2R-квадрат не вычисляется. Это значение по умолчанию.
Boolean
slope_p_value
(Дополнительный)

Указывает, следует ли вычислять статистику p-значения для коэффициента уклона линии тренда.

  • SLOPEPVALUEp-значение будет вычисляться.
  • NO_SLOPEPVALUEp-значение не вычисляется. Это значение по умолчанию.
Boolean
seasonal_period
(Дополнительный)

Задает единицы измерения времени, использующиеся для продолжительности сезонного периода при выполнении теста Seasonal-Kendall.

  • DAYSЕдиницей измерения продолжительности для сезонного периода является день. Это значение по умолчанию.
  • MONTHSЕдиницей измерения продолжительности для сезонного периода является месяц.
String

Значение отраженного сигнала

NameОбъяснениеТип данных
out_multidimensional_raster

Выходной набор многомерных растровых данных в формате Cloud Raster Format (CRF).

Raster

Пример кода

GenerateTrendRaster, пример 1 (окно Python)

В этом примере вычисляется соответствие полиномиальному тренду для данных об изменении количества выпадающих осадков с течением времени.

# 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")
GenerateTrendRaster, пример 2 (автономный скрипт)

В этом примере вычисляется соответствие полиномиальному тренду для данных об изменении температуры и солености при изменении глубины.

# 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")
GenerateTrendRaster, пример 3 (автономный скрипт)

В этом примере проверяется монотонный тренд, затем вычисляется соответствие гармоническому тренду по временным рядам 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")

Информация о лицензиях

  • Basic: Требуется Image Analyst
  • Standard: Требуется Image Analyst
  • Advanced: Требуется Image Analyst

Связанные разделы