Przegląd STAC dla Microsoft Planetary Computer Pro

Ten artykuł zawiera omówienie specyfikacji spatioTemporal Asset Catalog (STAC) i sposobu korzystania z niej przez firmę Microsoft Planetary Computer Pro.

Specyfikacja STAC

Specyfikacja STAC to otwarty, oparty na społeczności standard, który ułatwia znajdowanie, łączenie i używanie danych geoprzestrzennych. StaC zapewnia wspólną strukturę opisującą i katalogującą "zasoby spatiotemporalne". Ta struktura umożliwia indeksowanie i organizowanie danych zarówno w przestrzeni, jak i w czasie.

Dzięki funkcji STAC organizacje mogą udostępniać swoje zasoby geoprzestrzenne szerokiemu zakresowi użytkowników. Wykazy STAC umożliwiają organizowanie wielu typów danych zasobów geoprzestrzennych, w tym:

  • Zdjęcia satelitarne, lotnicze i drony
  • Dane LIDAR i SAR
  • Wideo Pełnoruchemowe
  • Dane hiperspektywne
  • Inne formaty danych pochodnych

Ponadto można używać funkcji STAC z istniejącymi i pojawiającymi się formatami danych natywnych dla chmury, takimi jak Cloud Optimized GeoTIFFs (COGs) i GeoParquet.

Od czasu wydania w 2018 r. wiele organizacji szybko przyjęło STAC do organizacji danych przestrzennych. Organizacje te obejmują operatory satelitarne, agencje rządowe, grupy społeczeństwa obywatelskiego i firmy komercyjne.

Specyfikacja STAC składa się z czterech uzupełniających standardów dotyczących opisywania zasobów geoprzestrzennych, organizowania tych zasobów w grupach i dokonywania wyszukiwania tych zasobów za pośrednictwem typowych interfejsów API. W szczególności te standardy STAC obejmują:

Planetary Computer Pro używa specyfikacji STAC we wszystkich aspektach zarządzania danymi.

Diagram przedstawiający składniki specyfikacji STAC i ich relacje, w tym wykaz STAC, kolekcję STAC, elementy STAC i interfejs API STAC ze strzałkami pokazującymi, jak łączą się ze sobą.

Wykazy STAC

Wprowadzenie do geokatalogów

Usługa Planetary Computer Pro umożliwia utworzenie zasobu GeoCatalog w ramach subskrypcji platformy Azure w celu pozyskiwania, wyszukiwania i dystrybuowania zestawów danych geoprzestrzennych oraz zarządzania nimi. GeoCatalog to zasób platformy Azure, który z perspektywy interfejsu API STAC jest logicznie odpowiednikiem wykazu STAC. Wykaz STAC to obiekt najwyższego poziomu w hierarchii STAC, który logicznie grupuje kolekcje STAC i elementy STAC. Kod JSON wykazu STAC można wyświetlić dla określonego geokatalogu przy użyciu przeglądarki internetowej JSON i przejść do strony https://<your geocatalog uri>/json-api?path=/. Aby uzyskać więcej informacji na temat specyfikacji wykazu STAC, zobacz specyfikację wykazu STAC.

GeoCatalog jest definiowany przy użyciu następujących informacji:

(No changes needed) Opis
Subskrypcja Subskrypcja platformy Azure do wdrażania wystąpienia GeoCatalog
Grupa zasobów Grupa zasobów platformy Azure, w której wdrażasz instancję GeoCatalog
Nazwa Nazwa wystąpienia GeoCatalogu
Rejon Region Azure, w którym wdrażasz instancję GeoCatalog

Obecnie Planetary Computer Pro może wdrażać geokatalogy w następujących regionach świadczenia usługi Azure:

  • Wschodnie stany USA
  • Północno-środkowe stany USA
  • Europa Zachodnia
  • Kanada Środkowa
  • Południowe Zjednoczone Królestwo
  • Rząd USA Wirginia

Dziennik geograficzny można wdrożyć przy użyciu witryny Azure Portal lub interfejsu API REST platformy Azure. Aby dowiedzieć się, jak wdrożyć GeoCatalog w ramach subskrypcji Azure, zobacz Tworzenie zasobu GeoCatalog.

Kolekcje STAC

Wprowadzenie do kolekcji

GeoCatalog umożliwia tworzenie kolekcji do przechowywania i organizowania zestawów danych geoprzestrzennych na platformie Azure. Użyj kolekcji STAC, aby opisać grupę elementów STAC, które współdzielą właściwości i metadane, takie jak wspólny obszar geograficzny lub czujnik. Aby uzyskać więcej informacji na temat koncepcji kolekcji STAC, zobacz Specyfikacje kolekcji STAC.

Definicja kolekcji

Planetary Computer Pro jest zgodna ze specyfikacją kolekcji STAC, która definiuje zestaw typowych pól do opisania zestawu danych i uwzględnionych elementów.

W kolekcji można określić typ i strukturę danych przechowywanych w tej kolekcji. Możesz również dodać ustawienia konfiguracji renderowania , aby wizualizować dane w kolekcji przy użyciu Eksploratora komputerów planetarnych Pro.

Kolekcje definiuje się w GeoCatalogu w formacie JSON. Definicja zawiera następujące pola:

(No changes needed) Opis
identyfikator Wymagane — identyfikator kolekcji, która jest unikatowa dla dostawcy.
Typ Wymagane — typ elementu STAC; musi być "kolekcja".
Nazwa Krótki opisowy tytuł jednoliniowy kolekcji.
Opis Wymagane — szczegółowy opis wielowierszowy, który dokładnie wyjaśnia kolekcję.
Licencje Wymagane — licencje kolekcji.
Zakres Wymagane — opisuje zakresy przestrzenne (długość/szerokość geograficzna) i czasowe (zakres dat) kolekcji.
Dostawcy usługi Organizacje, które przechwytują lub przetwarzają zawartość kolekcji.
Streszczeń Lista par klucz-wartość, które zawierają omówienie właściwości uwzględnionych elementów.
Zasoby zbiorów Pliki danych bezpośrednio skojarzone z kolekcją, takie jak obraz miniatury.
Zasoby przedmiotów Szczegółowe informacje o plikach danych zawartych w elementach kolekcji. Aby uzyskać więcej informacji, zobacz Zasoby elementów.
Linki Wymagane — lista obiektów łącza do zasobów i powiązanych adresów URL.
Słowa kluczowe Lista słów kluczowych opisujących kolekcję.
Wersja STAC Wymagane — wersja STAC używana w tej kolekcji.

Zasoby elementów

Pole item_assets na poziomie kolekcji pokazuje, jakie zasoby (pliki danych) są dostępne w dowolnym elemencie podrzędnym. Wymienione zasoby w tym polu nie oznaczają, że wszystkie zasoby są dostępne dla wszystkich elementów. Pole zawiera związek dostępnych zasobów, a nie skrzyżowania. To pole można włączyć w GeoCatalog za pomocą rozszerzenia item_assets specyfikacji STAC. Potrzebujesz rozszerzenia zasobów elementów, jeśli chcesz wizualizować elementy w Eksploratorze geokatalogu.

Pole item_assets jest obiektem z co najmniej dwoma następującymi polami:

(No changes needed) Typ Opis
tytuł ciąg Wyświetlany tytuł dla klientów i użytkowników.
opis ciąg Opis zasobu, który zawiera więcej szczegółów, takich jak sposób jego przetworzenia lub utworzenia.
typ ciąg Typ nośnika zasobu.
Ról lista ciągów Semantyczne role elementu zawartości, podobne do użycia rel w linkach.

Przykłady kodu JSON kolekcji

W poniższym przykładzie przedstawiono minimalną strukturę JSON kolekcji. Aby uzyskać więcej pól, zobacz specyfikację kolekcji 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"
}

Aby zapoznać się z nieco bardziej złożonym przykładem JSON, zobacz ten przykład opisujący otwarty zestaw danych z Krajowego Programu Obrazów Rolnictwa (NAIP).

Konfiguracja kolekcji

Aby wizualizować kolekcje w Eksploratorze geokatalogu, należy zdefiniować kilka konfiguracji, w tym:

Elementy STAC

Wprowadzenie do elementów STAC

Usługa GeoCatalog przechowuje i organizuje zestawy danych geoprzestrzennych w kolekcje. Element STAC jest podstawowym obiektem w kolekcji GeoCatalog. Zawiera metadane sceny i linki do zasobów z tej sceny, takie jak obraz satelitarny. Metadane elementu umożliwiają usłudze GeoCatalog wyszukiwanie zasobów przestrzennych i wykonywanie względem ich zapytań. Aby uzyskać więcej informacji na temat elementów STAC, zobacz STAC Item Spec (Specyfikacje elementów STAC).

Definicja elementu

Planetary Computer Pro jest zgodna ze specyfikacją elementu STAC, która definiuje zestaw typowych pól do opisania elementu, takiego jak zakres czasu i zasoby związane z elementem. Definiujesz elementy w formacie JSON i można je elastycznie rozszerzać, aby uwzględnić więcej metadanych.

Prawidłowy element STAC wymaga następujących pól:

(No changes needed) Opis
identyfikator Wymagane — identyfikator elementu, który jest unikatowy w kolekcji nadrzędnej elementu
Typ Wymagane — typ obiektu GeoJSON; musi mieć wartość "Funkcja"
Geometria Wymagane — definiuje pełny zasięg zasobu, który jest reprezentowany przez ten element jako obiekt geometryczny GeoJSON.
Ramka ograniczająca Wymagane — współrzędne ramki ograniczającej zasobu reprezentowanego przez ten obiekt
Właściwości Wymagane — inne metadane elementu
Zasoby Wymagane — zasoby danych skojarzone z elementem, z których każdy ma unikatowy klucz
Kolekcja Wymagane — identyfikator kolekcji, do której należy element
Linki Wymagane — lista obiektów linków do zasobów i powiązanych adresów URL
Wersja STAC Wymagane — wersja STAC używana przez element

Typowe metadane elementów poza tymi wymaganymi polami obejmują datę i godzinę, licencje, dostawców, instrumentację i inne.

Przykład kodu JSON elementu

Poniższy przykład przedstawia podstawowy element 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"
      ]
    }
  }
}

Rozszerzenia STAC

Obecnie geocatalog automatycznie dodaje następujące rozszerzenia do wszystkich pozyskanych kolekcji:

Można również użyć rozszerzeń STAC na poziomie elementu STAC.

Uwaga / Notatka

Elementy STAC, w tym rozszerzenia, są weryfikowane przy użyciu biblioteki PySTAC. Jeśli wystąpią błędy weryfikacji STAC, spróbuj usunąć rozszerzenie.

Aby uzyskać pełną listę rozszerzeń STAC, w tym dojrzałość każdego z nich, zobacz stronę rozszerzeń STAC w witrynie GitHub.

STAC API

Interfejsy API Planetary Computer Pro są zgodne ze specyfikacją interfejsu API STAC, dzięki czemu można szybko i łatwo wyszukiwać zestawy danych petabajtów w celu znalezienia określonych zasobów danych spełniających Twoje potrzeby. Po zidentyfikowaniu tych zasobów możesz wyświetlić lub pobrać zasoby przy użyciu interfejsów API usługi GeoCatalog.

Dalsze kroki