Работа с гиперспектральными изображениями EMIT в ArcGIS

EMIT — это спектрометр установленный на борту МКС в рамках программы исследования миграции мелких частиц минералов (пыли) по поверхности Земли.

Сенсор разработан и запущен лабораторией JPL, которая является подразделением NASA. Обработанные данные доступны бесплатно всем желающим. У данного инструмента 285 спектральных каналов с длинами волн от 380 до 2500 нанометров. Пространственное разрешение — 60 метров, ширина полосы захвата — 75 километров.

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

Как начать работать с этими данными в ArcGIS?

В ArcGIS Pro версии 3.3. была добавлена поддержка сенсора EMIT. Данные можно EMIT выбрать и скачать, например, на сайте EarthData. Но нужно учитывать, что область покрытия ограничена орбитой МКС и приоритет в съемке отдается пустынным территорям с минимальным раститетельным покровом. Текущее покрытие данными выглядит примерно так:

Пользователи ArcGIS могут работать с следующими продуктами EMIT:

  • Сцены уровня 2А (L2A Estimated Surface Reflectance and Uncertainty) — геопривязанные с атмосферной коррекцией.
  • Сцены уровня 2B (L2B Estimated Mineral Identification and Band Depth) — карты минералов рассчитанные на основе библиотеки эталонных спектров + канал (band depth), показывающий насколько близок спектр конкретного пикселя к эталону.
  • Продукт уровня 3A — глобальная карта, показывающая распространение 10 минералов с пониженным пространственным разрешением.

Сцены EMIT уровня 2A

Сцены поставляются в формате NetCDF. Если вы хотите самостоятельно классифицировать данные, вам нужен продукт уровня 2A. Это исходные изображения, содержащие 285 каналов, для которых была проведена радиометрическая и  атмосферная коррекция. Каждая сцена состоит из трех файлов с расширением «nc». Основные данные (гиперспектральная съемка) содержатся в файле Reflectance. Дополнительные маски воды, облаков и прочих мешающих классификации объектов содержатся в файле Mask, оценка неопределенности измеренного спектра в файле Reflectance Uncertainty. Далеко не всегда съемка производится в хорошую погоду, эти маски и оценки достоверности показателей позволяют использовать все объемы накопленных данных. Но для знакомства с данными лучше найти безоблачную летнюю сцену и не тратить время на применение масок. Пример сцены уровня 2A, файл c Reflectance выделен красным цветом.

Файл Reflectance сцены уровня 2A можно добавить в ArcGIS Pro с помощью инструмента Make Raster Layer.

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

При работе с гиперспектральными данными доступно специально окно переключения комбинаций каналов.

Можно добавить сцену EMIT уровня 2А в мозаику растров. Для этого нужно создать пустую мозаику и добавить в нее файл Reflectance, указав EMIT в качестве типа данных. При добавлении растра в мозаику зайти в свойства типа и поставить флажок Exclude bad bands, тогда в из растра будут удалены пустые каналы, которые видны на спектральном профиле в виде «провалов» в диапазонах ~1400 и ~1800-2000 нм.

Update 21.11.2024: в ArcGIS Pro версии 3.4 появился отдельный инструмент для визуализации гиперспектральных данных: https://pro.arcgis.com/en/pro-app/latest/help/analysis/image-analyst/add-hyperspectral-data.htm

Сцены EMIT уровня 2B

Эти сцены содержат информацию о предположительном минеральном составе поверхности, предсказанном с помощью сравнения измеренных спектров с лабораторными эталонами.

Работа с этими данными не совсем тривиальная. Для начала нужно добавить растр на карту с помощью инструмента Make Raster Layer. Причем, в качестве пути к растру нужно указать не непосредственный путь к файлу, а специальный запрос:

В результате вы получите растр с картой минералов. Переключитесь на отображение методом уникальных значений (Unique Values) и вы увидите готовую карту. Если вы хотите добавить сцены уровня 2B в мозаику растров, то из растра с картой минералов нужно сохранить атрибутивную таблицу. Потом добавить в мозаику сцену уровня 2B как тип EMIT, в качестве шаблона (Processing Template) выбрать Group 1 Mineral ID.

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

В открывшемся редакторе растровых функций добавьте в мозаику функцию Attribute Table. В параметрах функции укажите ранее сохраненную таблицу как внешнюю (external). В этой таблице содержится легенда с названиями минералов и ссылками на эталоны.

Подтвердите изменения и переключите отображение мозаики в режим уникальных значений. Вы увидите карту минерального состава с легендой. Также, в продукте уровня 2B есть информация о предположительной концентрации (abundance) минерала в данном пикселе. Эту информацию можно получить с либо с помощью создания растрового слоя (инструментом Make Raster Layer) через запрос:

Либо с помощью добавления растра в мозаику растров через шаблон Group 1 Band Depth.
Полное описание продукта уровня 2B можно найти здесь.

Инструменты для работы с сценами EMIT уровня 2B

Для того, чтобы упростить процесс работы с сценами уровня 2B, мы сделали небольшой набор инструментов на базе скриптов, который можно скачать по ссылке. Для работы с этими инструментами нужен ArcGIS Pro 3.3.x. Для некоторых инструментов требуются модули Image Analyst или Spatial Analyst. Распакуйте архив в нужную вам директорию, внутри будет набор инструментов, который называется EMIT.

Инструменты «Создать карту минералов» (mineral_id) и «Создать растр достоверности» (band_depth) автоматизируют процессы, описанные в предыдущем разделе.

Инструмент «Извлечь минерал из карты» создает растр, в котором область распространения конкретного минерала используется как маска, а в качестве значений пикселов используются значения из растра band_depth (расчетная концентрация минерала).

Другие инструменты для работы с данными EMIT

В ArcGIS Pro есть специализированный инструмент классификации мультиспектральных данных, который называется Classify Raster Using Spectra. Один из алгоритмов классификации, который в нем используется, это метод сопоставления спектральных углов (Spectral Angle Mapper). Принцип классификации очень простой — эталоный спектр можно представить в виде вектора размерности N, где N — это количество каналов растра. Любой пиксель растра — это тоже вектор размерности N. Между двумя векторами можно подсчитать угол и этот угол будет мерой сходства спектра конкретного пикселя с спектром эталона. Чем меньше угол, тем больше пиксель растра похож на эталон. Для работы с инструментом нужно создать обучающую выборку в виде точечного слоя. В нем обязательно должны быть поля classvalue (целочисленное) и classname (текстовое). Создать обучающую выборку можно как вручную, так и спомощью  инструмента Training Sample Manager.

На скриншоте в качестве исходного растра (Input Raster) используется сцена EMIT уровня 2A, в качестве обучающей выборки взяты точки с предположительным местонахождением минерала актинолита. В качестве порога отсечения (Thresholds) указано число 0.07, т.е. пиксели для которых спектральный угол меньше 0.07 будут определены как актинолит, остальные будут классифицированы как фон. Также инструмент сгенерирует дополнительный растр (Output Score Raster) с значениями углов между эталоном и конкретным пикселем.  Пример классификации:

Пример растра с значениям углов (меры схожести спектров). Чем меньше яркость пикселя, тем ближе спектр пикселя к спектру эталона.

Можно воспользоваться растровой функцией Mask и оставить в растре спектральных углов только значения от 0 до 0.07. Далее применить другую цветовую шкалу и мы получим карту схожести (и возможно концентрации) минерала с спектром, похожим на спектр актинолита.

Примеры применения данных EMIT

Можно взять три минерала из группы 1 и группы 2, использовать их в качестве маски для каналов band_depth и синтезировать трехканальный растр, который будет показывать присутствие (концентрацию) трех минералов. Картинка взята из статьи на в блоге Esri. Вы можете сгенерировать такую карту самостоятельно, воспользовавшись инструментом «Извлечь минерал из карты». Для этого нужно выбрать три минерала, сгенерировать три растра и потом объединить их в многоканальное изображение.

P.S. Для ускорения (более чем в 10 раз) процессов обработки данных уровня 2A рекомендуется конвертировать растры в формат  CRF (расширение *.crf). Потому что данные EMIT в формате NetCDF обрабатываются очень медленно. Видимо, по причине большого количества каналов. Формат CRF в свою очередь поддерживает многомерные растры, оптимизирован для параллельной обработки данных и конвертация в него не приводит к потере информации. Для того, чтобы конвертировать растровый слой в CRF, воспользуйтесь инструментом Copy Raster.