Спутник ДЗЗ
3.2K subscribers
2.48K photos
140 videos
191 files
2.22K links
Человеческим языком о дистанционном зондировании Земли.

Обратная связь: @sputnikDZZ_bot
加入频道
Vegetation Health Index
3. Объединение коллекций и вычисление VHI

Теперь, зная VCI и TCI, мы можем объединить эти коллекции для расчета VHI. Последний вычисляется по формуле:

VHI = α * VCI + (1 - α) * TCI,

то есть является взвешенным средним значений VCI и TCI. Повышенная температура и плохое состояние растительности (низкий NDVI) являются признаками наступившей засухи, что вполне логично.

Для простоты, примем α = 0.5.

Объединяем коллекции изображений VCI и TCI, и вычисляем VHI, как показано здесь

var filter = ee.Filter.equals({leftField:'system:time_start', rightField:'system:time_start'});
var join = ee.Join.saveFirst('match');

var bothCol = ee.ImageCollection(join.apply({primary: VCI,
secondary: TCI,
condition: filter}))
.map(function(img) { return img.addBands(img.get('match')).set('date', img.date().format('YYYY_MM_dd')) });

var VHI = bothCol.map(function(img){
return img.addBands(
img.expression('a/2 + b/2', {
'a': img.select('VCI'),
'b': img.select('TCI'),
}).rename('VHI'));
}
);


Код выполняет левое внешнее объединение коллекций VCI и TCI с помощью функции ee.Join.saveFirst(). В результате создается коллекция, содержащая пары изображений VCI и TCI, у которых совпадают свойства 'system:time_start'.

К полученной коллекции применяется функция map(). Она используется для добавления к каждому изображению нового канала (ee.Image.addBands()), содержащего совпадающее изображение из другой коллекции. Используем ee.Image.get() для получения совпадающего изображения.

После этого выполняем еще один map(), чтобы вычислить VHI с помощью ee.Image.expression().

В итоге, получим коллекцию изображений, каждое из которых содержит каналы VCI, TCI и VHI.

Код скрипта

Индексы VCI и TCI предложены Феликсом Коганом в работе: Kogan, F. N. (1995). Application of vegetation index and brightness temperature for drought detection. Advances in Space Research, 15(11), 91–100. https://doi.org/10.1016/0273-1177(95)00079-t Там же была предложена формула для вычисления VHI, хотя название индекса Коган придумал позже.

Первоначально, индексы использовались для наблюдений, сделанных прибором AVHRR — Advance Very High Resolution Radiometer, летавшим на спутниках семейств GOES, METEOSAT, MTSAT и DMSP. Сейчас эти данные находятся на странице STAR - Global Vegetation Health Products. Они являются глобальными, начинаются с 1981 года, имеют пространственное разрешение 4 км (Very High Resolution того времени!) и используются в виде 7-суточного композита.

#GEE #индексы
Soil-Adjusted Vegetation Index (SAVI)

Нормализованный разностный вегетационный индекс NDVI — это удобная и универсальная мера оценки состояния растительности, но — не идеальная. Когда поле покрыто редкой растительностью, NDVI может колебаться, даже если состояние растительности не меняется. Это происходит потому что почва на поле меняет яркость в зависимости от того, насколько она влажная или сухая.

Напомним формулу NDVI

NDVI = (NIR – Red) / (NIR + Red),

где NIR и Red обозначают отражательную способность в ближнем инфракрасном и в красном диапазонах соответственно.

Предположим, что 20% поля покрыто растительностью, а остальные 80% представляют собой открытую почву 1️⃣. После дождя эта почва станет влажной и, как следствие, более темной. При этом отражение в ближнем инфракрасном и красном диапазонах снизится примерно на одну и ту же величину 2️⃣. В результате NDVI поля увеличится. Напротив, сухая почва становится светлее, и это приводит к уменьшению NDVI 3️⃣.

Итак, исходный NDVI поля равнялся 0,21. После дождя он увеличился до 0,25, а для высохшей почвы упал до 0,17. И все это — без изменения состояния растительности!

Посмотрим, как “исправить” NDVI.

Изменение отражательной способности поля при изменении цвета почвы приводит к тому, что отражение в инфракрасном и в красном диапазонах увеличиваются или уменьшаются примерно на одинаковые величины. Предположим, что эти изменения действительно одинаковы, и обозначим величину изменения через ε. Тогда, с изменением отражательной способности почвы, NDVI будет равен

NDVI = ((NIR + ε) – (Red + ε)) / ((NIR + ε) + (Red + ε))

или

NDVI = (NIR – Red) / (NIR + Red + 2ε).

ε зависит от доли открытой почвы на поле и от цвета почвы. Если поле в основном покрыто растительностью и почвы не видно, то ε будет мало по сравнению с (NIR+RED), так что им можно пренебречь и мы получим обычную формулу NDVI. То есть, когда почвы не видно, NDVI не чувствителен к изменениям ее цвета.

Нас же интересует ситуация, когда почву видно хорошо...

#индексы #сельхоз #основы
SAVI. Часть 2

Вернемся к формуле

NDVI = (NIR – Red) / (NIR + Red + 2ε).

‍Обратите внимание, что ε не влияет на числитель NDVI. Если бы мы использовали в качестве индекса разность (NIR – RED), у нас бы не было проблем с изменением цвета почвы. Однако, возникла бы другая сложность: новый вегетационный индекс будет меняться в зависимости от освещенности. Когда общая интенсивность света составляет 50% от нормы (например, из-за умеренной облачности), (NIR – RED) тоже будет на 50% меньше. Отсюда и необходимость нормализации индекса путем деления на общую интенсивность (NIR + RED).

Чтобы уменьшить чувствительность формулы к ε, добавим в знаменатель константу L:

Стабилизированный NDVI = (NIR – Red) / (NIR + Red + 2ε + L).

‍‍Разберемся с тем, как выбрать L. Если L будет очень велико по сравнению с NIR и RED, то формула для вычисления стабилизированного NDVI превратится в

(NIR – Red) / (NIR + Red + 2ε + L) ≈ (NIR – Red) / L

Таким образом, для больших L чувствительность к ε исчезает. Зато формула сводится к масштабированной версии (NIR – RED), которая, как мы знаем, не работает.

Напротив, при L=0, мы вернемся к формуле NDVI, которая слишком чувствительна к ε.

Существует компромисс: выберем L достаточно большим, чтобы знаменатель был чувствителен к ε, но не слишком большим, чтобы не исчез эффект нормализации от деления на (NIR + RED).

Для конкретного региона можно определить свое значение L, откалибровав его на основе реальных данных. Однако в целом исследователи пришли к выводу, что L=0,5 создает вегетационный индекс, значительно менее чувствительный к цвету почвы, чем NDVI, и при этом достаточно нормализованный, чтобы общие изменения в интенсивности света не привели к существенному изменению индекса.

‍Осталось сделать последний шаг, чтобы сделать новый индекс удобным. Мы хотим, чтобы его значения находилась в интервале между –1 и 1. Увеличив знаменатель на L, мы добились того, что максимальное значение индекса (теоретически встречающееся при NIR=1, RED=0) стало равно 1/1+L. Если мы хотим, чтобы максимальное значение было равно 1, нам нужно умножить числитель на (1+L):

SAVI = (1 + L)(NIR – Red) / (NIR + Red + L), где L = 0,5

Новый индекс называется Soil-Adjusted Vegetation Index или SAVI. Он предложен в работе: Huete, A. R. (1988). A soil-adjusted vegetation index (SAVI). Remote Sensing of Environment, 25(3), 295–309. https://doi.org/10.1016/0034-4257(88)90106-x

SAVI варьируется в пределах от –1 до 1, малочувствителен к цвету почвы, нечувствителен к общей интенсивности света и увеличивается пропорционально состоянию и плотности растительности. Он лучше NDVI подходит для районов с разреженной растительностью, где цвет почвы может меняться.

#индексы #сельхоз #основы
SAVI. Часть 3

‍Сравним NDVI и SAVI.

На рисунке 1️⃣ показана разница между NDVI и SAVI при различной плотности растительности. При редкой и умеренной растительности NDVI имеет значительный разброс значений из-за чувствительности к цвету почвы. SAVI имеет гораздо меньший разброс. Разброс NDVI уменьшается, когда плотность растительности высока и почва закрыта растительным покровом.

Кроме малой чувствительности к цвету почвы, существует еще одно преимущество, которое SAVI приобретает благодаря дополнительному члену L: порог насыщения SAVI выше, чем NDVI.

Вспомним формулу NDVI

NDVI = (NIR – Red) / (NIR + Red),

Когда Red приближается к нулю, NDVI будет расти вместе с NIR, асимптотически приближаясь к единице. Все большее увеличение NIR оказывает все меньшее влияние на NDVI, то есть происходит насыщение.

Рассмотрим эффект от добавления L к знаменателю

SAVI = (1 + L)(NIR – Red) / (NIR + Red + L)

SAVI тоже достигнет насыщения, но это произойдет при большем значении NIR. Чтобы понять как это работает, зададим RED = 0 и сделаем L гораздо больше, чем NIR. В таком случае, в знаменателе формулы будет преобладать L, а вся формула сводится к (1+L)NIR/L. Она линейно возрастает с увеличением NIR, выпуклости графика нет, а значит, нет и насыщения 2️⃣. Таким образом, точка насыщения увеличивается вместе с увеличением L.

‍Таким образом, дополнительный член в знаменателе позволяет SAVI регистрировать увеличение плотности растительности даже после того, как NDVI вошел в насыщение.

Подведем итоги:

1. SAVI, как правило, используется вместо NDVI в ситуации, когда видна значительная часть почвы и возможны изменения ее яркости.
2. SAVI не имеет однозначного превосходства перед NDVI: смягчая эффекты яркости почвы, в нем нарушается нечувствительность индекса к общей интенсивности света (за счет добавления L).
3. Меньшая чувствительность SAVI к насыщению позволяет использовать этот индекс для оценки состояния густой растительности.

#индексы #сельхоз #основы
⭐️ СТРАНЫ / КОМПАНИИ / СПУТНИКИ

Страны: #австралия #германия #индия #иран #испания #канада #китай #португалия #россия #США #япония и т. п.
Но:
#корея обозначает Северную и Южную Кореи
#РБ — Республика Беларусь
#UK — Великобритания

Компании: #planet #maxar

Спутники: #landsat #sentinel1 #sentinel2

⭐️ ДЗЗ

Методы и приборы
#альтиметр
#гиперспектр — гиперспектральная оптическая съемка
#лидар
#оптика — мультиспектральная оптическая съемка
#радиометр — микроволновой радиометр
#dnb — ночная съёмка (day / night band)
#SIF — солнечно-индуцированная флуоресценция хлорофилла
#ro — радиозатменный метод
#SAR — радарная съемка
#InSAR — радарная интерферометрия
#LST — съемка в тепловом инфракрасном диапазоне
#GNSSR — ГНСС-рефлектометрия
#sigint — радиоэлектронная разведка

Виды орбит: #ГСО — геостационарная, #VLEO — сверхнизкая

#основы — обучающие материалы по ДЗЗ
#обучение курсы, обучающие сервисы и т. п.
#история — в основном, история ДЗЗ
#индексы — спектральные индексы
#комбинация — комбинации каналов

Данные
#данные — коллекции данных ДЗЗ, наземных данных, карты и т.п.
#датасет — набор данных для машинного обучения
Дополнительные хештеги, описывающие данные:
#LULC — Land Use & Land Cover
#осадки
#SST — Sea Surface Temperature
#nrt — (near real time) изображения, получаемые в режиме, близком к реальном времени
#debris — космический мусор
#границы — административные границы
#DEM — цифровая модель рельефа (ЦМР)
#keyhole — рассекреченные снимки разведспутников

Литература, справочная информация
#справка — спектральные каналы, орбиты спутников, поиск данных и т.п.
#обзор
#книга — текст книги прикреплён к сообщению.
#журнал — статьи по ДЗЗ, опубликованные в выпуске журнала
Дополнительные хештеги:
#наблюдение — ресурсы для наблюдения спутников и орбиты спутников
#космодромы

#конференции — анонс конференций/семинаров/школ, посвященных ДЗЗ и анализ их материалов.
#конкурсы — анонс конкурсов/чемпионатов/олимпиад.
#МВК — материалы заседаний Межведомственной комиссии (МВК) по использованию результатов космической деятельности.

#снимки — поучительные (хоть в чем-то интересные) снимки, первые снимки

Программные инструменты / Языки
#нейронки #софт #GEE #R #tool #python #ГИС
#ИИ #FM — Foundation Model (Remote Sensing Foundation Model)

⭐️ ОТРАСЛИ / ТЕМАТИЧЕСКИЕ ЗАДАЧИ

#археология #атмосфера #вода #война #засуха #климат #лед #лес #нефть #океан #оползни #наводнение #пожары #почва #растительность #севморпуть #сельхоз #снег
#AGB — надземная биомасса
#ЧС — мониторинг стихийных бедствий и катастроф
#GHG — парниковые газы
Отдельные газы: #CO2 #NO2
#энергетика — космическая энергетика
#SSA — Space Situational Awareness
Метод картографирования цветения рапса

(d’Andrimont et al., 2020) предложили метод картографирования цветения масличного рапса на основе временных рядов оптических данных Sentinel-2 (S2) и радарных данных Sentinel-1 (S1). Район исследования включал в себя северные регионы Германии (N) и южную Баварию (S). Метод использует нормализованный разностный индекс жёлтого цвета (Normalized Difference Yellow Index, NDYI) для S2 (помните, как выглядит цветущий рапс на снимках из космоса?) и локальный минимум коэффициентов обратного рассеяния в поляризации VV для S1. Пик цветения определялся с точностью от 1 до 4 суток. При определении цветения по данным S1 наблюдалась систематическая задержка на 1 сутки, по сравнению с результатами по S2.

📸 Пространственно-усредненные временные ряды S2 NDYI для всех участков на севере и юге Германии с медианными датами начала, пика и конца цветения, полученными по наземным наблюдениям. Пунктирная красная линия соответствует медианной дате начала цветения (BBCH61), пунктирная синяя линия — медианной дате пика цветения (BBCH65), а пунктирная розовая линия — медианной дате окончания цветения (BBCH69).

#сельхоз #индексы
GEE-44. qualityMosaic или самый зелёный пиксель Беларуси

Самым зелёным будем считать пиксель с максимальным значением вегетационного индекса NDVI, который используется как показатель количества зелёной растительности. Необходимо найти максимальное значение NDVI в заданной области в течение календарного года, установить день года, в который оно достигается, и, наконец, построить карту.

Областью исследований стала Республика Беларусь. Выбор спутниковых данных в задаче не важен. Мы используем снимки Landsat 8.

Основная работа заключается в: 1) создании коллекции изображений l8, 2) добавлении к снимкам коллекции слоя NDVI, а также слоя, содержащего номер дня года (doy), в который получен снимок. Самую важную работу выполняет функция qualityMosaic:

var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterBounds(AOI)
.filterDate(start_date, end_date);

function addNDVI(image) {
var ndvi = image.normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');
return image.addBands(ndvi);
}

function addDOY(image) {
var img_date = ee.Date(image.date());
var img_doy = ee.Number.parse(img_date.format('D'));
return image.addBands(ee.Image(img_doy).rename('doy').toInt());
}

var greenest = l8.map(addNDVI).map(addDOY).qualityMosaic('NDVI');


Функция ImageCollection.qualityMosaic(qualityBand) формирует из коллекции изображений мозаику (итоговое изображение), состоящую из пикселей с наивысшей оценкой качества, то есть с максимальными значениями слоя qualityBand. У нас в качестве такого слоя выступает 'NDVI', а значит мозаика будет состоять из максимальных (за год) значений NDVI в данном пикселе.

При этом qualityMosaic включает в мозаику не только значения канала qualityBand, но и значения всех остальных каналов снимка с наивысшей оценкой качества. Таким образом, в итоговое изображение попадет и канал 'doy' — день года, в который достигается максимум NDVI.

1️⃣ RGB-мозаика в естественных цветах, 2️⃣ Максимумы NDVI, 3️⃣ Дни года, когда достигается максимум NDVI.

🌍Код скрипта GEE

Мы уже рассказывали о создании мозаик здесь и здесь. Вот ещё немного полезной информации:

🔗 Создание мозаики из коллекции изображений Sentinel-2, где качество пикселя основано на оценке вероятности облаков
🔗 Пример использования qualityMosaic для PythonAPI от Q. Wu

#GEE #индексы
This media is not supported in your browser
VIEW IN TELEGRAM
rsi — загрузка данных из STAC и расчет спектральных индексов [ссылка]

Пакет rsi (от repeated spatial infelicities) предоставляет пользователю:

- Интерфейс к проекту Awesome Spectral Indices project, который содержит список спектральных индексов в виде таблицы tibble.
- Метод эффективного вычисления этих спектральных индексов.
- Метод загрузки данных с любого сервера STAC, с дополнительными настройками для загрузки популярных данных Landsat, Sentinel-1 и Sentinel-2 с бесплатных и публичных серверов STAC.
- Метод объединения нескольких растров, содержащих различные наборы данных, в единый растровый стек.

Функция spectral_indices() возвращает таблицу спектральных индексов.

Функция get_stac_data() позволяет загружать изображения из любого доступного каталога STAC. Например, можно загрузить композит каналов Landsat с маской облачности:

aoi <- sf::st_point(c(-74.912131, 44.080410))
aoi <- sf::st_set_crs(sf::st_sfc(aoi), 4326)
aoi <- sf::st_buffer(sf::st_transform(aoi, 5070), 1000)

landsat_image <- get_stac_data(
aoi,
start_date = "2022-06-01",
end_date = "2022-06-30",
pixel_x_size = 30,
pixel_y_size = 30,
asset_names = c("red", "blue", "green"),
stac_source = "https://planetarycomputer.microsoft.com/api/stac/v1/",
collection = "landsat-c2-l2",
mask_band = "qa_pixel",
mask_function = landsat_mask_function,
output_filename = tempfile(fileext = ".tif"),
item_filter_function = landsat_platform_filter,
platforms = c("landsat-9", "landsat-8")
)


Для популярных данных, например для снимков Landsat, есть отдельные функции, где большинство параметров настроено по умолчанию:

landsat_image <- get_landsat_imagery(
aoi,
start_date = "2022-06-01",
end_date = "2022-06-30",
output_filename = tempfile(fileext = ".tif")
)


По умолчанию, данные загружаются из Microsoft's Planetary Computer API.

Теперь на основе полученных каналов снимков Landsat рассчитаем спектральные индексы при помощи calculate_indices():

indices <- calculate_indices(
landsat_image,
available_indices,
output_filename = tempfile(fileext = ".tif")
)


Наконец, в rsi есть утилита для эффективного объединения растров, содержащих различные данные об одном и том же месте, в VRT, что позволяет программам типа GDAL рассматривать эти отдельные источники данных как единый файл.

Например, мы можем объединить наши снимки Landsat с полученными индексами:

raster_stack <- stack_rasters(
c(landsat_image, indices),
tempfile(fileext = ".vrt")
)


#R #индексы
Новый индекс для обнаружения пластика на суше

Коллектив исследователей под руководством Дженны Гуффогг (Jenna Guffogg) из Royal Melbourne Institute of Technology University предложил спектральный индекс для обнаружения пластика на пляжах.

Индекс пластикового мусора на пляжах, Beached Plastic Debris Index (BPDI), опирается на данные каналов коротковолнового ИК-излучения (SWIR) спутника WorldView-3 компании Maxar.

Beached Plastic Debris Index = SWIR3 * (SWIR2 - SWIR4) / (SWIR2 + SWIR4)

Чтобы обосновать преимущества нового индекса перед существующими, на пляже в южной части Гипсленда (шт. Виктория, Австралия) разместили 14 пластиковых мишеней площадью около двух квадратных метров каждая. Мишени были сделаны из пластика разных типов и имели размер меньше, чем пиксель спутника (около 3 м²).

Спутниковые изображения, полученные с помощью BPDI, сравнивали с тремя существующими индексами, два из которых были разработаны для обнаружения пластика на суше, а один —на воде. BPDI превзошел все три индекса, которые либо с трудом различали загрязнённые пластиком пиксели на пляже, либо ошибочно классифицировали тень и воду как пластик.

1️⃣ Спектральные каналы VNIR и SWIR WorldView-3.
2️⃣ Спектральные сигнатуры пластиковых мишеней.

#индексы
Вегетационные индексы в виноградарстве

В работе (Giovos et al., 2021) собрано более 90 вегетационных индексов, используемых в виноградарстве

Индексы рассчитывались по снимкам, полученных со спутников, самолетов и БПЛА. Чаще всего используется индекс NDVI. Больше всего публикаций, посвященных применению вегетационных индексов в виноградарстве — у ученых Испании и Италии. Наиболее распространенными приложениями данных дистанционного зондирования (ДЗЗ) являются мониторинг и оценка водного стресса и разграничение хозяйственных зон (management zones) виноградников. Среди платформ ДЗЗ преобладают БПЛА.

#сельхоз #индексы