Доступно с лицензией Image Analyst.
Сводка
Оценивает изменения в значениях пикселов во времени с использованием метода обнаружения трендов нарушений и восстановлений на базе Landsat (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 (Дополнительный) | Указывает, будут ли исключены сегменты, для которых восстановление составляет один год.
| Boolean |
recovery_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 (Дополнительный) | Определяет, будут ли другие каналы включены в процесс сегментации.
| Boolean |
Значение отраженного сигнала
Name | Объяснение | Тип данных |
out_multidimensional_raster | Выходной набор многомерных растровых данных в формате Cloud Raster Format (CRF). Выходной растр анализа изменений, содержащий информацию о модели из анализа LandTrendr. | Raster |
Пример кода
В этом примере выполняется алгоритм 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")
В этом примере выполняется непрерывное обнаружение изменений во временном ряду изображений 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")
Environments
Информация о лицензиях
- Basic: Требуется Image Analyst
- Standard: Требуется Image Analyst
- Advanced: Требуется Image Analyst