Преодоление разрыва между наблюдением за Землей и машинным обучением
Доступность данных открытого наблюдения Земли (EO) через программы Copernicus и Landsat представляет собой беспрецедентный ресурс для многих приложений EO, начиная от мониторинга землепользования и земного покрова (LULC), мониторинга урожая и прогнозирования урожайности, до борьбы со стихийными бедствиями, служб экстренной помощи и гуманитарная помощь. Учитывая большой объем данных с высоким пространственным разрешением при высокой частоте повторных посещений, требуются структуры, способные автоматически извлекать сложные шаблоны из таких пространственно-временных данных. eo-learn
направлен на предоставление набора инструментов, позволяющих сделать прототипирование сложных рабочих процессов EO максимально простым, быстрым и доступным.
Итак, что такое eo-learn
? eo-learn
- это библиотека Python с открытым исходным кодом, которая действует как мост между наблюдением Земли / дистанционным зондированием и экосистемой Python для науки о данных и машинного обучения (ML). С одной стороны, ее цель - сделать доступ к область дистанционного зондирования для неспециалистов проще. С другой стороны, предоставить экспертам по дистанционному зондированию современные инструменты компьютерного зрения, машинного обучения и глубокого обучения, существующие в экосистеме Python.
eo-learn
прост в использовании, имеет модульную конструкцию и поощряет сотрудничество - совместное использование и повторное использование определенных задач в типичном рабочем процессе извлечения значений EO, таких как облачная маскировка, совместная регистрация изображений, извлечение функций, классификация и т. Д. Все свободны использовать любые из доступных задач и рекомендуется улучшать их, разрабатывать новые и делиться ими с остальным сообществом. Библиотека распространяется под лицензией MIT, поэтому ее можно использовать, даже если они не хотят делиться. В дистанционном зондировании так много неиспользованного потенциала, что нас не слишком беспокоит конкуренция с использованием наших инструментов. Кто знает, возможно, кто-то с его помощью спасет Планету. Все выигрывают. При этом мы считаем, что в EO должно быть больше обмена, поэтому мы хотели бы, чтобы это было сделано и здесь.
В двух словах
Библиотека использует массивы NumPy и геометрию Shapely для хранения и обработки данных дистанционного зондирования. В настоящее время он доступен на нашем GitHub и скоро появится в указателе пакетов Python. Вы можете найти документацию на ReadTheDocs.
Строительными блоками eo-learn
являются EOPatch
, EOTask
и EOWorkflow
объекты. Все данные хранятся в EOPatch
экземплярах, где словари хранят массивы NumPy и геометрию Shapely для зависящей от времени пространственной информации (например, полосы Sentinel-2, Landsat 8 или Sentinel-1, облачные маски и т. Д.), Пространственной информации, не зависящей от времени (например, Цифровая модель рельефа, целевые карты LULC, количество допустимых пикселей и т. Д.), А также зависящая от времени и не зависящая от времени скалярная информация (например, метки для обнаружения изменений, углы солнца и т. Д.). Экземпляр EOPatch
однозначно определяется координатами ограничивающего прямоугольника и временным интервалом, к которому относятся сохраненные данные. Информация в любом формате, доступном для чтения пакетами Python, также может храниться в EOPatch
объектах.
Любые операции с EOPatch
экземплярами выполняются EOTask
экземплярами. Задачи сгруппированы по объему и упакованы в отдельные подпакеты Python, которые в настоящее время:
eo-learn-core
- Основной подпакет, который реализует основные строительные блоки (EOPatch
,EOTask
иEOWorkflow
) и часто используемые функции.eo-learn-io
- Подпакет ввода / вывода, который занимается получением данных из Sentinel Hub services и Geopedia.eo-learn-mask
- Сборник задач, используемых для маскировки данных и расчета облачных масок.eo-learn-features
- Набор задач для извлечения свойств данных и манипулирования функциями. Примеры включают задачи для вычисления пространственно-временных функций и функций Haralick, а также задачи интерполяции.eo-learn-geometry
- Подпакет для обработки геометрических преобразований, таких как преобразование вектора в растр и выборка масок меток для создания обучающих наборов для методов машинного обучения.eo-learn-ml-tools
- Сборник служебных задач машинного обучения, полезных для настройки или проверки модели машинного обучения.eo-learn-coregistration
- Сборник задач, реализующих различные методы совместной регистрации изображений.
Список реализованных в настоящее время EOTask
смотрите здесь. Если искомая задача еще не реализована, не волнуйтесь! Создать новый EOTask
так же просто:
EOTask
классы, созданные пользователями, затем могут быть добавлены в кодовую базу с помощью простого запроса на вытягивание, добавляя новые инструменты и функции, которые могут принести пользу всему сообществу.
Наконец, создается полный конвейер путем соединения задач с помощью EOWorkflow
. EOWorkflow
позволяет определять рабочий процесс в форме ациклического графа, где EOTask
экземпляров являются вершинами графа, а EOPatch
экземпляров проходят через ребра, соединяющие вершины. После определения рабочего процесса его можно запускать параллельно с различными EOPatch
экземплярами ввода, что позволяет автоматически обрабатывать большие объемы пространственно-временных данных. EOWorkflow
также предоставляет отчеты и журналы мониторинга выполнения, такие как входные параметры EOTask
, прошедшее время, использование памяти и возникшие исключения, облегчая контроль выполнения и управление версиями полных конвейеров машинного обучения.
Ознакомьтесь с README и документацией для получения дополнительной технической информации о том, как работает eo-learn
.
Примеры приложений
eo-learn
был разработан для обеспечения наиболее распространенных операций по обработке пространственно-временных данных, которые позволили бы создавать полноценные приложения дистанционного зондирования. Чтобы более подробно продемонстрировать потенциал eo-learn
, мы вскоре опубликуем две серии блогов о классификации землепользования и растительного покрова на уровне страны с использованием машинного обучения и о создание полного сервиса для автоматического глобального мониторинга уровня воды, как с использованием eo-learn
, так и данных Copernicus. Некоторые материалы, которые помогут вам начать работу с этими вариантами использования, уже можно найти в папке examples.
Учитывая наш хорошо известный интерес к работе с временными рядами и созданию интервалов времени, в этом блоге мы делимся простым EOWorkflow
для автоматической генерации интервалов времени с учетом ограничивающего прямоугольника и временного диапазона. Для создания замедленной съемки, подобной показанной ниже, требуются задачи S2L1CWCSInput
, AddCloudMaskTask
, SimpleFilterTask
и пользовательский MakeGIFTask
.
И если временной ряд подвержен проблемам ортотрансформирования, как это часто бывает с изображениями Sentinel-2, полученными до 2017 года, можно добавить RegistrationTask
для оценки и компенсации несоответствия, существующего между временными рамками, как показано ниже. . Скрипт, используемый для создания этих GIF-файлов, можно найти здесь.
Сообщество
Ключевым ресурсом успеха eo-learn
, конечно же, является сообщество экспертов как по дистанционному зондированию, так и по машинному обучению. Поэтому мы приглашаем всех, кто интересуется разработкой крупномасштабных приложений дистанционного зондирования, использующих пространственно-временные спутниковые изображения, попробовать eo-learn
, дать нам обратную связь и, возможно, внести свой вклад. Мы приветствуем улучшения кода, новые EOTask
классы и новые примеры рабочих процессов. Пользователи уже выполнили некоторые задачи, как в случае с функциями Haralick, созданными разработчиками в Magellium.
Мы постоянно улучшаем новые функции, стабильность и эффективность задач и рабочих процессов, поэтому некоторые вещи могут измениться в будущем по мере роста библиотеки. Однако в будущих выпусках мы постараемся минимизировать критические изменения, насколько это возможно. Первая бета-версия PyPI планируется через пару недель.
Мы будем демонстрировать eo-learn
на Международной конференции по открытию знаний и интеллектуальному анализу данных в Лондоне 19–23 августа, поэтому, пожалуйста, зайдите, если вы планируете принять участие. Следите за нашей серией статей о землепользовании и классификации растительного покрова, а также о том, как создать комплексную услугу для глобального мониторинга уровня воды в водохранилищах и водоемах.
eo-learn
является побочным продуктом европейского проекта Perceptive Sentinel. Проект получил финансирование от Программы исследований и инноваций Horizon 2020 Европейского Союза в рамках Соглашения о гранте 776115.