Современные облачные маски теперь доступны на Sentinel Hub

s2cloudless - это алгоритм машинного обучения для вычисления облачных масок на изображениях Sentinel-2. За последние два года он был хорошо воспринят сообществом, став одним из самых современных алгоритмов для обнаружения облаков. В связи с большим интересом мы объявляем о доступности предварительно вычисленных облачных масок для всего архива Sentinel-2 через сервис Sentinel Hub. Это повышает ценность услуги, открывая фантастические возможности для создания удивительных приложений для наблюдения за Землей!

Облачный детектор Sentinel-2 - s2cloudless

Прошло немногим более двух лет с момента выпуска нашего алгоритма обнаружения облака на основе машинного обучения для изображений Sentinel-2, и кажется, что это идеальное время, чтобы сообщить о полученных на данный момент откликах, а также поделиться очень интересными новостями о его доступность через Sentinel Hub.

С момента выпуска пакета Python s2cloudless мы получили очень положительные отзывы от многих пользователей, в частности, относительно общей точности, гибкости использования и скорости выполнения. В целом s2cloudless был загружен более 47 000 раз и используется в десятках приложений. Помимо самого алгоритма, мы были счастливы поделиться данными обучения и проверки со многими пользователями, которые обратились к нам.

Поскольку маскирование облаков является ключевым этапом предварительной обработки изображений Sentinel-2, s2cloudless стал опорой в нашей eo-learn библиотеке для обработки спутниковых изображений и широко используется в наших производственных приложениях, включая нашу общенациональную систему мониторинга земного покрова для создавать точные карты земного покрова и нашу обсерваторию BlueDot для мониторинга уровня поверхностных вод открытых водоемов.

Под капотом s2cloudless обрабатывает пиксель за пикселем изображения. Алгоритм не принимает во внимание какой-либо пространственный контекст, как это делают, например, сверточные нейронные сети, а вместо этого присваивает каждому пикселю вероятность облака, основанную исключительно на десяти значениях полосы Sentinel-2 пикселя. Простота с точки зрения входных характеристик (вектор из десяти чисел против изображения В × Ш × С) и масштабная инвариантность облаков делают s2cloudless очень универсальным и мощным инструментом. оказывается, что у нас, как у пользователей, есть большая свобода в определении того, что такое пиксель. Мы обучили s2cloudless на пикселях Sentinel-2 10 м × 10 м, но в производстве применяем его к пикселям 160 м × 160 м. Мы также можем разорвать цепочки прямоугольных пикселей и запустить s2cloudless на усредненных значениях диапазона по произвольной пользовательской геометрии, доступной через наши запросы FIS. Пока облака покрывают большую часть области, определенной геометрией, s2cloudless будет давать значимый и очень полезный результат, как показано ниже.

Упражнение по взаимному сравнению маскировки облаков

В рамках обратной связи мы были особенно взволнованы, когда s2cloudless был приглашен принять участие в семинарах Упражнения по взаимному сравнению облачной маскировки (CMIX), организованных совместно ЕКА и НАСА, целью которых является предоставление стандартизированной оценки состояния -искусственные алгоритмы маскировки облаков для снимков Sentinel-2 и Landsat-8. Эта возможность была очень ценной для получения дополнительных знаний о вариантах использования и передовых методах, а также для внесения вклада в обсуждение стандартизации наборов данных для проверки и оценки алгоритмов.

И наши односценовые, и многовременные алгоритмы маскирования облаков для изображений Sentinel-2 участвовали в эксперименте, и оба алгоритма вошли в число самых эффективных детекторов маскирования облаков с точки зрения точности пользователя и производителя. Результаты учений скоро будут опубликованы вместе с набором оценочных данных. Эти результаты очень полезны для количественной оценки различных алгоритмов, в частности, применительно к различным вариантам использования, например растительный покров или сельское хозяйство, морские и водные приложения, исследования ледяного покрова, где точность пользователя будет приоритетом над точностью производителя или наоборот. Упражнение CMIX также позволило в некоторой степени оценить чувства, разделяемые многими пользователями, такими как партнеры, участвующие в проекте Perceptive Sentinel, которые считают s2cloudless одним из наиболее эффективных алгоритмов облачного маскирования изображений Sentinel-2.

Доступно на Sentinel Hub!

Учитывая такие положительные отзывы, мы решили использовать s2cloudless и предварительно вычислить вероятности и маски облачности для всего архива Sentinel-2, чтобы сделать их доступными через Службы Sentinel Hub при запросе данных L1C или L2A. Эта обработка уже началась, и вы можете запросить маски облачности (CLM) и вероятности облачности (CLP). слои для регионов Словении и Хорватии с 2019 года. Весь архив очень скоро будет обработан. Попробуйте сами с помощью простого скрипта на EO Browser! Оба слоя ведут себя как любой другой бэнд Sentinel-2, так что вы можете просто начать их использовать.

Слои CLP и CLM имеют следующие возвращаемые значения:

  • CLM: 0 (no_cloud), 1 (cloud), 255 (no_data)
  • CLP: 0–255 (cloud_proba)

Все возвращаемые значения находятся в диапазоне uint8 [0–255], поэтому, чтобы вернуть вероятности облачности в диапазон [0–1], необходимо разделить их на 255.

Слои CLP и CLM вычисляются на полных изображениях Sentinel-2, дискретизированных с разрешением 160 м. Используется тот же алгоритм машинного обучения, что и в s2cloudless, что означает, что вероятности облака, сгенерированные s2cloudless в 160m, соответствуют вероятностям CLP, возвращаемым Sentinel Hub точно, при условии, что ограничивающая рамка совмещена с выборочными данными. прежде всего, для изготовления масок. Подробнее о процедуре и полученном продукте читайте в документации Sentinel Hub.

Все преимущества использования Sentinel Hub, такие как автоматическая передискретизация до требуемого разрешения и интересующей области, также применимы к облачным слоям. Облачные маски в Sentinel Hub затем генерируются из вероятностей облачности немного другим способом, чем настройки по умолчанию в s2cloudless, но, по нашему опыту, это не имеет значения для большинства приложений. Если вам нужны настраиваемые облачные маски, вы можете добиться этого, запросив слой CLP с желаемым разрешением и применив настраиваемую постобработку, такую ​​как усреднение, пороговое значение или используя бинарные морфологические операторы.

Мы тщательно протестировали использование слоев CLP и CLM в наших приложениях и обнаружили большие преимущества с точки зрения эффективности, скорости и затрат по сравнению с запуском s2cloudless вручную, который потребовалась загрузка 10 полос Sentinel-2. Наличие более точной и предварительно вычисленной информации об облачном покрытии на уровне пикселей вместо менее точной на уровне плитки открывает большие возможности для всех приложений, использующих изображения Sentinel-2.

Обновления для пользователей eo-learn

Благодаря очень хорошо принятой записной книжке Jupyter и сопутствующим публикациям на Medium о классификации земного покрова на примере Словении мы обновили пример в eo-learn, приняв во внимание службу облачных масок. Таким образом, каждый может увидеть рост проекта и связанные с ним преимущества исследований и разработок.

Читатели, впервые прочитавшие в нашей серии сообщений в блоге, подробно рассмотрели, как выполнить классификацию земного покрова с помощью машинного обучения применительно к изображениям Sentinel-2 L1C. Процесс вычисления облачных масок старым способом сильно пострадал с точки зрения обычных персональных компьютеров. Для того, чтобы облачная маскировка работала, нужно было загрузить почти все диапазоны Sentinel-2 L1C, а затем выполнить изрядный по ресурсам процесс вычислений, используя ресурсы как с точки зрения процессорного времени, так и использования оперативной памяти. Учитывая новую услугу, вся тяжелая работа уже сделана за вас, поэтому вы можете просто загрузить любые группы, которые вам нравятся, вместе с существующими облачными масками и вероятностями!

В примере с записной книжкой так определяется EOTask для загрузки:

Мы сравнили использование компьютерных ресурсов для процесса получения шести конечных полос (B02, B03, B04, B08, B11, B12) и подготовили облачные маски к использованию. Мы выполнили процесс на одном ядре ЦП для 25 патчей EOP размером 500 м × 500 м и сравнили использование оперативной памяти с течением времени. На изображении ниже мы видим, что с обновленным кодом и загрузкой облачной информации процесс завершился в два раза быстрее и потреблял меньше оперативной памяти, что сделало запросы изображений Sentinel-2 быстрее и дешевле.

В дополнение к этому мы также обновили все обновления EOPatches для Словении 2019, которые доступны по адресу http://eo-learn.sentinel-hub.com/. Обновления включают в себя все преимущества недавних eo-learn обновлений, такие как загрузка и сохранение непосредственно в корзины Amazon S3 и из них! Все, что вам нужно сделать, это указать правильный путь, например:

EOPatch.load('s3://eo-learn.sentinel-hub.com/eopatches_slovenia_2019/eopatch_id_0_col_0_row_19')

и вы уже можете начать использовать EOPatch, загруженный непосредственно из AWS. Мы приглашаем вас заново открыть для себя пример записной книжки и начать экспериментировать с еще более богатыми данными, чем раньше!

Облачный сервис с запросами FIS

Все преимущества, упомянутые выше, справедливы и для пользователей запросов FIS. В большинстве случаев необходимы только усредненные значения NDVI. Однако, чтобы скрыть облачные наблюдения, до сих пор нужно было запросить и обработать десять полос. Теперь процесс намного проще и дешевле. Запрос FIS со следующим настраиваемым скриптом, который возвращает два диапазона (NDVI и CLM), приведет к усредненным значениям NDVI по заданной пользователем геометрии, а также к доле облачности. пикселей на каждое наблюдение. Пользователю нужно только решить, какой порог установить, чтобы отфильтровать облачные наблюдения.

Спасибо!

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

Обновление (2020–05–06)

После публикации этой новости мы были проинформированы о том, что Google имеет те же планы, уже в разработке, по обработке данных в GEE с использованием того же пакета s2cloudless. Этот факт очень много значит для нас, поскольку он демонстрирует добавленную стоимость нашего вклада с открытым исходным кодом в область EO. Он также представляет собой внешнюю проверку качества маскировки облаков.

Что ж, эта новость также побудила нас немного ускорить работу и обработать полный архив. Таким образом, с сегодняшнего дня вы можете получить облачные маски для полного архива на Sentinel Hub.

Обновление (2020–05–12)

Также читайте больше о предыстории о том, как мы создали полный архив облачных масок Sentinel-2 менее чем за день.