Спутник ДЗЗ
3.35K subscribers
2.59K photos
143 videos
200 files
2.34K links
Человеческим языком о дистанционном зондировании Земли.

Обратная связь: @sputnikDZZ_bot
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Ежегодная национальная база данных почвенно-растительного покрова США (Annual National Land Cover Dataset) появилась на Earth Engine:

🗺 Annual NLCD Land Cover Dataset

В GEE сохранена исходная структура данных: шесть слоев ежегодных растровых данных о почвенно-растительном покрове и его изменениях для континентальной части США за 1985–2023 гг. с пространственным разрешением 30 м.

Слои данных:

🔹 Land Cover
🔹 Land Cover Change
🔹 Land Cover Confidence
🔹 Fractional Impervious Surface: доля непроницаемых поверхностей (0–100%) в 30-метровом пикселе. Позволяет классифицировать городскую застройку и пригороды на основе заданных пороговых значений.
🔹 Impervious Descriptor: различает городские, негородские и дорожные покрытия на застроенных территориях.
🔹 Spectral Change Day of Year: определяют сутки, когда происходят значительные спектральные изменения (значения 1–366), что позволяет выявить нарушения (например, пожары), выходящие за рамки сезонных колебаний.

#GEE #данные #США
Классификация сельскохозяйственных культур Канады: карты и набор данных

Canada AAFC* Annual Crop Inventory (2009–2023) — ежегодные карты классификации сельскохозяйственных культур (и не только) Канады с общей точностью не менее 85% и пространственным разрешением 30 м (в 2009 и 2010 годах — 56 м).

🌍 Данные на Earth Engine
🔗 Код примера

*AAFC — Agriculture and Agri-Food Canada

Набор данных о пахотных землях Канады с метками, полученными из Canadian Annual Crop Inventory. Данные содержат 78 536 вручную проверенных изображений высокого разрешения (10 м/пиксель, 640 x 640 м) с географической привязкой из 10 классов сельскохозяйственных культур, собранных за четыре года производства (2017–2020) и пять месяцев (июнь-октябрь). Каждый экземпляр содержит 12 спектральных каналов, RGB-изображение и дополнительные каналы вегетационных индексов. По отдельности каждая категория содержит не менее 4 800 изображений. Открыт доступ к модели и исходному коду, которые дают возможность пользователю предсказать класс культуры по одному изображению (ResNet, DenseNet, EfficientNet) или по последовательности изображений (LRCN, 3D-CNN).

📖 Описание методики
🖥 Репозиторий проекта

#данные #датасет #GEE #сельхоз #нейронки
Список всех данных 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