STAC-översikt för Microsoft Planetary Computer Pro

Den här artikeln innehåller en översikt över STAC-specifikationen (SpatioTemporal Asset Catalog) och hur Microsoft Planetary Computer Pro använder den.

STAC-specifikation

STAC-specifikationen är en öppen, communitydriven standard som gör det enkelt att hitta, kombinera och använda geospatiala data. STAC tillhandahåller en gemensam struktur för att beskriva och katalogisera "spatiotemporal assets". Med den här strukturen kan du indexeras och organisera data över både utrymme och tid.

Med STAC kan organisationer göra sina geospatiala tillgångar tillgängliga för ett brett spektrum av användare. Du kan använda STAC-kataloger för att organisera många typer av geospatiala tillgångsdata, inklusive:

  • Satellit-, flyg- och drönarbilder
  • LIDAR- och SAR-data
  • Fullmotionvideo
  • Hyperspektrala data
  • Andra härledda dataformat

Dessutom kan du använda STAC med befintliga och framväxande molnbaserade dataformat som Cloud Optimized GeoTIFFs (COG:er) och GeoParquet.

Sedan lanseringen 2018 har många organisationer snabbt antagit STAC för att organisera sina rumsliga data. Dessa organisationer omfattar satellitoperatörer, myndigheter, grupper i det civila samhället och kommersiella företag.

STAC-specifikationen består av fyra kompletterande standarder för att beskriva geospatiala tillgångar, organisera dessa tillgångar i grupper och göra dessa tillgångar sökbara via vanliga API:er. Mer specifikt omfattar dessa STAC-standarder:

Planetary Computer Pro använder STAC-specifikationen för alla aspekter av datahantering.

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;

Anmärkning

Microsoft Planetary Computer Pro är för närvarande mål för STAC 1.0.0-specifikationen och är ännu inte kompatibel med STAC 1.1.0. Stöd för STAC 1.1.0 planeras för en kommande version.

GeoCatalogs och STAC

Introduktion till GeoCatalogs

Med tjänsten Planetary Computer Pro kan du skapa en GeoCatalog-resurs i din Azure-prenumeration för att mata in, hantera, söka efter och distribuera geospatiala datamängder. En GeoCatalog är en Azure resurs som exponerar ett STAC-kompatibelt API för de geospatiala data som du hanterar med den. Förutom stöd för STAC API tillhandahåller geoCatalog inmatning, hanterad lagring, identitetsbaserad åtkomstkontroll, visualisering och andra Azure interna funktioner som inte ingår i själva STAC-specifikationen.

Från ett STAC API-perspektiv presenterar en GeoCatalog ett STAC-katalogobjekt på toppnivå som grupperar sina STAC-samlingar och STAC-objekt. Du kan visa stac-katalog-JSON på den översta nivån för en specifik GeoCatalog med hjälp av JSON-webbvisaren på https://<your geocatalog uri>/json-api?path=/. Mer information om STAC-katalogspecifikationen finns i STAC Catalog Spec.

En GeoCatalog definieras med hjälp av följande information:

Fält Beskrivning
Prenumeration Azure-prenumeration där du distribuerar GeoCatalog-instansen
Resursgrupp Azure-resursgrupp där du distribuerar GeoCatalog-instansen
Namn Namnet på GeoCatalog-instansen
Region Azure-region där du distribuerar GeoCatalog-instansen

För närvarande kan Planetary Computer Pro distribuera GeoCatalogs i följande Azure-regioner:

  • östra USA
  • Norra centrala USA
  • Västeuropa
  • Kanada centrala
  • UK South
  • Amerikanska regeringen Virginia

Du kan distribuera en GeoCatalog med hjälp av Azure-portalen eller Azure REST API. Information om hur du distribuerar en GeoCatalog till din Azure-prenumeration finns i Skapa en GeoCatalog-resurs.

STAC-samlingar

Introduktion till samlingar

Med En GeoCatalog kan du skapa samlingar för att lagra och organisera geospatiala datamängder i Azure. Använd en STAC-samling för att beskriva en grupp STAC-objekt som delar egenskaper och metadata, till exempel ett gemensamt geografiskt område eller en sensor. Mer information om STAC-samlingskonceptet finns i STAC-samlingsspecifikationen.

Samlingsdefinition

Planetary Computer Pro följer STAC-samlingsspecifikationen, som definierar en uppsättning gemensamma fält för att beskriva datamängden och inkluderade objekt.

I en samling kan du ange typ och struktur för data som lagras i samlingen. Du kan också lägga till konfigurationsinställningar för återgivning för att visualisera data i samlingen med Planetary Computer Pro's Explorer.

Du definierar samlingar i GeoCatalog i JSON-format. Definitionen innehåller följande fält:

Fält Beskrivning
ID-nummer Obligatoriskt – Identifierare för samlingen som är unik för hela providern.
Typ Obligatorisk – STAC-elementtyp; måste vara "samling".
Titel Kort beskrivande enradsrubrik för samlingen.
Beskrivning Obligatorisk – Detaljerad beskrivning av flera rader för att helt förklara samlingen.
Licenser Obligatoriskt – samlingens licenser.
Utsträckning Obligatoriskt – beskriver samlingens rumsliga (longitud/latitud) och tidsmässiga (datumintervall).
Leverantörer Organisationer som samlar in eller bearbetar innehållet i samlingen.
Sammanfattningar Lista över nyckel/värde-par som ger en översikt över egenskaperna för de inkluderade objekten.
Samlingstillgångar Datafiler som är direkt associerade med samlingen, till exempel en miniatyrbild.
Objekttillgångar Information om de datafiler som ingår i samlingens objekt. Mer information finns i Objekttillgångar.
Länkar Obligatoriskt – Lista över länkobjekt till resurser och relaterade URL:er.
Nyckelord Lista över nyckelord som beskriver samlingen.
STAC-version Obligatorisk – STAC-version som används av samlingen.

Objekttillgångar

Fältet item_assets på samlingsnivå visar vilka tillgångar (datafiler) som är tillgängliga i alla underordnade objekt. De listade tillgångarna i det här fältet innebär inte att alla tillgångar är tillgängliga för alla objekt. Fältet visar union av tillgängliga tillgångar, inte skärningspunkten. Du aktiverar det här fältet i en GeoCatalog via item_assets-tillägget för STAC-specifikationen. Du behöver objektresurstillägget om du vill visualisera objekt i GeoCatalog Explorer.

Fältet item_assets är ett objekt med minst två av följande fält:

Fält Typ Beskrivning
titel snöre Den rubrik som visas för klienter och användare.
beskrivning snöre En beskrivning av tillgången med mer information, till exempel hur den bearbetades eller skapades.
typ snöre Medietyp för tillgången.
Roller lista över strängar Resursens semantiska roller, liknande hur rel används i länkar.

JSON-exempel för insamling

I följande exempel visas en minimal samlings-JSON. Fler fält finns i specifikationen för STAC-samlingen.

{
  "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"
}

Ett något mer komplext exempel på JSON finns i det här exemplet som beskriver en öppen datauppsättning från NAIP (National Agriculture Imagery Program).

Samlingskonfiguration

Om du vill visualisera samlingar i GeoCatalog Explorer måste du definiera flera konfigurationer, inklusive:

STAC-objekt

Introduktion till STAC-objekt

En GeoCatalog lagrar och organiserar geospatiala datamängder i samlingar. Ett STAC-objekt är kärnobjektet i en GeoCatalog-samling. Den innehåller metadata för en scen och länkar till tillgångar från den scenen, till exempel en satellitbild. Med metadata för ett objekt kan GeoCatalog söka efter och fråga efter rumsliga tillgångar. Mer information om STAC-objekt finns i STAC Item Spec.

Objektdefinition

Planetary Computer Pro följer STAC-objektspecifikationen, som definierar en uppsättning gemensamma fält för att beskriva ett objekt, till exempel tidsintervall och de tillgångar som är relaterade till objektet. Du definierar objekt i JSON-format och kan flexibelt expandera dem så att de innehåller fler metadata.

Ett giltigt STAC-objekt kräver följande fält:

Fält Beskrivning
ID-nummer Obligatoriskt – identifierare för objektet som är unikt i objektets överordnade samling
Typ Obligatoriskt – GeoJSON-objekttyp; måste vara "Funktion"
Geometri Obligatoriskt – definierar det fullständiga fotavtrycket för tillgången som representeras av det här objektet som ett GeoJSON-geometriobjekt
Avgränsningsruta Obligatoriskt – koordinater för avgränsningsrutan för tillgången som representeras av det här objektet
Egenskaper Obligatoriskt – andra metadata för objektet
Tillgångar Obligatoriskt – datatillgångar som är associerade med objektet, var och en med en unik nyckel
Samling Obligatoriskt – ID för objektets överordnade samling
Länkar Obligatorisk – lista över länkobjekt till resurser och relaterade URL:er
STAC-version Obligatorisk – STAC-version som används av objektet

Vanliga metadata för objekt utöver dessa obligatoriska fält innehåller datum och tid, licenser, leverantörer, instrument med mera.

JSON-exempel för objekt

I följande exempel visas ett grundläggande JSON-objekt.

{
  "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-tillägg

För närvarande lägger en GeoCatalog automatiskt till följande tillägg till alla inmatade samlingar:

Du kan också använda STAC-tillägg på STAC-objektnivå.

Anmärkning

STAC-objekt, inklusive tillägg, verifieras med hjälp av PySTAC-biblioteket. Om du stöter på STAC-valideringsfel kan du prova att ta bort tillägget.

En fullständig lista över STAC-tillägg, inklusive mognaden för var och en, finns på stac-tilläggssidan på GitHub.

STAC API

Planetary Computer Pros API:er överensstämmer med STAC API-specifikationen, så att du snabbt och enkelt kan söka i petabyteskalningsdatauppsättningar för att hitta specifika datatillgångar som uppfyller dina behov. När du har identifierat dessa tillgångar kan du visa eller ladda ned tillgångarna med geoCatalogs API:er.

Nästa steg