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

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

Краткая информация

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

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

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

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

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

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

    There is one slice for each year in the analysis.
  • Целью этого инструмента является извлечение изменений в наблюдаемых объектах, поэтому идеальные входные многомерные изображения должны фиксировать постоянное наблюдение в течение времени и не должны включать атмосферные помехи или помехи от датчиков, облака или тени облаков. Лучше всего здесь использовать данные, которые были нормализованы и могут быть замаскированы при помощи канала QA, например, продукты Landsat Collection 1 Surface Reflectance с облачной маской.

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

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

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

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

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

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

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

  • Этот инструмент создает многомерный набор растровых данных в формате Cloud Raster Format (CRF). В настоящее время другие форматы выхода не поддерживаются.

Параметры

ПодписьОписаниеТип данных
Входной многомерный растр

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

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
Имя канала обработки
(Дополнительный)

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

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

String
Дата привязки
(Дополнительный)

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

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

String
Максимальное число сегментов
(Дополнительный)

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

Long
Порог превышения количества вершин
(Дополнительный)

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

Long
Пиковый порог
(Дополнительный)

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

Double
Порог восстановления
(Дополнительный)

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

Double
Исключить восстановление за год
(Дополнительный)

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

  • Отмечено – сегменты, для которых восстановление составляет один год, будут исключены. Используется по умолчанию.
  • Не отмечено – сегменты, для которых восстановление составляет один год, не будут исключены.

Boolean
Восстановление имеет растущую тенденцию
(Дополнительный)

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

  • Отмечено – восстановление имеет тенденцию к увеличению. Используется по умолчанию.
  • Не отмечено – восстановление имеет тенденцию к снижению.

Boolean
Минимальное число наблюдателей
(Дополнительный)

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

Long
Лучшая модель пропорции
(Дополнительный)

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

Double
Пороговое p-значение

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

Double
Включить другие каналы
(Дополнительный)

Указывает, будут ли включены в результаты другие каналы.

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

Boolean

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной многомерный растр

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

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

Raster

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})
ИмяОписаниеТип данных
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

Возвращаемое значение

ИмяОписаниеТип данных
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

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