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 #данные #США
🗺 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 #сельхоз #нейронки
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-Catalog собран список всех пространственных данных, хранящихся Earth Engine. Список представлен в виде файлов TSV (значения, разделенные табуляцией) или JSON. Обновляется ежедневно.
Учитываются только данные из официального каталога Earth Engine:
📚 Каталог пространственных данных Google Earth Engine
Напомним, что существует еще 🖥 Awesome-gee-community-catalog (https://gee-community-catalog.org/), данные в который добавляются сообществом пользователей Earth Engine.
#данные #GEE
GitHub
GitHub - opengeos/Earth-Engine-Catalog: The Google Earth Engine data catalog in CSV format
The Google Earth Engine data catalog in CSV format - opengeos/Earth-Engine-Catalog
Фильтрация и классификация в Earth Engine
В статье есть два любопытных примера использования Google Earth Engine:
➊ Сглаживание временных рядов NDVI с помощью фильтра Савицкого-Голая (Savitzky–Golay)
➋ Классификация полей сельскохозяйственных культур (попиксельная) методом “случайного леса” (random forest)
Фильтр Савицкого-Голая реализован в виде функции библиотеки OpenEarthEngineLibrary, о которой мы еще поговорим.
Мы обычно не используем классификацию в Earth Engine, предпочитая выполнять ее в R по полученным из EE снимкам. Но кому-то приведенный пример может пригодиться.
📸 Исходный временной ряд NDVI (ndvi) и ряд, сглаженный фильтром Савицкого-Голая (ndvi_sg).
#GEE
В статье есть два любопытных примера использования 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 достаточно импортировать ее код
а затем использовать нужные функции.
По мере роста библиотеки время загрузки также увеличивается. Чтобы решить эту проблему, разработчики предлагают версию библиотеки с быстрой загрузкой
Отметим, что эта версия не должна использоваться для отладки.
Чтобы получить информацию о функциях, добавьте в конец кода следующую строку
Вы получите список всех использованных функций и другую связанную с ними информацию.
OEEL существует в виде Python-пакета.
Установка:
Импорт:
🖥 Репозиторий кода OEEL
🖥 Код примеров
#GEE #python
Для использования 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
•
•
•
•
•
🌍 ImageCollection
•
•
•
•
•
•
🌍 Feature
•
🌍 FeatureCollection
•
#GEE #python
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
Фильтр Савицкого-Голая (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
Данные японского спутникового радара 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
Рассмотрим покрытие данными на примере территории Китая и его окрестностей в 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.
Выполним проверку условия
Номер категории будет равен сумме единиц
Но при этом нумерация категорий будет идти сверху вниз: 1 – [0.8; 1], 2 – [0.6; 0.8), …
Перевернем ее, вычитая номер категории из числа категорий
В конце мы переименовали полученный слой в
Рассмотренный прием подойдет для категоризации любого однослойного изображения, а не только NDVI.
🌍 Код примера
В GEE есть и другие способы категоризации изображений — при помощи CART и where.
#GEE
Допустим, нам нужно разделить значения 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