Анализ изменений с помощью LandTrendr (Image Analyst)

Доступно с лицензией Image Analyst.

Сводка

Оценивает изменения в значениях пикселов во времени с использованием метода обнаружения трендов нарушений и восстановлений на базе Landsat (LandTrendr) и создает растр анализа изменений, содержащий результаты модели.

Более подробно о работе LandTrendr.

Использование

  • Алгоритм LandTrendr – это метод определения изменения значений пикселов с течением времени. Он был разработан для временных рядов многоканальных изображений Landsat и используется для обнаружения изменений и классификации почвенно-растительного покрова до и после того, как это изменение произошло. Этот инструмент можно использовать с изображениями с поддерживаемых датчиков, а также для обнаружения изменений в одноканальных растрах. Например, этот инструмент можно использовать для обнаружения изменений во временных рядах растров NDVI для выявления событий вырубки лесов.

  • Алгоритм LandTrendr извлекает траекторию временного ряда для каждого пиксела во времени, используя информацию о значении пиксела из одного спектрального канала или спектрального индекса. Затем траектория сегментируется для фиксации и моделирования периодов отсутствия изменений, изменений и восстановления после изменений.

  • Результатом работы этого инструмента является информация о модели в виде растра анализа изменений, в котором каждый пиксел хранит набор информации о модели, описывающий историю изменения этого пиксела во времени. Растр анализа изменений - это многомерный растр, в котором каждый срез представляет собой многоканальный растр, состоящий из коэффициентов модели, среднеквадратичной ошибки (RMSE) и наблюдаемых изменений. Можно использовать в качестве входных данных для инструмента Определить изменения, используя растр анализа изменений, который создает растр, содержащий информацию об изменениях для каждого пиксела.

    В анализе есть один срез на каждый год.
  • Целью работы этого инструмента является извлечение изменений наблюдаемых объектов, поэтому идеальные входные многомерные изображения должны содержать результаты постоянных наблюдений за весь период времени и не должны содержать атмосферные искажения и помехи от сенсоров, а также облака и их тени. Лучше всего использовать данные, которые были нормализованы и могут быть замаскированы каналом QA, например, продукты Landsat Collection 1 Surface Reflectance с маской облаков.

  • Инструмент выполняет анализ одного изображения в год, и количество годовых срезов должно быть равно или больше значения, указанного в параметре Минимальное число наблюдений. Рекомендуется иметь данные как минимум за шесть лет.

    Если у вас есть ежемесячные, еженедельные или ежедневные данные, рекомендуется выбирать несколько изображений за каждый год (желательно из одного и того же сезона), удалять облака и тени облаков и объединять изображения для создания одного изображения, хорошо отражающего наблюдения. Если в качестве входного многомерного растра предоставляются ежемесячные, еженедельные или ежедневные данные, инструмент определит один срез для анализа на основе даты, ближайшей к дате, указанной в параметре Дата привязки.

  • Для восстановления какого-либо ландшафтного объекта после непостоянного изменения, такого как лесной пожар или нашествие насекомых, часто требуется время. Чтобы контролировать скорость восстановления, распознаваемую моделью, установите параметр Порог восстановления. Отдельный сегмент не может иметь скорость восстановления выше 1/пороговое значение восстановления.

  • Восстановление после изменения ландшафта может происходить в положительном или отрицательном направлении. Например, когда в ландшафте наблюдается исчезновение лесов, временной ряд значений индекса растительности показывает снижение значений индекса, а восстановление показывает постепенное увеличение значений индекса растительности или положительную тенденцию восстановления. Укажите направление тенденции восстановления с помощью параметра Восстановление имеет растущую тенденцию.

  • Чтобы изучить изменения, вычисленные в растре анализа выходных изменений, создайте диаграмму временного профиля. Сгенерируйте графики для различных местоположений в растре анализа изменений, используя канал Подходящее значение или канал Уклон, чтобы увидеть, где произошли изменения. Вы можете навести курсор на точки на графике, чтобы определить дату изменения.

  • Работа этого инструмента может занять много времени, и для хранения результатов потребуется значительное дисковое пространство. Чтобы сократить время обработки и уменьшить объем дискового пространства, рекомендуется выполнить следующие действия:

    • Отключите Пирамидные слои. Снимите отметку Построение пирамидных слоев на панели Параметры среды или установите для среды значение NONE в Python.
    • Установите для среды Сжатие на LERC и установите Максимальную ошибку на 0,000001.
    • Если вы планируете запускать инструмент Выявить изменения при помощи растра анализа изменений на выходе этого инструмента несколько раз, постройте многомерный транспонированный результат.

  • Этот инструмент создает набор многомерных растровых данных в облачном растровом формате (CRF). Другие форматы выходных данных в настоящее время не поддерживаются.

Синтаксис

AnalyzeChangesUsingLandTrendr(in_multidimensional_raster, {processing_band}, {snapping_date}, {max_num_segments}, {vertex_count_overshoot}, {spike_threshold}, {recovery_threshold}, {prevent_one_year_recovery}, {recovery_trend}, {min_num_observations}, {best_model_proportion}, pvalue_threshold, {output_other_bands})
ParameterОбъяснениеТип данных
in_multidimensional_raster

Входной многомерный набор растровых данных.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
processing_band
(Дополнительный)

Канал, используемый для сегментирования траекторий значений пикселов во времени. Выберите канал, который лучше всего фиксирует изменения объекта, за которым вы хотите наблюдать.

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

String
snapping_date
(Дополнительный)

Дата, используемая для выбора среза для каждого года во входном многомерном наборе данных. Будет выбран срез с датой, ближайшей к дате привязки. Этот параметр является обязательным, если входной набор данных содержит данные за полугодие.

Значение по умолчанию – 30.06 или 30 июня, примерно в середине календарного года.

String
max_num_segments
(Дополнительный)

Максимальное количество сегментов, которые можно подогнать к временному ряду для каждого пиксела. Значение по умолчанию равно 5.

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

Количество дополнительных вершин сверх max_num_segments + 1 может быть использовано для соответствия модели на начальном этапе идентификации вершин. Позже в процессе моделирования количество дополнительных вершин будет уменьшено до max_num_segments + 1. Значение по умолчанию равно 2.

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

Порог, используемый для подавления выбросов или аномалий на траектории значений пикселов. Значение должно находиться в диапазоне от 0 до 1, где 1 означает отсутствие демпфирования. По умолчанию – 0,9.

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

Пороговое значение восстановления в годах. Если у сегмента скорость восстановления выше, чем 1/recovery threshold, сегмент отбрасывается и не включается в модель временных рядов. Значение должно находиться в диапазоне от 0 до 1. По умолчанию – 0,25.

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

Указывает, будут ли исключены сегменты, для которых восстановление составляет один год.

  • ALLOW_ONE_YEAR_RECOVERYНе будут исключены сегменты, которые демонстрируют восстановление за один год.
  • PREVENT_ONE_YEAR_RECOVERYСегменты, восстановление которых составляет один год, будут исключены. Это значение по умолчанию.
Boolean
recovery_trend
(Дополнительный)

Указывает, имеет ли восстановление восходящий (положительный) тренд.

  • INCREASING_TRENDВосстановление имеет тенденцию к увеличению. Это значение по умолчанию.
  • DECREASING_TRENDВосстановление имеет тенденцию к снижению.
Boolean
min_num_observations
(Дополнительный)

Минимальное количество достоверных наблюдений, необходимых для выполнения построения. Количество лет во входном многомерном наборе данных должно быть равно или больше этого значения. По умолчанию это значение равно 6.

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

Лучшее значение пропорции модели. Во время процесса выбора модели инструмент вычислит значение p для каждой модели и выберет модель с наибольшим количеством вершин, сохраняя при этом наименьшее (наиболее значимое) значение p на основе этого значения пропорции. Значение 1 означает, что модель имеет наименьшее значение p, но может не иметь большого количества вершин. По умолчанию – 1,25.

Double
pvalue_threshold

Пороговое p-значение для выбираемой модели. После того, как вершины будут обнаружены на начальном этапе подбора модели, инструмент подберет каждый сегмент и вычислит p-значение, чтобы определить значимость модели. На следующей итерации модель уменьшит количество сегментов на единицу и пересчитает p-значение. Это будет продолжаться, и, если значение p меньше, чем значение, указанное в этом параметре, модель будет выбрана, и инструмент прекратит поиск лучшей модели. Если такая модель не выбрана, инструмент выберет модель с p-значением меньше, чем lowest p-value × best model proportion value. По умолчанию – 0,01.

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

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

  • INCLUDE_OTHER_BANDSДругие каналы будут включены. Информация о сегментации и вершинах из начального канала сегментации, указанной в параметре processing_band, также будет соответствовать остальным каналам в многоканальных изображениях. Результаты модели будут включать сначала канал сегментации, а затем оставшиеся каналы.
  • EXCLUDE_OTHER_BANDSДругие каналы не будут включены. Это значение по умолчанию.
Boolean

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

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

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

Выходной растр анализа изменений, содержащий информацию о модели из анализа LandTrendr.

Raster

Пример кода

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

В этом примере выполняется алгоритм LandTrendr для обнаружения изменений во временном ряду данных NDVI.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")


changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingLandTrendr(
	"Monthly_NDVI_30_years.crf","","",10,3,0.9,0.25, 'PREVENT_ONE_YEAR_RECOVERY', 
	'INCREASING_TREND',10,1.25,0.05, 'EXCLUDE_OTHER_BANDS')

# Save output
changeAnalysisRaster.save(r"C:\data\NDVI_ChangeAnalysis.crf")
AnalyzeChangesUsingLandTrendr, пример 2 (автономный скрипт)

В этом примере выполняется непрерывное обнаружение изменений во временном ряду изображений Landsat.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define input parameters
in_multidimensional = r"C:\data\Landsat_time_series.crf"
processing_band = "Band_4"
snapping_date = ""
max_num_segments = 10
vertex_count_overshoot = 3
spike_threshold = 0.9
recovery_threshold = 0.25
prevent_one_year_recovery = "PREVENT_ONE_YEAR_RECOVERY"
recovery_trend = "INCREASING_TREND"
min_num_observations = 6
best_model_proportion = 1.25
pvalue_threshold = 0.01
output_other_bands = "EXCLUDE_OTHER_BANDS"

# Execute
changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingCCDC(
	in_multidimensional, processing_band, snapping_date, max_num_segments,
	vertex_count_overshoot, spike_threshold, recovery_threshold, prevent_one_year_recovery,
	recovery_trend, min_num_observations, best_model_proportion, pvalue_threshold, output_other_bands)

# Save output
changeAnalysisRaster.save(r"C:\data\Landsat_ChangeAnalysis.crf")

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

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

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