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

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

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

  • LINEARПеременные значения пикселов будут расположены вдоль линии линейного тренда. Это значение по умолчанию.
  • POLYNOMIALПеременные значения пикселов будут расположены вдоль линии тренда полинома второго порядка.
  • HARMONICПеременные значения пикселов будут расположены вдоль линии гармонического тренда.
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

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

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_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")
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_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")

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

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

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