Ники Лагроун, Джеймс Сантуччи и Аарон Су

Что такое СТАК?

Пространственно-временной каталог (STAC) — открытый стандарт обмена каталогами растровых и векторных данных. Целью стандарта является повышение функциональной совместимости поиска спутниковых изображений. Потенциальные применения анализа спутниковых изображений имеют далеко идущие последствия. Тем не менее, немногие обращаются к огромному количеству доступных данных.

Основным препятствием является сложность поиска и работы с данными — разнообразие форматов и описаний может поставить в тупик даже самых опытных пользователей.

Непредсказуемая среда

Зачем нам нужен СТАК?

Я попросил Джеймса Сантуччи, инженера-программиста из Raster Foundry, описать потребность в интероперабельности. Он рассказал мне о недавней конференции по перераспределению округов, на которой он присутствовал. Конференция собрала специалистов по данным и активистов. Активисты принесли свои навыки защиты интересов, а инженеры принесли множество векторных данных. Противники крайних махинаций, хорошо разбирающиеся в политической борьбе, имели гораздо меньше опыта работы с технологиями.

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

Хотя данные разные, потенциальные пользователи спутниковых снимков сталкиваются с аналогичными препятствиями. Сообщество STAC надеется создать экосистему, в которой пользователи смогут находить и использовать нужные им данные. Даже непрофессиональные пользователи смогут находить соответствующие пространственно-временные активы, если они хорошо проиндексированы и последовательно отформатированы.

Почему Azavea поддерживает STAC

Azavea продвигает программное обеспечение с открытым исходным кодом и стандарты для геопространственных данных. Мы гордимся тем, что являемся частью сообщества STAC и вносим свой вклад в этот невероятный ресурс. Raster Foundry, продукт Azavea для организации и анализа спутниковых и аэрофотоснимков, является центром нашей работы по развитию STAC. В настоящее время мы работаем над тем, чтобы сделать его более совместимым со спецификацией.

Развитие таксономии

Azavea вносит свой вклад в экосистему STAC с момента первого спринта. Последний сбор — четвертый спринт — прошел этим летом в Сан-Франциско.

Целями спринта были:

  • Создайте больше каталогов,
  • Улучшить программные инструменты и
  • Улучшить спецификацию.

Джеймс Сантуччи и Аарон Су (также инженер-программист Raster Foundry) посетили мероприятие, чтобы поделиться работой Азавеи и узнать, какие партнеры, такие как Планета, Климатическая корпорация, Фонд Radiant Earth, Астрея, Элемент 84 , и CosmiQ Works.

Аарон (инженер в дикой природе)

В Azavea у нас есть программное обеспечение и инструменты, которые могут быстро и точно управлять, генерировать, обучать и визуализировать данные машинного обучения. Работая с группой инженеров со схожими интересами, я внес свой вклад в одно из наиболее заметных дополнений каталога, появившееся в результате спринта: поддержку нового Расширения ярлыка. Моя команда также разместила pull request для устранения отсутствующих компонентов в расширении Label. PR был объединен после спринта. Наконец, мы добавили новую функцию в Raster Foundry для экспорта элементов данных этикеток, источников и ресурсов, совместимых с STAC, для поддержки нового расширения.

Я также кратко рассказал о рабочем процессе машинного обучения Azavea и о том, как STAC вписывается в него во время счастливого часа, организованного Climate Corporation. Во время этого выступления я познакомил сообщество STAC с Raster Foundry, Annotate и Vision — приложениями машинного обучения от Azavea.

Джеймс (удаленный каталогизатор)

Я работал на сервере, который принимает элементы STAC в качестве сообщений и возвращает слой плитки TMS. Хотя tiles.rdnt.io уже хорошо справляется с COG, когда у вас есть URL-адрес, на который можно указать, я хотел что-то, что отвечало бы двум требованиям:

  • Я хотел иметь возможность сериализовать и десериализовать ядро ​​спецификации STAC с безопасностью типов.
  • Я хотел иметь возможность использовать GeoTrellis и GeoTrellis Server Azavea для обслуживания тайлов.

Последним требованием может быть бессовестная вилка. Но Azavea проделала много много работы за последние несколько лет, чтобы упростить обслуживание плитки для различных категорий потребителей. Доказав несколько простых вещей о ваших данных (свойства, названные этими файлами .scala), вы можете отображать их в OGC-совместимых сервисах или в виде плиток TMS, а также получать некоторые типы метаданных, такие как экстенты и гистограммы. .

Первоначальная работа была сосредоточена на получении плиток TMS путем публикации элемента STAC:

И это прошло довольно хорошо! В частности, GDAL отлично справляется с кешированием уже прочитанных частей .tif. После этого начального чтения все идет довольно быстро.

Кодификация STAC

Аарон

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

Работа в группе по улучшению спецификации расширения Label была ценным опытом и возможностью работать в команде. В состав группы входили инженеры-программисты и специалисты по данным, которые регулярно работают с данными меток, в том числе Ник Вейр из CosmiQ Works (Spacenet), Дэйв Луо из Anthropocene Labs и Всемирный банк (OpenDRI). , и Фил Варнер из Астреи.

Мэттью Хэнсон (Элемент 84) и Сет Фитцсиммонс также дали полезные подсказки. Хотя обычно мы работаем с разными форматами этикеток, в STAC мы работали вместе и нашли общий язык. Мы предложили внести изменения в предлагаемое расширение Label после того, как подключили и поиграли с нашими реальными данными. Рабочая группа увенчалась успехом, выпустив:

  • PR, полный плодотворных дискуссий и результатов экспериментов,
  • примеры каталога STAC и
  • Реализация в рабочем веб-приложении (Raster Foundry).

Джеймс

Самым сложным аспектом спринта был удаленный компонент. Удаленное сотрудничество всегда будет затруднено для спринтов с коротким кодом. Тем более, когда в них участвуют люди, которые обычно не работают вместе. Будучи удаленным участником, я не знал, как найти соавторов или как сделать свою работу видимой для других. Это означало, что я стал работать самостоятельно.

В целом впечатления очень положительные. Текущая работа со STAC хорошо согласуется с задачами, которые мы пытались решить с помощью Raster Foundry. Примеры включают работу, включающую расширение визуализации для STAC (которое позволит отправлять инструкции по визуализации с геопространственными активами) и работу по расширению существующего расширения EO (область, которая, кажется, поднялась недавно).

Благодаря расширениям я также впервые обдумал, как обрабатывать разнородные смеси JSON. Эта проблема возникает, когда у вас есть гибкая схема и вы хотите получить от нее как можно больше информации. Если имеется пять возможных расширений для поля свойства в элементе STAC, то имеется десять различных схем с двумя расширениями, десять различных схем с тремя расширениями, пять различных схем с четырьмя расширениями и одна схема с пятью расширениями. Написание декодера вручную для одной из 26 различных форм записи звучало утомительно. С тем же успехом это могло быть приглашением опустить руки и разбрасывать непроанализированные значения JSON. Работая с коллегой, я придумал стратегию, связанную с записями бесформенного, которую команда с нетерпением ждет возможности попробовать в будущем.

STAC в действии: «Азавея-сфера»

Работа по использованию STAC для поддержки обмена данными в экосистеме Raster Foundry продолжается. Сначала мы сосредоточились на экспорте каталогов STAC из данных Raster Foundry в качестве замороженных входных данных в конвейеры машинного обучения для Raster Vision.

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

Будущие мероприятия

Спринты STAC позволяют организациям гарантировать, что создаваемые нами услуги и продукты могут взаимодействовать друг с другом даже без предварительной координации. Пятый спринт пройдет 5–7 ноября в Арлингтоне, штат Вирджиния, и станет совместным усилием сообществ STAC и OGC. Мы снова отправляем Аарона представлять Азавею. Напишите нам, если увидимся там!

Первоначально опубликовано на https://www.azavea.com 1 октября 2019 г.