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

Обратная связь: @sputnikDZZ_bot
加入频道
Хотим поделится любопытным приемом — выделение цветом интересующих объектов на снимке.

Нас интересует растительность, изображенная на снимке. В естественных цветах (красный-зеленый-синий) она сливается с другими классами поверхности (снимок вверху). Поэтому обесцветим все ненужное, и выделим цветом только растительность (снимок внизу). Так лучше, не правда ли?

Порядок работы:

1. Берем снимок.
2. Готовим из него серую основу.
3. Выделяем растительность и маскируем ее.
4. Экспортируем мозаику серой основы и растительности.

Берем снимок image, выбираем из него зеленый канал, и повторяем его трижды, создавая композит из трех одинаковых зеленых каналов:

Map.addLayer(image, {
bands: ['B3', 'B3', 'B3'],
min: 0,
max: 2500,
gamma: 1.5
}, 'Серый (основа)');


Это и будет серой основой нашего снимка.

Растительность выделяем по порогу NDVI: NDVI >= 0.4. Это условие даст нам бинарную маску veg, в которой области без растительности заполнены нулями. Умножаем на эту маску исходный снимок, и применяем к результату selfMask(). Заполненная нулями часть снимка при этом трактуется как маска и удаляется. От image остаются лишь области, покрытые растительностью.

var imageNDVI = image.normalizedDifference(['B8', 'B4']).rename('ndvi');
var veg = imageNDVI.gte(0.4);
var imageGreen = image.multiply(veg);
var imageGreen_vis = imageGreen.selfMask();


При отображении на карте, усиливаем яркость зеленого цвета. Это не обязательно, но так красивей:

Map.addLayer(imageGreen_vis, {
min: [50, 0, 50],
max: [255, 200, 255]
}, 'Растительность', true);


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

Создаем мозаику из серой основы, из которой удалены области растительности, а на их место вставлена растительность из исходного снимка — imageGreen_vis:

var grey = image.multiply(veg.select('ndvi').lt(0.4));
var mosaicGreen = ee.ImageCollection([
imageGreen_vis.visualize({
min: [50, 0, 50],
max: [255, 200, 255]
}),
grey.selfMask().visualize({
bands: ['B3', 'B3', 'B3'],
min: 0,
max: 2500,
gamma: 1.5
}),
]).mosaic();


Такой результат уже можно экспортировать.

Код здесь. Кроме описанного, по той же методике добавлены участки открытой земли (красный цвет) и воды (синий цвет).

#GEE
Добавили к растительности водные объекты.
awesome-gee-community-catalog

Наряду с официальным каталогом данных Google Earth Engine существует awesome-gee-community-catalog, который содержит наборы геопространственных данных, созданные сообществом пользователей GEE.

Проект начался с идеи о том, что многие наборы данных, будучи открытыми, тем не менее недоступны для непосредственного использования в GEE. Как те же административные границы geoBoundaries, которые нужно было скачать с официального сайта, обработать, загрузить в GEE Assets, и только потом использовать. Теперь они есть в каталоге, и их можно использовать сразу.

Данные awesome-gee-community-catalog находятся под различными открытыми лицензиями.

#GEE #данные
Атмосферная коррекция

Продолжим разговор о коррекции влияния атмосферы, начатый здесь.

Если бы у Земли не было атмосферы, то определить отражательную способность ее поверхности было бы легко: достаточно было бы определить освещенность и геометрические параметры. Однако присутствие атмосферы значительно усложняет зависимость между падающим солнечным излучением и излучением, принятым датчиком на спутнике.

Схематично, путь излучения от Солнца к датчику показан на рисунке ниже.
Луч А представляет собой прямую освещенность поверхности солнцем, луч В показывает, что поверхность может освещаться рассеянным атмосферой светом. Лучи С и Ε указывают возможные направления рассеянного поверхностью света, при этом С может рассеяться обратно на поверхность. Луч D попадает прямо на датчик. Луч Ε после рассеивания в атмосфере тоже попадает на датчик. Наконец, луч F показывает, что часть солнечного света может рассеяться в атмосфере прямо на датчик.

Лучи А и D представляют простой, без влияния атмосферы, путь излучения от Солнца к датчику. Все остальные лучи являются следствием рассеивания в атмосфере.

Рисунок из: Рис У. Г. Основы дистанционного зондирования. — Москва: Техносфера, 2006.
Для устранения влияния атмосферы необходимо знать такие параметры, как количество водяного пара и распределения аэрозолей в атмосфере, а также видимость сцены. Прямое измерение этих свойств атмосферы доступно редко, поэтому разрабатываются методы их получения из спектральных значений данных. Кроме того, часть информации о состоянии атмосферы содержится в метаданных снимка.

Основные подходы к атмосферной коррекции: удаление темных пикселей и моделирование влияния атмосферы.

В первом подходе предполагается, что темные пиксели имеют нулевую отражательную способность (это могут быть участки тени в видимой области спектра или глубокие и чистые водоемы в ближней ИК-области). Далее предполагается, что любое излучение, исходящее от таких темных пикселей, обусловлено атмосферной дымкой, а не отражением самой поверхности. Вычитают яркость темных пикселей из значений яркости каждого пикселя снимка, и получают скорректированные значения. Подход прост, считается быстро и вполне работоспособен.

Второй подход основан на моделировании радиационного переноса в атмосфере. Он дает более качественные результаты, но и требует больше вычислений. В готовых продуктах surface reflectance атмосферная коррекция осуществляется именно при помощи моделирования.

Зачем говорить об атмосферной коррекции, если можно взять готовые скорректированные продукты? Можно, но не всегда. Так, для Landsat в настоящее время снимки с коррекцией влияния атмосферы доступны почти за весь период существования этой серии спутников. А вот для Sentinel-2 снимки без коррекции начинаются с июня 2015 года, а готовые данные surface reflectance в Google Earth Engine начинаются только с декабря 2018 года*. Таким образом, 3.5 года придется выполнять атмосферную коррекцию самостоятельно и нужно представлять себе, какими инструментами мы располагаем. И так происходит с каждым новым спутником (и даже, как видно, не слишком новым) — сначала появляются данные более низких уровней обработки.

Пожалуй наиболее распространенной моделью атмосферной коррекции, на сегодняшний день является модель 6S (Second Simulation of a Satellite Signal in the Solar Spectrum). Модель учитывает эффекты поглощения газов (озон, водяной пар и другие), молекулярного (Рэлея) и аэрозольного рассеяния (см. рисунок ниже), а также эффект поляризации. Задачей модели 6S является определение отражательной способности (точнее, коэффициента спектральной яркости) земной поверхности при отсутствии влияния атмосферы.

Другие известные модели: LOWTRAN, MODTRAN, FLAASH.

О способах атмосферной коррекции данных Sentinel L1C в Google Earth Engine мы поговорим позже. Вопросы пишите в бот: @sputnikDZZ_bot

*В каталоге GEE сейчас указано, что данные surface reflectance начинаются с 28.03.2017. В действительности, глобальное покрытие этими данными начинается с декабря 2018 года.

#основы
Распределение по высоте компонентов атмосферы, влияющих на рассеяние и поглощение солнечного излучения в модели 6S.

Источник: Барталев С.А., Егоров В.А., Жарко В.О. и др. Спутниковое картографирование растительного покрова России. — М.: ИКИ РАН, 2016.
Атмосферная коррекция исправляет не только спектр отражения объектов, но и другие эффекты. Например, эффект границы (adjacency effect). Он состоит в наблюдаемом размытии границ ландшафта из-за попадания на датчик не только фотонов, отраженных от данного участка, но и фотонов, отраженных от соседних участков после дополнительного рассеяния в атмосфере.
Исправление эффекта границы в результате атмосферной коррекции: изображение с узким контрастным фрагментом до (слева) и после (справа) коррекции. Источник: Vermote E. et al. (1997). Atmospheric correction of visible to middle-infrared EOS-MOODIS data over land surfaces: Background, operational algorithm and validation.
Зачем нужны ночные снимки Земли

Наверняка многим знакомы спутниковые снимки ночной Земли, освещенной огнями городов. Они привлекают внимание своей необычностью, а при правильной подаче — помогают читателю сделать нужные публикаторам выводы (как этот снимок Корейского полуострова). Все это хорошо, но для чего на практике нужны ночные снимки? Или даже так: в каких задачах ночные снимки служат основным источником информации?

Ночные снимки доступны, начиная с 1992 года. В начале, съемка велась военными метеоспутниками. Сейчас основным источником ночных снимков является прибор VIIRS.
Пространственное разрешение ежедневных данных Day/Night Band составляет 742 м. Однако качество таких снимков нестабильное, и обычно их объединяют в месячные композиты. В GEE данные ночной съемки находятся здесь. Более подробный обзор источников ночных снимков есть в статье (там есть китайские спутники).

Применения ночной съемки разобраны в обзорных статьях 2022 и 2018 годов. Первая, вообще говоря, рассматривает только применения ночной съемки на платформе GEE, но, думается, это сужает ее представительность не слишком значительно.

Основных тем для применения ночной съемки выделяют три: картирование урбанизации, экологические применения и задачи социо-экономической динамики — по убыванию числа публикаций.

В картировании урбанизации данные ночной съемки играют вспомогательную роль, дополняя оптические данные (чаще всего, Landsat) или радарные данные. Влияние на точность классификации признаков, связанных с ночными снимками, в обзорных статьях не рассматривалось. Но вряд ли оно будет велико, учитывая низкое разрешение данных (742 метра против 30 или 10 метров). К тому же, в ярко освещенных городах данные ночной съемки страдают от эффекта насыщения, а в сельских и пригородных районах значения освещенности бывают занижены.

Задачи социо-экономической динамики — это войны, беженцы, ВВП и связь всего этого с освещенностью ночью. Темы более популярные, чем научные. Результаты иногда отдают трюизмом, например: ночное освещение, наблюдаемое со спутника, является хорошим индикатором гуманитарного кризиса в Сирии. В других случаях выводы крайне спорны: анализ гражданских войн в Йемене и Ираке, показал, что временные ряды снимков VIIRS способны отражать потребление электроэнергии во время войны (ссылки здесь). Освещенность не тождественна потреблению электроэнергии (как и в случае с двумя Кореями). В общем, данные показали большой потенциал для исследования…

Более вменяемые приложения ночной съемки есть в экологических задачах. Это: детектирования рыболовных судов в ночное время, детектирование вулканических извержений и оценка объемов сжигания попутного газа. В первых двух задачах ночные снимки снова будут на вторых ролях, если вообще пригодятся. Данные ночной съемки не дают ни высокого разрешения, ни оперативности. Детектировать извержения можно по тепловым снимкам геостационарных спутников (каждые 30 минут). Детектировать рыбную ловлю можно по радарным данным.

Интересней всего выглядит задача оценки объемов сжигания попутного газа по инфракрасным спектрам от газовых факелов. Тем более, что ночная съемка ведется прибором VIIRS, который в то же время получает данные в тепловом ИК и коротковолновых ИК (SWIR) каналах.

В общем, сфера применения ночных снимков пока не велика. Нужны данные с более высоким пространственным/радиометрическим/спектральным разрешением и более высокой повторяемостью съемки. Сейчас идет период накопления информации. Пока же, мы далеко не всегда понимаем, каким изменениям на земле соответствуют изменения освещенности на снимке.

Из забавной статистики. Около половины статей о региональном применении ночной съемки в GEE посвящено Китаю (31 из 60). У США — 5 из 60.

Чаще всего статьи про ночную съемку публикуются в MDPI Remote Sensing. Мы уже приводили сводку с подобными результатами для дистанционного зондирования вообще.

#GEE #dnb
Журналы, публикующие статьи про ночную съемку, по числу статей (2014—2022 годы).
This media is not supported in your browser
VIEW IN TELEGRAM
Северное сияние, Финский залив. 27 февраля 2023.

В какой-то момент даже сугроб стал розовым.

Катя Стрельникова для АстроФотоБолота и Aurora Hunters.
Диоксид азота

Sentinel-5P (прибор TROPOMI) дает ежедневную информацию о концентрации диоксида азота (NO2) в столбе атмосферы, а также отдельно в тропосфере (нижнем слое атмосферы) и в стратосфере (верхнем слое).

Оксиды азота образуются при сжигании любого из ископаемых видов топлива, содержащих азотные соединения, и потому поступают в атмосферу от промышленных предприятий, электростанций, печей и котельных, автотранспорта, а также при производстве минеральных удобрений. Кроме того, оксиды азота образуются из не содержащих азот соединений — за счет окисления азота воздуха. “Естественным” путем, оксиды азота попадают в атмосферу в результате лесных пожаров и микробиологических процессов в почве. Обычно, суммарное количество всех оксидов азота приводят к диоксиду азота, то есть к NO2.

NO2 — бесцветный, не имеющий запаха ядовитый газ. Он является важной составляющей фотохимических процессов в атмосфере, связанных с образованием озона (взаимодействие молекулярного кислорода O2 и оксида азота NO с атомарным кислородом O приводит к образованию озона O3 и диоксида азота NO2).

При растворении в воде диоксид азота образует азотную и азотистую кислоты. Если растворение происходит в атмосфере, в каплях воды облаков, то следствием этого становятся кислотные дожди.

В высоких концентрациях диоксид азота вызывает болезни органов дыхания. Он хорошо растворяется в жире и может проникать в капилляры легких, где вызывает воспаление и астматические процессы.

Широко известно явление уменьшения концентрации NO2 в периоды простоя предприятий и сокращения транспортных потоков. Например, во время китайского нового года или в период пандемии COVID-19. При этом, насколько нам известно, детального анализа источников сокращения выбросов NO2 еще не проводилось.

Интересны применения NO2 в качестве одной из характеристик уровня урбанизации региона (сжигание ископаемого топлива). На рисунке ниже, по более высоким концентрациям NO2, четко выделяется юго-восточная более урбанизированная часть Китая (источник).

#атмосфера #GEE
GEE-15. Отображение карт в разделенном окне

Посмотрим на примере Франции, как изменилась концентрация диоксида азота (NO2) в период пандемии COVID-19 по сравнению с предшествующим периодом.

Порядок работы:

1. Импорт административных границ
2. Импорт концентрации NO2
3. Фильтрация и усреднение значений NO2
4. Добавление данных на карту
5. Отображение карт в разделенном окне

Большинство операций нам уже знакомы. Новым будет размещение двух карт в одном окне, с подвижным разделителем. Это полезно при сравнении состояний “до” и “после” события, да и просто красиво.

Код примера: https://code.earthengine.google.com/8aadb3c53b1c00bb92fe926008ef69cb

Импортируем границы Франции:

var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
var country = countries.filter(ee.Filter.eq('country_na', 'France'));


Импортируем данные о концентрации диоксида азота в столбе атмосферы.

var no2 = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_NO2').select('NO2_column_number_density');


Выделим период с февраля по март, и рассчитаем для него средние концентрации NO2 в 2019 и 2020 годах. Для наглядности, умножим концентрацию NO2 на 1e6, чтобы перевести ее из моль/м2 в микромоль/м2. С помощью функции clip(), обрежем карту по границам страны. Карту средней концентрации NO2 до эпидемии назовем pre, в ходе эпидемии — post:

var filterMonth = ee.Filter.calendarRange(2, 5, 'month');
var no2 = no2.filter(filterMonth);

var filter19 = ee.Filter.calendarRange(2019, 2019, 'year');
var filter20 = ee.Filter.calendarRange(2020, 2020, 'year');

var pre = no2.filter(filter19).mean().multiply(1e6).clip(country);
var post = no2.filter(filter20).mean().multiply(1e6).clip(country);


Вместо того, чтобы просто добавить на карту слои “до” и “после”, поступим по-другому. Добавим на карту только слой "до", а для слоя “после” создадим новую карту и добавим его туда;

Map.addLayer(pre, vizParams, 'NO2 Pre');

var Map2 = ui.Map();
Map2.addLayer(post, vizParams, 'NO2 Post');


Свяжем между собой карты Map и Map2:

var linker = ui.Map.Linker([ui.root.widgets().get(0), Map2]);


Теперь создадим виджет SplitPanel, который будет содержать связанные карты:

var splitPanel = ui.SplitPanel({
firstPanel: linker.get(0),
secondPanel: linker.get(1),
orientation: 'horizontal',
wipe: true
});


Карты располагаются горизонтально. Первая — в первой (левой) панели, вторая — в правой. Значение параметра wipe = true указывает, что перетаскиванием разделителя можно задать, какая часть каждой панели будет показана.

Установим виджет SplitPanel в качестве корневого (раньше им была карта Map):

ui.root.widgets().reset([splitPanel]);


Вычислим координаты центра карты Map (то есть Франции с учетом Корсики) и центрируем виджет SplitPanel по этим координатам:

var lon = Map.getCenter().coordinates().get(0).getInfo();
var lat = Map.getCenter().coordinates().get(1).getInfo();

linker.get(0).setCenter(lon, lat, 6);


Чтобы убедится, что то, что мы наблюдаем в 2020 году — не обычные колебания концентрации, посмотрите на данные того же периода за 2021 и 2022 годы.

#GEE #атмосфера
Отображение карт в разделенном окне (вверху). Концентрация диоксида азота до пандемии (2019 год) и в период пандемии (2020 год).
Прибор OMI измеряет концентрацию диоксида азота

Кроме TROPOMI, концентрацию диоксида азота в атмосфере измеряет прибор OMI (Ozone Monitoring Instrument) на спутнике Aura. Этими данными пользоваться не так удобно, зато они собираются с 2005 года.

Данные Aura/OMI находятся в Earthdata. Посмотреть их можно в Worldview, в Giovanni (требуется регистрация в Earthdata) и на Global Nitrogen Dioxide Monitoring Home Page. На последней есть временные ряды наблюдений за концентрацией диоксида азота для крупнейших городов мира.

#атмосфера
Концентрация NO2 в Стамбуле по данным OMI (2020-2023 годы).