Маски
Выделим пиксели, вероятность облачности которых меньше 5%:
MSK_CLDPRB
(Cloud Probability Map) и SCL
(ScenCLassification Table) появились уже в продуктах Sentinel-2 SR, то есть в данных 2-го уровня обработки (подробности здесь). Значения MSK_CLDPRB
дают вероятность того, что в соответствующем пикселе находится облако. Выделим пиксели, вероятность облачности которых меньше 5%:
var cloudProb = image.select('MSK_CLDPRB');Расположение сirrus описано в маске
var cloudsSR = cloudProb.lt(5);
SCL
. Это — карта, разбивающая пиксели снимка на классы. Каждому классу соответствует свое значение https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_SR#bands на карте SCL
. Перистым облакам соответствует значение SCL=10, теням от облаков — SCL=3. В QA60 теней облаков не было, сейчас отмаскируем и их:var scl = image.select('SCL');#GEE
var cirrusSR = scl.eq(10); // 10 = cirrus
var shadowSR = scl.eq(3); // 3 = cloud shadow
// Маскируем облака, cirrus и тени.
var image_SR = image.updateMask(cloudsSR).updateMask(cirrusSR.not()).updateMask(shadowSR.not());
Облака показаны фиолетовым, cirrus — красным, а тени облаков — желтым цветом.
Видно, что эта маска работает гораздо лучше прежней, хотя до совершенства ей далеко.
Например, порог вероятности облачности взят слишком агрессивным — удалено много лишних пикселей. Это — типичная проблема работы с масками облачности: нельзя указать глобальное значение порога. Порог подбирается локально, для конкретной сцены, так что бы разделить облака и бликующие объекты на земной поверхности.
Эту маску уже можно применять на практике. Есть более совершенные маски, и с одной из них мы позже познакомимся. Но они считаются гораздо дольше.
Код примера: https://code.earthengine.google.com/467bda21cbbfe7030597c8f242ef9cd8
Видно, что эта маска работает гораздо лучше прежней, хотя до совершенства ей далеко.
Например, порог вероятности облачности взят слишком агрессивным — удалено много лишних пикселей. Это — типичная проблема работы с масками облачности: нельзя указать глобальное значение порога. Порог подбирается локально, для конкретной сцены, так что бы разделить облака и бликующие объекты на земной поверхности.
Эту маску уже можно применять на практике. Есть более совершенные маски, и с одной из них мы позже познакомимся. Но они считаются гораздо дольше.
Код примера: https://code.earthengine.google.com/467bda21cbbfe7030597c8f242ef9cd8
Запуск новой японской ракеты-носителя H3 закончился аварией
Ракета стартовала 7 марта в 1:37:55 утра по всемирному времени (UTC). Отделение первой ступени произошло примерно через пять минут полета, однако двигатель второй ступени не запустился. После того как запуск двигателя не удалось подтвердить, а скорость ракеты продолжила падать, JAXA отдало команду на самоуничтожение ракеты. Вместе с ней была потеряна полезная нагрузка — спутник ALOS-3.
H3 — первая большая ракета, которую Япония разработала за последние 30 лет. Она должна заменить ракеты семейства H2, обеспечив более высокую грузоподъемность при одновременном снижении стоимости запуска (планируемая стоимость запуска для клиентов — около 37 миллионов долларов США).
H3 разрабатывалась совместно JAXA и Mitsubishi Heavy Industries, и обошлась примерно в 1.5 миллиарда долларов. Работы начались в 2014 году, и первый запуск ракеты был запланирован на март 2021 года, но был перенесен из-за проблем с новым двигателем первой ступени LE-9.
Жидкостный криогенный ракетный двигатель LE-9 называют одним из основных факторов, обеспечивающих снижение стоимости запуска. В ходе испытаний в мае 2020 года были обнаружены треснувшие лопатки турбины в турбонасосе LE-9 и отверстие в стенке камеры сгорания. Решение этих проблем затянулось, а планы запусков H3 сместились сначала на 2022, а затем и на 2023 год.
Потерянный в результате аварии трехтонный спутник ALOS-3 должен был вести съемку высокого разрешения в видимом и ближнем инфракрасном диапазонах.
А вот теперь — комментарии. Проблемная ракета (первая за 30 лет), новый двигатель (тоже проблемный долгострой), более высокий риск пусков у новых ракет: что заставило JAXA выводить такой рискованной конфигурацией дорогущий трехтонный спутник? Почему нельзя было заменить его чем-то более дешевым (макетом)?
Мы уж было подумали, что ALOS-3 — радар (на ALOS и ALOS-2 стояли радары L-диапазона, много сделавшие для наблюдения лесов). Оказалось, что нет. Радарным будет следующий спутник ALOS-4, который планируется запускать в этом году, снова на H3. Надеемся, специалисты JAXAпотомки самураев будут в этот раз более осмотрительны.
Ракета стартовала 7 марта в 1:37:55 утра по всемирному времени (UTC). Отделение первой ступени произошло примерно через пять минут полета, однако двигатель второй ступени не запустился. После того как запуск двигателя не удалось подтвердить, а скорость ракеты продолжила падать, JAXA отдало команду на самоуничтожение ракеты. Вместе с ней была потеряна полезная нагрузка — спутник ALOS-3.
H3 — первая большая ракета, которую Япония разработала за последние 30 лет. Она должна заменить ракеты семейства H2, обеспечив более высокую грузоподъемность при одновременном снижении стоимости запуска (планируемая стоимость запуска для клиентов — около 37 миллионов долларов США).
H3 разрабатывалась совместно JAXA и Mitsubishi Heavy Industries, и обошлась примерно в 1.5 миллиарда долларов. Работы начались в 2014 году, и первый запуск ракеты был запланирован на март 2021 года, но был перенесен из-за проблем с новым двигателем первой ступени LE-9.
Жидкостный криогенный ракетный двигатель LE-9 называют одним из основных факторов, обеспечивающих снижение стоимости запуска. В ходе испытаний в мае 2020 года были обнаружены треснувшие лопатки турбины в турбонасосе LE-9 и отверстие в стенке камеры сгорания. Решение этих проблем затянулось, а планы запусков H3 сместились сначала на 2022, а затем и на 2023 год.
Потерянный в результате аварии трехтонный спутник ALOS-3 должен был вести съемку высокого разрешения в видимом и ближнем инфракрасном диапазонах.
А вот теперь — комментарии. Проблемная ракета (первая за 30 лет), новый двигатель (тоже проблемный долгострой), более высокий риск пусков у новых ракет: что заставило JAXA выводить такой рискованной конфигурацией дорогущий трехтонный спутник? Почему нельзя было заменить его чем-то более дешевым (макетом)?
Мы уж было подумали, что ALOS-3 — радар (на ALOS и ALOS-2 стояли радары L-диапазона, много сделавшие для наблюдения лесов). Оказалось, что нет. Радарным будет следующий спутник ALOS-4, который планируется запускать в этом году, снова на H3. Надеемся, специалисты JAXA
epic.gif
12.9 MB
Снимки Земли с расстояния 1.5 миллиона километров, cделанные космическим аппаратом DSCOVR 6 марта 2023 года.
DSCOVR (Deep Space Climate Observatory) — американский космический аппарат для наблюдения за Солнцем и Землей, совместный проект NASA и NOAA. Находится в точке Лагранжа L1 системы Солнце-Земля, на расстоянии около 1.5 миллиона километров от Земли.
Со своей точки обзора DSCOVR непрерывно видит Солнце и освещенную Солнцем сторону Земли. Он отслеживает солнечный ветер, обеспечивает раннее предупреждение о приближающихся выбросах корональной массы и наблюдает за явлениями на Земле, включая изменения концентрации озона, аэрозолей, пыли и вулканического пепла, высоты облаков, растительного покрове и климата.
Основными научными приборами DSCOVR являются плазменный магнитометр (PlasMag), наблюдающий Солнце, и наблюдающие Землю радиометр NIST Advanced Radiometer (NISTAR) и Earth Polychromatic Imaging Camera (EPIC).
EPIC делает снимки освещенной солнцем стороны Земли в десяти различных каналах — от ультрафиолетового до ближнего инфракрасного (317, 325, 340, 388, 443, 552, 680, 688, 764 и 779 нм). Пространственное разрешение снимков оставляет 25 км/пиксель.
EPIC делает снимки всей Земли примерно каждые два часа. NASA публикует их в режиме, близком к реальному времени, через веб-сайт прибора: https://epic.gsfc.nasa.gov
#nrt #данные #снимки
Со своей точки обзора DSCOVR непрерывно видит Солнце и освещенную Солнцем сторону Земли. Он отслеживает солнечный ветер, обеспечивает раннее предупреждение о приближающихся выбросах корональной массы и наблюдает за явлениями на Земле, включая изменения концентрации озона, аэрозолей, пыли и вулканического пепла, высоты облаков, растительного покрове и климата.
Основными научными приборами DSCOVR являются плазменный магнитометр (PlasMag), наблюдающий Солнце, и наблюдающие Землю радиометр NIST Advanced Radiometer (NISTAR) и Earth Polychromatic Imaging Camera (EPIC).
EPIC делает снимки освещенной солнцем стороны Земли в десяти различных каналах — от ультрафиолетового до ближнего инфракрасного (317, 325, 340, 388, 443, 552, 680, 688, 764 и 779 нм). Пространственное разрешение снимков оставляет 25 км/пиксель.
EPIC делает снимки всей Земли примерно каждые два часа. NASA публикует их в режиме, близком к реальному времени, через веб-сайт прибора: https://epic.gsfc.nasa.gov
#nrt #данные #снимки
Космический аппарат DSCOVR (слева). Схема расположения точек Лагранжа системы Солнце-Земля (справа).
lunar_transit.gif
14.9 MB
Вот еще чудная съемка DSCOVR EPIC: транзит Луны по диску Земли 11 февраля 2021 года.
GEE-19. Маскирование облаков и теней: s2cloudless
Речь пойдет об алгоритме маскирования облаков s2cloudless. Он разработан специалистами Sentinel Hub, и уже несколько лет применяется GEE. На сегодняшний день это, на наш взгляд, лучший алгоритм маскирования облаков по данным одного снимка*.
s2cloudless основан на алгоритмах машинного обучения (LightGBM). С его помощью на GEE создана коллекция данных Sentinel-2: Cloud Probability, в которой каждому реальному снимку Sentinel-2 (COPERNICUS_S2 или COPERNICUS_S2_SR) сопоставлен снимок с единственным слоем — вероятностью того, что пиксель является облаком (от 0 до 100).
Тестовый снимок будет тот же, что и в прошлый раз. План работы такой:
1. Объедим коллекции снимков Sentinel-2 surface reflectance и Sentinel-2 cloud probability в единую коллекцию.
2. Для новой коллекции создадим маски облаков и теней, в виде дополнительных слоев.
3. Объединим маски облаков и теней.
5. Применим полученную маску к снимкам коллекции.
Для создания коллекции “снимки + вероятность облачности” задаем параметры: AOI (Area of interest), начальную и конечную даты съемки (START_DATE, END_DATE), и максимальную долю облачного покрытия снимков CLOUD_MAX.
Ключевой операцией является объединение коллекций снимков
Код примера: https://code.earthengine.google.com/3034b502757037ac2ce7d7af313abb90
*Есть алгоритмы маскирования облачности, использующие временные ряды снимков, например, MAJA. Но они, естественно, требуют больших вычислительных затрат, чем алгоритмы, опирающиеся на данные одного снимка.
#GEE
Речь пойдет об алгоритме маскирования облаков s2cloudless. Он разработан специалистами Sentinel Hub, и уже несколько лет применяется GEE. На сегодняшний день это, на наш взгляд, лучший алгоритм маскирования облаков по данным одного снимка*.
s2cloudless основан на алгоритмах машинного обучения (LightGBM). С его помощью на GEE создана коллекция данных Sentinel-2: Cloud Probability, в которой каждому реальному снимку Sentinel-2 (COPERNICUS_S2 или COPERNICUS_S2_SR) сопоставлен снимок с единственным слоем — вероятностью того, что пиксель является облаком (от 0 до 100).
Тестовый снимок будет тот же, что и в прошлый раз. План работы такой:
1. Объедим коллекции снимков Sentinel-2 surface reflectance и Sentinel-2 cloud probability в единую коллекцию.
2. Для новой коллекции создадим маски облаков и теней, в виде дополнительных слоев.
3. Объединим маски облаков и теней.
5. Применим полученную маску к снимкам коллекции.
Для создания коллекции “снимки + вероятность облачности” задаем параметры: AOI (Area of interest), начальную и конечную даты съемки (START_DATE, END_DATE), и максимальную долю облачного покрытия снимков CLOUD_MAX.
Ключевой операцией является объединение коллекций снимков
s2_sr_col
и вероятности облачности s2_cloudless_col
по идентификаторам снимков — свойству 'system:index'
: var s2_sr_cloudless_col = ee.Join.saveFirst('s2cloudless').apply({Объединенная коллекция состоит из элементов (снимков) первой коллекции (
primary: s2_sr_col,
secondary: s2_cloudless_col,
condition: ee.Filter.equals({leftField: 'system:index', rightField: 'system:index'})
});
s2_sr_col
), к которым в виде нового свойства 's2cloudless'
добавлены соответствующие элементы из второй коллекции (вероятности).ee.Join
объединяет коллекции, saveFirst()
задает имя свойства, в котором сохраняются элементы второй коллекции, apply()
указывает какие коллекции и по какому свойству объединять.Код примера: https://code.earthengine.google.com/3034b502757037ac2ce7d7af313abb90
*Есть алгоритмы маскирования облачности, использующие временные ряды снимков, например, MAJA. Но они, естественно, требуют больших вычислительных затрат, чем алгоритмы, опирающиеся на данные одного снимка.
#GEE
Для маскирования облаков зададим параметр CLD_PRB_THRESH — вероятность облачности (%). Значения выше CLD_PRB_THRESH считаются облаком.
Выберем из снимков слой с вероятностями облачности, выделим на нем значения выше CLD_PRB_THRESH, и сохраним в виде нового слоя — маски облаков
Маска теней
Для настройки маски задаются параметры:
* NIR_DRK_THRESH — отражение в NIR-канале B8. Значения ниже указанного порога считаются потенциальными тенями облаков;
* CLD_PRJ_DIST — максимальное расстояние в километрах от границ облаков, на котором ищут тени облаков;
* BUFFER — целое число (метры) для дилатации границ облаков (дилатация — это операция из математической морфологии).
Маска теней не относится напрямую к s2cloudless и может использоваться с другими масками облаков. Например, с этими. Она может применятся как к коллекции COPERNICUS_S2_SR (BOA), так и к COPERNICUS_S2 (TOA) — нужно только изменить способ определения водоемов. Вместо
задать:
Значение переменной SR_BAND_SCALE (1e4) задано в предположении, что масштабирования значений пикселей основных каналов снимка не проводилось, и все они находятся в диапазоне от 0 до 10000. Обратите внимание на эту переменную, если вы уже применяли масштабирование.
#GEE
Выберем из снимков слой с вероятностями облачности, выделим на нем значения выше CLD_PRB_THRESH, и сохраним в виде нового слоя — маски облаков
clouds
:function add_cloud_bands(img){
// Get s2cloudless image, subset the probability band.
var cld_prb = ee.Image(img.get('s2cloudless')).select('probability');
// Condition s2cloudless by the probability threshold value.
var is_cloud = cld_prb.gt(CLD_PRB_THRESH).rename('clouds');
// Add the cloud probability layer and cloud mask as image bands.
return img.addBands(ee.Image([cld_prb, is_cloud]));
}
Маска теней
shadows
строится по пересечению темных объектов на снимке с рассчитанным положением теней облаков на земной поверхности (по известным углам освещенности Солнцем). Из маски удаляются пиксели водоемов, которые, как правило, являются темными объектами.Для настройки маски задаются параметры:
* NIR_DRK_THRESH — отражение в NIR-канале B8. Значения ниже указанного порога считаются потенциальными тенями облаков;
* CLD_PRJ_DIST — максимальное расстояние в километрах от границ облаков, на котором ищут тени облаков;
* BUFFER — целое число (метры) для дилатации границ облаков (дилатация — это операция из математической морфологии).
Маска теней не относится напрямую к s2cloudless и может использоваться с другими масками облаков. Например, с этими. Она может применятся как к коллекции COPERNICUS_S2_SR (BOA), так и к COPERNICUS_S2 (TOA) — нужно только изменить способ определения водоемов. Вместо
// Определение пикселей воды по слою SCL (BOA).
var not_water = img.select('SCL').neq(6);
задать:
// Для определения пикселей воды на данных TOA.
var not_water = img.normalizedDifference(['B3', 'B8']).lt(0.2)
Значение переменной SR_BAND_SCALE (1e4) задано в предположении, что масштабирования значений пикселей основных каналов снимка не проводилось, и все они находятся в диапазоне от 0 до 10000. Обратите внимание на эту переменную, если вы уже применяли масштабирование.
#GEE
В функции
Наконец, полученные маски применяются ко всем снимкам коллекции.
На снимке облака выделены фиолетовым, а тени — желтым цветом. Видно, что горы (справа, вверху и внизу) остались неотмаскированы, в отличие от результатов применения прошлых масок.
add_cld_shdw_mask()
маски облаков и теней объединяются в единую маску — слой cloudmask
. Нюансы объединения объяснены в коде функции.Наконец, полученные маски применяются ко всем снимкам коллекции.
На снимке облака выделены фиолетовым, а тени — желтым цветом. Видно, что горы (справа, вверху и внизу) остались неотмаскированы, в отличие от результатов применения прошлых масок.
Рассмотрим фрагмент снимка. Облака выделены довольно хорошо. С тенями ситуация похуже, есть над чем поработать. Но в целом, результат приемлемый.
Полный код примера: https://code.earthengine.google.com/90500d827570627d1568ffb7f5c521f2
Основной параметр для настройки маски — порог вероятности облачности CLD_PRB_THRESH.
Считается маска s2cloudless дольше, чем основанная на `MSK_CLDPRB` и `SCL`, но и результат у нее лучше.
Основной параметр для настройки маски — порог вероятности облачности CLD_PRB_THRESH.
Считается маска s2cloudless дольше, чем основанная на `MSK_CLDPRB` и `SCL`, но и результат у нее лучше.
Покрытие снимками Sentinel-1 IW GRD территории России за февраль 2023 года.
Всего найдено 763 снимка.
Код примера: https://code.earthengine.google.com/7431e655056756488c8fa74d5f229e7d
Всего найдено 763 снимка.
Код примера: https://code.earthengine.google.com/7431e655056756488c8fa74d5f229e7d
Агроэкологический атлас России и сопредельных стран (2008 год): http://www.agroatlas.ru/ru/index.html
Атлас содержит около 1500 карт и описаний:
* наиболее важных сельскохозяйственных культур (100),
* их диких родичей (560),
* вредных объектов (640) — болезней, вредителей сельскохозяйственных культур и сорных растений,
* карты агроэкологических факторов среды на территории бывшего СССР (> 200) — климат, почвы растительность.
Атлас не новый, но все еще может полезен. Устаревают такие материалы медленно.
#климат #справка
Атлас содержит около 1500 карт и описаний:
* наиболее важных сельскохозяйственных культур (100),
* их диких родичей (560),
* вредных объектов (640) — болезней, вредителей сельскохозяйственных культур и сорных растений,
* карты агроэкологических факторов среды на территории бывшего СССР (> 200) — климат, почвы растительность.
Атлас не новый, но все еще может полезен. Устаревают такие материалы медленно.
#климат #справка
agroatlas.ru
AgroAtlas - Главная
мета описание
Отражение моста Ли Сунсин
Umbra опубликовала радарный снимок с разрешением 50 сантиметров, основное внимание на котором привлекают многократные отражения висячего моста Ли Сунсин (34.8992361, 127.7048083).
Природа их становится понятнее, если вспомнить, что радар — это активный метод зондирования, и что снимает он не сверху, а сбоку. В результате мы наблюдаем, помимо “обычного” отражения от видимой стороны моста, многократные отражения от других частей моста, в которых участвовала зеркально отражающая поверхность воды.
Схемы многократного отражения мостов на радарных снимках приведены на рисунке ниже. Детали механизма отражения описаны в статье The Characteristics of the Multipath Scattering and the Application for Geometry Extraction in High-Resolution SAR Images.
#SAR #снимки
Umbra опубликовала радарный снимок с разрешением 50 сантиметров, основное внимание на котором привлекают многократные отражения висячего моста Ли Сунсин (34.8992361, 127.7048083).
Природа их становится понятнее, если вспомнить, что радар — это активный метод зондирования, и что снимает он не сверху, а сбоку. В результате мы наблюдаем, помимо “обычного” отражения от видимой стороны моста, многократные отражения от других частей моста, в которых участвовала зеркально отражающая поверхность воды.
Схемы многократного отражения мостов на радарных снимках приведены на рисунке ниже. Детали механизма отражения описаны в статье The Characteristics of the Multipath Scattering and the Application for Geometry Extraction in High-Resolution SAR Images.
#SAR #снимки
Типичные ситуации, в которых возникает многократное отражение (вверху). Схемы многократного отражения между горизонтальной поверхностью и основанием (поверхностью воды).