Обзор STAC для Microsoft Planetary Computer Pro

В этой статье представлен обзор спецификации каталога активов SpatioTemporal (STAC) и его использования Microsoft Planetary Computer Pro.

Спецификация STAC

Спецификация STAC — это открытый, управляемый сообществом стандарт, который упрощает поиск, объединение и использование геопространственных данных. STAC предоставляет общую структуру для описания и каталогизации "spatiotemporal assets". Эта структура позволяет индексировать и упорядочивать данные как в пространстве, так и во времени.

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

  • Спутниковые, воздушные и беспилотные изображения
  • Данные LIDAR и SAR
  • Полное видео движения
  • Гиперспектральные данные
  • Другие производные форматы данных

Кроме того, вы можете использовать STAC с существующими и новыми облачными форматами данных, такими как облачные оптимизированные GeoTIFF (COGs) и GeoParquet.

С момента выпуска в 2018 году многие организации быстро приняли STAC для организации их пространственных данных. К этим организациям относятся спутниковые операторы, государственные учреждения, группы гражданского общества и коммерческие компании.

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

Планетарный компьютер Pro использует спецификацию STAC во всех аспектах управления данными.

flowchart LR
    subgraph GC["GeoCatalog (Azure resource)"]
        direction TB
        subgraph C1["STAC Collection"]
            I1["STAC Items"]
        end
        subgraph C2["STAC Collection"]
            I2["STAC Items"]
        end
        subgraph C3["STAC Collection"]
            I3["STAC Items"]
        end
    end

    API["STAC API"]
    GC -- exposes --> API

    classDef resource fill:#0a3d62,stroke:#0a3d62,color:#ffffff;
    classDef collection fill:#e8f1fb,stroke:#0a3d62,color:#0a3d62;
    classDef items fill:#ffffff,stroke:#0a3d62,color:#0a3d62;
    classDef api fill:#1e824c,stroke:#1e824c,color:#ffffff;

    class GC resource;
    class C1,C2,C3 collection;
    class I1,I2,I3 items;
    class API api;

Замечание

Microsoft Planetary Computer Pro в настоящее время ориентирована на спецификацию STAC 1.0.0 и еще не совместима с STAC 1.1.0. Поддержка STAC 1.1.0 планируется для предстоящего выпуска.

GeoCatalogs и STAC

Общие сведения о GeoCatalogs

Служба Planetary Computer Pro позволяет создавать ресурс GeoCatalog в подписке Azure для приема, управления, поиска и распространения геопространственных наборов данных. GeoCatalog — это ресурс Azure, предоставляющий API, совместимый с STAC, для геопространственных данных, которыми вы управляете. Помимо поддержки API STAC, GeoCatalog предоставляет прием данных, управляемое хранилище, управление доступом на основе удостоверений, визуализацию и другие встроенные возможности Azure, которые не входят в саму спецификацию STAC.

С точки зрения API STAC GeoCatalog представляет объект каталога STAC верхнего уровня, который группирует свои коллекции STAC и элементы STAC. Вы можете просмотреть JSON каталога STAC верхнего уровня для определённого GeoCatalog с помощью веб-просмотрщика JSON по адресу https://<your geocatalog uri>/json-api?path=/. Дополнительные сведения о спецификации каталога STAC см. в спецификации каталога STAC.

GeoCatalog определяется с помощью следующих сведений:

Поле Описание
Подписка Подписка Azure, в которой вы развертываете экземпляр GeoCatalog
Группа ресурсов Группа ресурсов Azure, в которой развертывается экземпляр GeoCatalog
Имя Имя экземпляра GeoCatalog
Регион Регион Azure, в котором развертывается экземпляр GeoCatalog

В настоящее время планетарный компьютер Pro может развертывать GeoCatalogs в следующих регионах Azure:

  • Восток США
  • северо-центральная часть США
  • Западная Европа
  • Центральная Канада
  • UK South
  • Правительство США Вирджиния

Вы можете развернуть GeoCatalog с помощью портала Azure или Azure REST API. Сведения о развертывании GeoCatalog в подписке Azure см. в статье о создании ресурса GeoCatalog.

Коллекции STAC

Введение в коллекции

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

Определение коллекции

Планетарный компьютер Pro соответствует спецификации коллекции STAC, которая определяет набор общих полей для описания набора данных и включенных элементов.

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

Вы определяете коллекции в GeoCatalog в формате JSON. Определение включает следующие поля:

Поле Описание
Идентификатор Обязательный — идентификатор коллекции, уникальной для поставщика.
Тип Обязательный — тип элемента STAC; должно быть "коллекция".
Название Краткий описательный заголовок для коллекции.
Описание Подробное многострочное описание коллекции является обязательным, чтобы полностью объяснить ее.
Лицензии Требуется - лицензии коллекции.
Степень Обязательный атрибут. Описывает пространственные (долготы и широты) и темпоральные (диапазон дат) области коллекции.
Поставщики Организации, которые захватывают или обрабатывают содержимое коллекции.
Резюме Список пар "ключ-значение", которые предоставляют общие сведения о свойствах включенных элементов.
Активы коллекции Файлы данных, непосредственно связанные с коллекцией, например эскиз изображения.
Ресурсы элементов Сведения о файлах данных, включенных в элементы коллекции. Дополнительные сведения см. в ресурсах элемента.
Ссылки. Обязательный— список объектов связи с ресурсами и связанными URL-адресами.
Ключевые слова Список ключевых слов, описывающих коллекцию.
Версия STAC Обязательный — версия STAC, используемая коллекцией.

Ресурсы элементов

Поле item_assets на уровне коллекции показывает, какие ресурсы (файлы данных) доступны в любом дочернем элементе. Перечисленные ресурсы в этом поле не подразумевают, что все ресурсы доступны для всех элементов. Поле показывает объединение доступных активов, а не пересечение. Это поле можно включить в GeoCatalog с помощью расширения item_assets спецификации STAC. Вам потребуется расширение ресурсов элементов, если вы хотите визуализировать элементы в обозревателе GeoCatalog.

Поле item_assets представляет собой объект с по крайней мере двумя из следующих полей:

Поле Тип Описание
заголовок струна Отображаемый заголовок для клиентов и пользователей.
описание струна Описание ресурса, предоставляющего дополнительные сведения, например, как она была обработана или создана.
тип струна Тип носителя ресурса.
Роли список строк Семантические роли ресурса, аналогичные использованию атрибута rel в ссылках.

Примеры JSON коллекции

В следующем примере показана минимальная коллекция JSON. Дополнительные поля см. в спецификации коллекции STAC.

{
  "id": "example-collection",
  "type": "Collection",
  "title": "Example collection",
  "description": "An example collection",
  "license": "CC-BY-4.0",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180,
          -90,
          180,
          90
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2018-01-01T00:00:00Z",
          "2018-12-31T23:59:59Z"
        ]
      ]
    }
  },
  "links": [],
  "stac_version": "1.0.0"
}

Немного более сложный пример JSON см. в этом примере, в котором описывается открытый набор данных из программы Национальной сельскохозяйственной съемки (NAIP).

Конфигурация сбора

Чтобы визуализировать коллекции в обозревателе GeoCatalog, необходимо определить несколько конфигураций, в том числе:

Элементы STAC

Общие сведения о элементах STAC

GeoCatalog хранит и упорядочивает геопространственные наборы данных в коллекции. Элемент STAC — это основной объект в коллекции GeoCatalog. Он содержит метаданные для сцены и ссылки на ресурсы из этой сцены, например спутниковый образ. Метаданные элемента позволяют GeoCatalog выполнять поиск и запрос пространственных ресурсов. Дополнительные сведения о элементах STAC см. в разделе "Спецификация элементов STAC".

Определение элемента

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

Для допустимого элемента STAC требуются следующие поля:

Поле Описание
Идентификатор Обязательный — идентификатор элемента, который уникален в родительской коллекции элемента.
Тип Обязательный — тип объекта GeoJSON; должен быть "Feature"
Геометрия Обязательный— определяет полный объем ресурса, представленного этим элементом в виде объекта GeoJSON Geometry
Ограничивающий прямоугольник Обязательное — координаты ограничивающего прямоугольника объекта, представленного этим элементом
Свойства Обязательный — другие метаданные для элемента
Ресурсы Обязательный — ресурсы данных, связанные с элементом, каждый из которых имеет уникальный ключ.
Коллекция Обязательный: идентификатор коллекции-родителя элемента
Ссылки. Обязательный — список объектов связи с ресурсами и связанными URL-адресами
Версия STAC Обязательный — версия STAC, используемая элементом

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

Пример JSON элемента

В следующем примере показан базовый элемент JSON.

{
  "stac_version": "1.0.0",
  "stac_extensions": [],
  "type": "Feature",
  "id": "20201211_223832_CS2",
  "bbox": [
    172.91173669923782,
    1.3438851951615003,
    172.95469614953714,
    1.3690476620161975
  ],
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [
          172.91173669923782,
          1.3438851951615003
        ],
        [
          172.95469614953714,
          1.3438851951615003
        ],
        [
          172.95469614953714,
          1.3690476620161975
        ],
        [
          172.91173669923782,
          1.3690476620161975
        ],
        [
          172.91173669923782,
          1.3438851951615003
        ]
      ]
    ]
  },
  "properties": {
    "datetime": "2020-12-11T22:38:32.125000Z"
  },
  "collection": "simple-collection",
  "links": [
    {
      "rel": "collection",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple example collection"
    },
    {
      "rel": "root",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple example collection"
    },
    {
      "rel": "parent",
      "href": "./collection.json",
      "type": "application/json",
      "title": "Simple example collection"
    }
  ],
  "assets": {
    "visual": {
      "href": "[URL]",
      "type": "image/tiff; application=geotiff; profile=cloud-optimized",
      "title": "3-Band Visual",
      "roles": [
        "visual"
      ]
    },
    "thumbnail": {
      "href": "[URL]",
      "title": "Thumbnail",
      "type": "image/jpeg",
      "roles": [
        "thumbnail"
      ]
    }
  }
}

Расширения STAC

В настоящее время GeoCatalog автоматически добавляет следующие расширения ко всем обработанным коллекциям.

Расширения STAC также можно использовать на уровне элемента STAC.

Замечание

Элементы STAC, включая расширения, проверяются с помощью библиотеки PySTAC. Если возникают ошибки проверки STAC, попробуйте удалить расширение.

Полный список расширений STAC, включая зрелость каждого из них, см. на странице расширений STAC на сайте GitHub.

STAC API

API планетарного компьютера Pro соответствуют спецификации API STAC, поэтому вы можете быстро и легко искать наборы данных петабайтов, чтобы найти определенные ресурсы данных, соответствующие вашим потребностям. После идентификации этих ресурсов можно просмотреть или скачать ресурсы с помощью API GeoCatalog.

Дальнейшие шаги