Спутник ДЗЗ
2.94K subscribers
2.28K photos
132 videos
182 files
2.03K links
Человеческим языком о дистанционном зондировании Земли.

Обратная связь: @sputnikDZZ_bot
Download Telegram
ПРОСТЕЙШИЙ ИНДЕКС ОТКРЫТОЙ ПОЧВЫ
В видимой области спектра отражательная способность почвы выше, чем у растительности. Напротив, в NIR отражательная способность выше у растительности. На этом различии основан новый индекс, предназначенный для разделения этих классов поверхности. Индекс назван NDVISI (Normalized Difference VISible Index) и записывается как

NDVISI = (VIS − NIR)/(VIS + NIR),

где VIS = (Blue + Green + Red), а Blue, Green, Red и NIR – каналы Landsat или Sentinel-2.

Открытая почва имеет отрицательные или очень небольшие положительные значения NDVISI. Классы Urban и Water также имеют более низкие значения NDVISI, чем растительность, но их можно замаскировать при помощью других индексов (MNDWI – для воды, границы городов из OpenStreetMap – для Urban).

Ershov et al. (2022). Natural Afforestation on Abandoned Agricultural Lands during Post-Soviet Period: A Comparative Landsat Data Analysis of Bordering Regions in Russia and Belarus. Remote Sensing, 14(2), 322. https://doi.org/10.3390/rs14020322

#индексы
Дистанционное зондирование Земли (ДЗЗ)
Термины и сокращения, #термины
Организации: NASA, NOAA, DARPA и другие
Спектральные каналы Landsat 8/9 и Sentinel-2, MODIS
Спектральные сигнатуры

📚Основы дистанционного зондирования Земли, #основы
#индексы (спектральные, вегетационные, ...)
#комбинация каналов
#история ДЗЗ
Научно-популярные лекции по ДЗЗ
Лекции школы молодых учёных (ИКИ РАН): 2015-2017, 2018-2019, 2020-2021, 2022-2023
Рекомендованные практики мониторинга ЧС (UN-SPIDER)
Космическое образование в России: раз, два.

Поиск / Справочная информация
Общий каталог искусственных космических объектов (GCAT)
Спутники и съемочная аппаратура
Российские спутники ДЗЗ, #МВК
Информация о запусках
Орбиты спутников
#наблюдение за спутниками
Где взять научную литературу #книга
ИИ-поиск, патентный поиск, поиск наборов данных
#справка

Google Earth Engine
📚Учебник по Google Earth Engine
Проекты и примеры кода
Учебные ресурсы
Полезные ссылки
#GEE

📚🖥 Работа с пространственными данными в R

Спутниковые и другие данные#данные
Бесплатные спутниковые снимки, в т.ч. высокого разрешения
🛰 Sentinel-1, Радары на GEE
🛰 Sentinel-2
🛰 Landsat Collection 2, снимки Landsat
🛰 CBERS
#LULC — Land Use & Land Cover
#DEM
#границы
#nrt — Земля из космоса в реальном времени
Международная хартия по космосу и крупным катастрофам: список активаций
Погода: фактическая, реанализ, прогнозы
#ЧС

Тематические задачи
#лес, #AGB (надземная биомасса)
#пожары
#вода — водные объекты, наводнения, качество воды
#лед
#погода, #климат
#атмосфера
#археология
#сельхоз
#LST — температура земной поверхности

Типы данных
#гиперспектр
#SAR #InSAR
#лидар
#LST
#GNSSR
#ro
#SIF

Конференции, школы, семинары
#конференции

Конкурсы и чемпионаты
#конкурс

Новости военного ДЗЗ
#война #sigint #SSA

⭐️Все хештеги
ИНДЕКС ПОЖАРНОЙ ОПАСНОСТИ FWI
Индекс пожароопасной погоды Fire Weather Index (FWI) основан на погодных переменных и учитывает влияние влажности топлива и скорости ветра на возникновение и распространение лесного пожара. Чем выше FWI, тем более благоприятны метеорологические условия для возникновения пожара.

Всего в мире существует около полутора десятков погодных индексов пожарной опасности (в России принят индекс Нестерова). FWI разработан в Канаде и получил широкое распространение во всем мире. Так, его используют европейские системы информации о лесных пожарах EFFIS и GWIS .

Для оперативного мониторинга пожарной опасности можно применить:

* GEOS-5 (температура, влажность, скорость ветра) + GPM IMERG Late (осадки)
* GEOS-5 (температура, влажность, скорость ветра, осадки)

Первый продукт имеет самое высокое пространственное разрешение среди ему подобных (0.1°) и подходит для оценки текущей ситуации. Во втором продукте реализован прогноз FWI на 7 суток (при разрешении 0.25°). Продукты поставляются в файлах netCDF, FWI является одним из датасетов.

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

Вегетационный индекс — это число, рассчитываемое в результате операций со спектральными каналами снимка, которое характеризует интересующий исследователя параметр растительности.

Расчет многих вегетационных индексов базируется на двух наиболее стабильных участках кривой спектральной отражательной способности растений: на красную область спектра (0.62–0.75 мкм) приходится максимум поглощения солнечной радиации хлорофиллом, а на ближнюю инфракрасную область (0.75–1.3 мкм) — максимальное отражение энергии клеточной структурой листа. Таким образом, высокая фотосинтетическая активность, связанная, как правило, с большой фитомассой растительности, ведет к более низким значениям коэффициентов отражения в красной области и большим высоким — в ближней инфракрасной.

Оценить фотосинтетическую активность мы можем, сравнивая отражение в красном (Red) и в ближнем инфракрасном (NIR) каналах. Например, можно построить простое отношение каналов

SR = Red/NIR,

то есть значение каждого пикселя канала Red делится на значение соответствующего пикселя канала NIR. При больших объемах фотосинтезирующей биомассы SR будет иметь низкие значения, а при малых — высокие.

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

Вместо отношения каналов, для оценки фотосинтетической активности можно использовать разность: NIR - Red. Она будет тем больше, чем выше фотосинтетическая активность. Однако значения такого индекса от участка к участку будут сильно отличаться. Удобно, поэтому нормализовать эти значения, то есть разделить разность на сумму NIR + Red:

NDVI = (NIR - Red) / (NIR + Red).

Значения NDVI всегда находятся в диапазоне [-1; 1], что очень удобно для сравнения разных участков. Оказалось, что использование нормализованной разности между минимумом и максимумом отражений позволяет также уменьшить влияние различий в освещенности снимка, облачности, дымки, поглощение радиации атмосферой и пр.

NDVI расшифровывается как Normalized Difference Vegetation Index — нормализованный разностный вегетационный индекс. На сегодня, это самый популярный вегетационный индекс.

За десятилетия наблюдений создано множество индексов, для оценки различных параметров растительности. Поэтому, если нужно оценить что-либо, проще не выдумывать индекс самому, а поискать среди готовых. Вот два каталога индексов:

* Index DataBase: A database for remote sensing indices
* Alphabetical List of Spectral Indices

В первом содержатся все-все-все индексы, во втором — только самые популярные.

Примеры применения NDVI: https://www.geol.vsu.ru/ecology/ForStudents/4Graduate/RemoteSensing/Lection06.pdf

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

#основы #индексы
GEE-9. Индексы. Арифметика каналов

Код примера

“Работа, работа — иди в штат Дакота. Оттуда — в Небраску, с Небраски — на Аляску“. Если что, мы находимся в Небраске. Загрузим два снимка этого штата:

var image  = ee.Image("COPERNICUS/S2_SR/20220711T171859_20220711T172712_T14TNL");
var image2 = ee.Image("COPERNICUS/S2_SR/20220721T171859_20220721T172912_T14TNL");

Вычислим нормализованный разностный вегетационный индекс NDVI*ссылка*. Для этого есть специальная функция normalizedDifference()

var ndvi = image.normalizedDifference(['B8', 'B4']);

Чем выше NDVI, тем больше в пикселе здоровой (фотосинтезирующей) растительности. Водные объекты имеют отрицательный NDVI.

А теперь рассчитаем один из “водных” индексов — Normalized Difference Water Index (NDWI). Вычисляют его по формуле:

NDWI = (Green - NIR) / (Green + NIR).

По сути, это перевернутый NDVI. Вода в нем имеет высокие значения, а растительность — низкие (отрицательные). Вычислить его можно аналогично NDVI:

var ndwi = image.normalizedDifference(['B3', 'B8']);

Но мы не ищем легких путей, а рассчитаем NDWI так, будто не знаем о существовании normalizedDifference():

var ndwi = (image.select('B3').subtract(image.select('B8'))
.divide(image.select('B3').add(image.select('B8'))));

Математические операции с каналами задаются функциями: add (+), subtract (-), divide (/). Нетрудно догадаться, что есть еще multiply (*). Полный список операций здесь.

Добавим индексы к одному из снимков:

function addInd(image) {
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
var ndwi = image.normalizedDifference(['B8', 'B4']).rename('NDWI');
return image.addBands([ndvi, ndwi], null, true);
}

image = addInd(image);

Обратите внимание на переименование каналов с помощью rename(). Без этого, каналы будут иметь ничего не говорящие имена nd, nd_1, …

А теперь рассчитаем индекс EVI. Он использует сразу три канала, так что normalizedDifference() не поможет. Запись через add/subtract и т. п. будет слишком длинной. К счастью, в Earth Engine можно записать операции над каналами в виде математических выражений

var evi = image.expression(
'2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', {
'NIR': image.select('B5'),
'RED': image.select('B4'),
'BLUE': image.select('B2')
});

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

Можно выполнять математические операции над разными снимками. Например, вычислим разность значений каналов B8 (NIR):

var difB8 = (image2.select('B8')).subtract(image.select('B8'));

Создадим новый снимок из подготовленных нами индексов.

var newBands = [ndvi, ndwi, evi, difB8];
var image3 = ee.Image(newBands).rename(['NDVI','NDWI','EVI','DIF']);

Теперь у нас будет снимок, состоящий из каналов NDVI, NDWI, EVI и DIF.

Код примера

#GEE #индексы
GEE-10. Библиотека Awesome Spectral Indices

Код примера

В прошлый раз мы вычисляли вегетационные индексы. Есть способ сделать это еще проще — с помощью библиотеки Awesome Spectral Indices (документация).

Создадим коллекцию снимков Sentinel-2 L2A, покрывающих интересующий район (ROI — region of interest):

var col = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2021-06-01', '2021-09-01')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
.filter(ee.Filter.bounds(ROI))
.select('B.*');

Вычислим медиану коллекции и обрежем ее по границам ROI. Медиана коллекции — снимок, каналы которого являются медианами соответствующих каналов коллекции (вычисления в каждом канале происходят попиксельно). В итоге получим некий типичный летний снимок Небраски.

var image = col.median().clip(ROI);

Загружаем библиотеку Awesome Spectral Indices. Путь к ней указан в параметре функции require.

var spectral = require("users/dmlmont/spectral:spectral");

Awesome Spectral Indices — сторонняя библиотека. Она создана не разработчиками Earth Engine, а пользователем с ником dmlmont. Вы можете создать свою библиотеку и загрузить ее на GEE, но об этом поговорим позже. Сейчас же масштабируем значения пикселей.

var image = spectral.scale(image, "COPERNICUS/S2_SR");

Помните, у нас была функция applyScaleFactors для масштабирования значений пикселей? scale из библиотеки spectral делает то же самое.

Зададим параметры для расчета индексов. Мы хотим рассчитать NDVI, NDWI и EVI. Для этого понадобится несколько каналов и числовых констант.

Список спектральных индексов можно посмотреть здесь. В списке приведена формула, каждой букве которой мы сопоставим канал или число.

var parameters = {
"N": image.select("B8"),
"R": image.select("B4"),
"G": image.select("B3"),
"B": image.select("B2"),
"L": 1,
"g": 2.5,
"C1": 6,
"C2": 7.5
};

Вот формула для расчета EVI:

2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))

А вот как она выглядит в списке:

g * ((N - R) / (N + C1 * R - C2 * B + L))

Думаю, принцип понятен. Зеленый канал нужен нам для расчета NDWI.

spectral.computeIndex вычисляет индексы по списку и добавляет к снимку.

var image = spectral.computeIndex(image, ["NDVI","NDWI","EVI"], parameters);

Для GEE Python API есть несколько библиотек, реализующих расчет спектральных индексов.

#GEE #индексы