GEE-10. Библиотека Awesome Spectral Indices
Код примера
В прошлый раз мы вычисляли вегетационные индексы. Есть способ сделать это еще проще — с помощью библиотеки Awesome Spectral Indices (документация).
Создадим коллекцию снимков Sentinel-2 L2A, покрывающих интересующий район (ROI — region of interest):
Зададим параметры для расчета индексов. Мы хотим рассчитать NDVI, NDWI и EVI. Для этого понадобится несколько каналов и числовых констант.
Список спектральных индексов можно посмотреть здесь. В списке приведена формула, каждой букве которой мы сопоставим канал или число.
2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))
А вот как она выглядит в списке:
g * ((N - R) / (N + C1 * R - C2 * B + L))
Думаю, принцип понятен. Зеленый канал нужен нам для расчета NDWI.
#GEE #индексы
Код примера
В прошлый раз мы вычисляли вегетационные индексы. Есть способ сделать это еще проще — с помощью библиотеки Awesome Spectral Indices (документация).
Создадим коллекцию снимков Sentinel-2 L2A, покрывающих интересующий район (ROI — region of interest):
var col = ee.ImageCollection('COPERNICUS/S2_SR')Вычислим медиану коллекции и обрежем ее по границам ROI. Медиана коллекции — снимок, каналы которого являются медианами соответствующих каналов коллекции (вычисления в каждом канале происходят попиксельно). В итоге получим некий типичный летний снимок Небраски.
.filterDate('2021-06-01', '2021-09-01')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
.filter(ee.Filter.bounds(ROI))
.select('B.*');
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 = {Вот формула для расчета EVI:
"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
};
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 #индексы
Обнаружился пакет R для доступа к немецким метеоданным — rdwd. Хотя, там все и так просто.
Python’овский пакет тоже есть: Wetterdienst. Он служит для доступа к открытым метеоданным разных стран (список). В R это делается с помощью отдельных пакетов для каждого источника.
#R #python #погода
Python’овский пакет тоже есть: Wetterdienst. Он служит для доступа к открытым метеоданным разных стран (список). В R это делается с помощью отдельных пакетов для каждого источника.
#R #python #погода
⭐️ СТРАНЫ / КОМПАНИИ / СПУТНИКИ
Страны: #австралия #германия #индия #иран #испания #канада #китай #португалия #россия #США #япония и т. п.
Но:
#корея обозначает Северную и Южную Кореи
#РБ — Республика Беларусь
#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
Страны: #австралия #германия #индия #иран #испания #канада #китай #португалия #россия #США #япония и т. п.
Но:
#корея обозначает Северную и Южную Кореи
#РБ — Республика Беларусь
#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
This media is not supported in your browser
VIEW IN TELEGRAM
Python-библиотека StreamJoy (https://ahuang11.github.io/streamjoy/) создаёт анимации MP4/GIF на основе списка изображений, каталогов, xr.Dataset, pd.DataFrame, hv.DynamicMap/HoloMap и даже напрямую из URL.
Анимация снимков геостационарного спутника Himawari:
#python
Анимация снимков геостационарного спутника Himawari:
from streamjoy import stream
if __name__ == "__main__":
URL_FMT = "https://www.goes.noaa.gov/dimg/jma/fd/vis/{i}.gif"
resources = [URL_FMT.format(i=i) for i in range(1, 11)]
stream(resources, uri="goes.gif") # .gif and .mp4 supported
#python
DeepForest (https://deepforest.readthedocs.io/en/latest/) — это пакет на языке Python для обнаружения и классификации объектов на RGB-снимках (сверх)высокого пространственного разрешения. Он использует сети глубокого обучения и построен на основе модуля обнаружения объектов из пакета torchvision.
DeepForest предназначен для упрощения обучения моделей обнаружения природных объектов, в частности, деревьев. Разработчики старались сделать его простым, настраиваемым и модульным, скрывая ненужные сложности от пользователя. Вот, например, как выглядит разметка снимка предобученной моделью:
DeepForest содержит две предобученные модели: Bird Detection и Tree Crown Detection.
Пакет неплохо документирован, снабжен примерами использования, а также советами по настройке, обучению и расширению возможностей.
🖥 Пример работы DeepForest в Google Colab (с инсталляцией пакетов)
В документах есть ссылки на публикации с описанием DeepForest, использованные для обучения снимки находятся в открытом доступе. Есть и “сторонние” примеры использования DeepForest:
🔗 Tree crown detection using DeepForest
#нейронки #python #лес
DeepForest предназначен для упрощения обучения моделей обнаружения природных объектов, в частности, деревьев. Разработчики старались сделать его простым, настраиваемым и модульным, скрывая ненужные сложности от пользователя. Вот, например, как выглядит разметка снимка предобученной моделью:
from deepforest import main
from deepforest import get_data
import matplotlib.pyplot as plt
model = main.deepforest()
model.use_release()
sample_image_path = get_data("OSBS_029.png")
img = model.predict_image(path=sample_image_path, return_plot=True)
plt.imshow(img[:,:,::-1])
DeepForest содержит две предобученные модели: Bird Detection и Tree Crown Detection.
Пакет неплохо документирован, снабжен примерами использования, а также советами по настройке, обучению и расширению возможностей.
🖥 Пример работы DeepForest в Google Colab (с инсталляцией пакетов)
В документах есть ссылки на публикации с описанием DeepForest, использованные для обучения снимки находятся в открытом доступе. Есть и “сторонние” примеры использования DeepForest:
🔗 Tree crown detection using DeepForest
#нейронки #python #лес
Joerd (https://github.com/tilezen/joerd) — консольная программа для загрузки, объединения и создания тайлов из цифровых моделей рельефа.
🗺 В документации есть список ссылок на источники ЦМР: https://github.com/tilezen/joerd/blob/master/docs/data-sources.md
#DEM #данные #python
🗺 В документации есть список ссылок на источники ЦМР: https://github.com/tilezen/joerd/blob/master/docs/data-sources.md
#DEM #данные #python
GitHub
GitHub - tilezen/joerd: Joerd can be used to download, merge and generate tiles from digital elevation data
Joerd can be used to download, merge and generate tiles from digital elevation data - tilezen/joerd
CoastSat
CoastSat (http://coastsat.wrl.unsw.edu.au) — это набор программных средств с открытым исходным кодом на языке Python (https://github.com/kvos/CoastSat), который позволяет пользователям получать временные ряды положения береговой линии на любом побережье по всему миру за 39 лет (и далее) на основе общедоступных спутниковых снимков.
#python
CoastSat (http://coastsat.wrl.unsw.edu.au) — это набор программных средств с открытым исходным кодом на языке Python (https://github.com/kvos/CoastSat), который позволяет пользователям получать временные ряды положения береговой линии на любом побережье по всему миру за 39 лет (и далее) на основе общедоступных спутниковых снимков.
#python
Статистика открытых радарных данных Capella [ссылка]
Mark Litwintschik описывает процесс получения открытых данных радарных спутников Capella и классифицирует доступные снимки по регионам мира, форматам, уровням обработки, типу поляризации и т. п.
🌍 Распространение открытых данных спутников Capella.
#SAR #capella #python
Mark Litwintschik описывает процесс получения открытых данных радарных спутников Capella и классифицирует доступные снимки по регионам мира, форматам, уровням обработки, типу поляризации и т. п.
🌍 Распространение открытых данных спутников Capella.
#SAR #capella #python
This media is not supported in your browser
VIEW IN TELEGRAM
Новые возможности geemap
Д-р. Qiusheng Wu, автор питоновского пакета geemap (https://geemap.org) для работы с Google Earth Engine (GEE) через Python API, сообщил об обновлении пакета.
Теперь с помощью geemap можно создавать интерактивные графики для различных типов данных GEE: feature, image, array, list и table.
#GEE #python
Д-р. Qiusheng Wu, автор питоновского пакета geemap (https://geemap.org) для работы с Google Earth Engine (GEE) через Python API, сообщил об обновлении пакета.
Теперь с помощью geemap можно создавать интерактивные графики для различных типов данных GEE: feature, image, array, list и table.
#GEE #python
Введение в ГИС-программирование на Python
Д-р. Qiusheng Wu, создатель нескольких известных пакетов Python 🐍 для работы с пространственными данными — geemap, leafmap и segment-geospatial — создал официальный сайт своего курса 📖 “Introduction to GIS Programming“ (https://geog-312.gishub.org/) по обучению применению языка Python для работы с пространственными данными.
Семестровый курс предполагает всестороннее изучение ГИС-программирования на языке Python. Студенты начнут с изучения основ языка, освоят использование библиотек и фреймворков, необходимых для обработки, анализа и визуализации пространственных данных. В частности, научатся создавать интерактивные веб-карты с помощью Leafmap, визуализировать векторные и растровые данные с помощью MapLibre, получат практический опыт работы с GeoPandas, Rasterio, WhiteboxTools, Geemap, SAMGeo, HyperCoast, DuckDB, Xarray и другими библиотеками.
📹 Видеоматериалы курса
#python #основы
Д-р. Qiusheng Wu, создатель нескольких известных пакетов Python 🐍 для работы с пространственными данными — geemap, leafmap и segment-geospatial — создал официальный сайт своего курса 📖 “Introduction to GIS Programming“ (https://geog-312.gishub.org/) по обучению применению языка Python для работы с пространственными данными.
Семестровый курс предполагает всестороннее изучение ГИС-программирования на языке Python. Студенты начнут с изучения основ языка, освоят использование библиотек и фреймворков, необходимых для обработки, анализа и визуализации пространственных данных. В частности, научатся создавать интерактивные веб-карты с помощью Leafmap, визуализировать векторные и растровые данные с помощью MapLibre, получат практический опыт работы с GeoPandas, Rasterio, WhiteboxTools, Geemap, SAMGeo, HyperCoast, DuckDB, Xarray и другими библиотеками.
📹 Видеоматериалы курса
#python #основы