Спутник ДЗЗ
3.11K subscribers
2.43K photos
139 videos
187 files
2.19K links
Человеческим языком о дистанционном зондировании Земли.

Обратная связь: @sputnikDZZ_bot
加入频道
Список всех данных Google Earth Engine

🖥 В репозитории Earth-Engine-Catalog собран список всех пространственных данных, хранящихся Earth Engine. Список представлен в виде файлов TSV (значения, разделенные табуляцией) или JSON. Обновляется ежедневно.

Учитываются только данные из официального каталога Earth Engine:

📚 Каталог пространственных данных Google Earth Engine

Напомним, что существует еще 🖥 Awesome-gee-community-catalog (https://gee-community-catalog.org/), данные в который добавляются сообществом пользователей Earth Engine.

#данные #GEE
Фильтрация и классификация в Earth Engine

В статье есть два любопытных примера использования Google Earth Engine:

Сглаживание временных рядов NDVI с помощью фильтра Савицкого-Голая (Savitzky–Golay)
Классификация полей сельскохозяйственных культур (попиксельная) методом “случайного леса” (random forest)

Фильтр Савицкого-Голая реализован в виде функции библиотеки OpenEarthEngineLibrary, о которой мы еще поговорим.

Мы обычно не используем классификацию в Earth Engine, предпочитая выполнять ее в R по полученным из EE снимкам. Но кому-то приведенный пример может пригодиться.

📸 Исходный временной ряд NDVI (ndvi) и ряд, сглаженный фильтром Савицкого-Голая (ndvi_sg).

#GEE
Open Earth Engine Library (OEEL) — коллекция полезных функций для Google Earth Engine (GEE).

Для использования OEEL с GEE JavaScript API достаточно импортировать ее код

var oeel=require('users/OEEL/lib:loadAll')


а затем использовать нужные функции.

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

var oeel=require('users/OEEL/lib:loadAllSF')


Отметим, что эта версия не должна использоваться для отладки.

Чтобы получить информацию о функциях, добавьте в конец кода следующую строку

print('List of functions used',oeel.refs())


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

OEEL существует в виде Python-пакета.

Установка:

pip install oeel


Импорт:

from oeel import oeel


🖥 Репозиторий кода OEEL
🖥 Код примеров

#GEE #python
Open Earth Engine Library (продолжение)

OEEL насчитывает десятки функций. Вот некоторые из них, относящиеся к объектам Image, ImageCollection, Feature и FeatureCollection:

🌍 Image

arrayDTW — возвращает DTW (dynamic time warping) bмежду двумя изображениями, для каждого пикселя
inverseDistanceInterpolation — пространственная интерполяция методом IDW (inverse distance weighting)
kriging — пространственная интерполяция с помощью кригинга
propertyAsBand — создает новый слой (канал) изображения из свойств этого изображения
semivariogram — вычисляет семивариограмму

🌍 ImageCollection

OtsuThreshold — рассчитывает порог Оцу (Otsu) для коллекции
SavatskyGolayFilter — фильтрация снимков коллекции фильтром Савицкого-Голая (Savitsky-Golay). В названии функции содержится ошибка)
enhancingCollection — алгоритм, расширяющий коллекцию, добавляя к ней новую коллекцию. Каждое изображение первой коллекции сливается с изображением второй коллекции
fromSingleImage —  загрузка изображения как коллекции
medoid — вычисляет медоид коллекции
movingWindow — фильтрация коллекции методом “скользящего окна”

🌍 Feature

asLabel — генерирует функцию, преобразующую Feature в аннотацию на изображении

🌍 FeatureCollection

fromList — преобразует List в FeatureCollection

#GEE #python
Фильтр Савицкого-Голая для коллекции MODIS

Фильтр Савицкого-Голая (Savitzky-Golay) без использования внешних библиотек в Google Earth Engine, реализованный Гвидо Лемуаном (Guido Lemoine). Код можно взять здесь или здесь.

#GEE
Данные ALOS-2 PALSAR-2 ScanSAR Level 2.2

Данные японского спутникового радара PALSAR-2 ScanSAR Level 2.2 находятся в открытом доступе с ноября 2022 года. Тем не менее, доступных данных было довольно мало, и лишь в последнее время в этом деле наметился некоторый прогресс.

РALSAR-2 (Phased Array type L-band Synthetic Aperture Radar-2) — радар L-диапазона (1257,5 МГц), работающий на спутнике ALOS-2. Режим ScanSAR (обзорный) обеспечивает пространственное разрешение 60 м и 100 м для полос обзора 490 км и 350 км соответственно. Режим Stripmap (непрерывный) имеет разрешение 10 м, 6 м и 3 м с полосами обзора 70 км, 70 км и 50 км соответственно. Режим Spotlight (прожекторный) обеспечивает разрешение 1 м x 3 м для участка 25 км x 25 км.

Спутник ALOS-2 находится на солнечно-синхронной орбите с наклонением 97,9° на высоте 628 км с периодом 97 минут. Периодичность данных ALOS-2 составляет 14 суток.

В настоящее время продукты ScanSAR Level 2.2 постепенно выкладываются на платформах:

* JAXA G-Portal
* Google Earth Engine
* Amazon Web Service (AWS)
* NASA Alaska Satellite Facility Data Search (обещают к концу 2024 года)
* Tellus (в будущем)

Доступны данные с августа 2014 года по настоящее время. Данные обновляются ежемесячно. Самые свежие снимки — примерно месячной давности.

Данные PALSAR-2 ScanSAR Level 2.2 представляют собой нормализованные данные обратного рассеяния обзорного режима наблюдения с шириной полосы обзора 350 км. Снимки прошли ортокоррекцию и коррекцию рельефа с использованием цифровой модели поверхности ALOS World 3D (AW3D30).

Данные хранятся в виде 16-битных цифровых чисел (digital numbers, DN). DN можно преобразовать в нормализованное обратное рассеяния в децибелах (γ0) по формуле: γ0 = 10*log10(DN2) - 83,0 дБ

📸 Художественное изображение спутника ALOS-2 (источник)

#данные #SAR #GEE
Покрытие данными ALOS-2 PALSAR-2 ScanSAR Level 2.2

Рассмотрим покрытие данными на примере территории Китая и его окрестностей в 2024 году:

🌍 Код в GEE

Данных пока довольно мало: за 11 месяцев 2024 года набралось 718 снимков. Большая часть территории Китая снята всего 2–3 раза, но есть два исключения. Одно из них — Тайвань, второе предлагаем угадать самостоятельно. Район этот в нынешнем году снимали более 100 раз.

С данными 2021–2023 гг. ситуация примерно такая же, даже немного хуже. Впрочем, раньше не было и этого.

#GEE #SAR
This media is not supported in your browser
VIEW IN TELEGRAM
GEE-46. Категоризация NDVI

Допустим, нам нужно разделить значения NDVI на несколько категорий или классов. Пусть, для определенности, категорий будет пять: 1 – [-1; 0.2), 2 – [0.2; 0.4), 3 – [0.4; 0.6), 4 – [0.6; 0.8), 5 – [0.8; 1].

Создадим изображение, состоящее из 5 слоев. Значение каждого слоя равно верхнему порогу категории: 0.2, 0.4, 0.6, 0.8, 1.

var thresholds = [0.2, 0.4, 0.6, 0.8, 1];
var image = ee.Image(thresholds);


Выполним проверку условия ndvi.lt(image) и получим на выходе изображение из пяти бинарных слоев. Каждый слой будет равен 0 или 1, в зависимости от того, выполнено ли условие — попало ли значение NDVI в ту или иную категорию.

Номер категории будет равен сумме единиц

var zones = ndvi.lt(image).reduce('sum');


Но при этом нумерация категорий будет идти сверху вниз: 1 – [0.8; 1], 2 – [0.6; 0.8), …

Перевернем ее, вычитая номер категории из числа категорий

var zones = ee.Image(thresholds.length + 1).subtract(ndvi.lt(image).reduce('sum')).rename('zone');


В конце мы переименовали полученный слой в zone.

Рассмотренный прием подойдет для категоризации любого однослойного изображения, а не только NDVI.

🌍 Код примера

В GEE есть и другие способы категоризации изображений — при помощи CART и where.

#GEE
Open Geocomputing

Библиотека OEEL для работы с Google Earth Engine являются частью проекта Open Geocomputing (https://www.open-geocomputing.org). Цель проекта — создание бесплатных и открытых программных инструментов для использования в науках о Земле:

🖥 Программные инструменты, разработанные в рамках Open Geocomputing

Один из таких инструментов — расширение браузера Google Chrome Open Earth Engine extension. Оно добавляет ряд полезных функций в редактор кода Google Earth Engine:

* ночная тема
* добавление кэша для библиотеки OEEL
* открытие редактора кода при нажатии на иконку (или документации OEEL, если редактор кода уже открыт).
* кнопки (стрелки) для вставки сигнатуры функции из документации в редактор кода
* кнопка для загрузки изображений путем перетаскивания
* возможность автоматического экспорта.
* Изображения Planet Labs (поиск / заказ / передача в GEE) с помощью Planet API.
* проверка возможности совместного использования активов (assets) при получении ссылки.
* добавляет кнопку для запуска всех задач
* добавляет поддержку Plotly в редакторе кода и приложении EE App (включая события)
* открывает скрипт в новой вкладке при двойном клике на нем
* настройка шрифта редактора кода (в т.ч. размера)
* терминал для отладки
* копировать JSON при двойном щелчке на кнопке JSON
* консоль с красным заголовком при сбое
* добавлен интерфейс Python
* ссылка на внешнюю документацию
* возможность обмена кодом в реальном времени

#GEE #софт
This media is not supported in your browser
VIEW IN TELEGRAM
Global Natural and Planted Forests

Глобальные данные Global Natural and Planted Forests представляют собой карту естественных и посаженных лесов по состоянию на 2021 год с пространственным разрешением 30 метров.

Карта создана на основе более 70 миллионов образцов обучающих данных, полученных из снимков Landsat (1985–2021 гг.). Используется метод обнаружения изменений во временных рядах, примененный к снимкам Landsat и позволяющий отличать посаженные леса от естественных лесов на основе частоты нарушений. Локально-адаптивная классификация методом “случайного леса” обеспечила общую точность 85%, что позволяет использовать данные для глобальной оценки лесных ресурсов.

Данные отображаются в виде карты, на которой:

🟢 Зеленые пиксели обозначают естественные леса,
🟡 Желтые пиксели обозначают посаженные (искусственные) леса,
⚪️ Другие цвета обозначают безлесные территории.

Данные на:

🛢 Zenodo
🌍 Google Earth Engine

📖 Xiao, Yuelong, Qunming Wang, and Hankui K. Zhang. Global Natural and Planted Forests Mapping at Fine Spatial Resolution of 30 m. Journal of Remote Sensing 4 (2024): 0204. https://doi.org/10.34133/remotesensing.0204

#лес #данные #GEE
Earth Engine Task Manager — запуск скрипта Goggle Eearth Engine из VS Code

Запустить скрипт Goggle Eearth Engine из VS Code можно с помощью расширения Earth Engine Task Manager (eetasks), созданного Оливером Лопесом (Oliver Lopez). Расширение полезно для 1) отправки задач на экспорт, 2) мониторинга их выполнения, а также для (3) использования интерактивной карты (в новой версии добавлена поддержка функции Map.addLayer).

🖥 Репозиторий eetasks
🔗 eetasks в маркетплейсе vscode

#софт #GEE
Мониторинг нефтяного загрязнения, возникшего в результате аварий танкеров “Волго-нефть 212” и “Волго-нефть 239”

15 декабря в Керченском проливе произошло крушение танкеров “Волго-нефть 212” и “Волго-нефть 239”. Первый танкер затонул, а кормовая часть судна “Волго-нефть 239” села на мель в 82 м от берега в районе п. Волна.

Количество нефтепродуктов на судне “Волго-нефть 212” по данным МЧС составляла 4251 тонн мазута, а на судне “Волго-нефть 239” — 4300 тонн мазута. Значительная часть мазута вытекла в море.

Через некоторое время в сети появились радарные снимки Sentinel-1, сделанные 18 и 19 декабря. На последнем из них хорошо видно нефтяное пятно, вытянувшееся вдоль побережья по направлению к Анапе и, вероятно, вызванное утечкой мазута с танкера “Волго-нефть 239”. Продолжается утечка мазута с затонувшего танкера “Волго-нефть 212”.

Заметим, что при высоких скоростях ветра (свыше 9 м/с) тонкие нефтяные пленки на морской поверхности перестают быть видны на радарных снимках. Остаются только толстые пленки нефти или тяжелых нефтепродуктов, вроде мазута. 18 и 19 декабря скорость ветра у поверхности превышала 9 м/с, так что оценить площадь загрязнения по данным космических радаров в штормовую погоду весьма затруднительно.

К сожалению, открытых данных ДЗЗ из космоса недостаточно для мониторинга данной аварии. Оптические снимки почти недоступны из-за облачности. Радарные, кроме сказанного выше, имеют низкую периодичность. В основном, наблюдение ведется наземными (водными) и воздушными средствами.

Следить за оперативной информацией МЧС можно на 🔗 сайте ГУ МЧС России по Краснодарскому краю.

Помимо сотрудников МЧС, на земле ликвидацией последствий аварии занимаются десятки добровольцев. Как это происходит, можно увидеть 🔗 здесь.

📖 Для интересующихся вопросами мониторинга нефтяных загрязнений рекомендуем обзорную статью А. Ю. Иванова.

🗺 В заключение, вот небольшой скрипт GEE, где есть оба радарных снимка Sentinel-1, оптический снимок Sentinel-2, результаты прогноза скорости ветра, а также расположение танкеров (“Волго-нефть 239” хорошо заметен у берега, а координаты “Волго-нефть 212” взяты из сообщения МЧС). Можете все сами посмотреть.

📸 Кормовая часть судна “Волго-нефть 239” у побережья в районе поселка Волна (источник)

#нефть #GEE #SAR