Snabbstart: Kom igång med datakuber i Microsoft Planetary Computer Pro

Förutsättningar

Konfigurera inmatningskälla

Innan du kan börja mata in datakubdata måste du konfigurera en inmatningskälla som fungerar som dina autentiseringsuppgifter för att få åtkomst till Blob Storage-kontot där dina tillgångar och STAC-objekt lagras. Du kan konfigurera en inmatningskälla med hjälp av hanterad identitet eller SAS-token.

Skapa en datakubsamling

När inmatningskällan har konfigurerats kan du skapa en samling för dina datakubtillgångar. Steg för att skapa en samling kan följas i Skapa en STAC-samling med Microsoft Planetary Computer Pro med Python.

Importera datakubresurser

Initieringen av inmatningsprocessen för datakubdata och andra datatyper kan följas i Översikt över inmatning. Som beskrivs i Översikt över datakuben är dock inmatning steget i Planetary Computer Pros datahantering som skiljer sig åt för dessa filtyper. Medan GRIB2-data och tillhörande STAC-objekt matas in precis som andra tvådimensionella rasterfiler genomgår NetCDF- och HDF5-tillgångar ytterligare databerikning. Genereringen av Kerchunk-manifest dokumenteras i Översikt över datakuben, men det som är viktigt att notera är att Kerchunk-tillgångar läggs till i bloblagringscontainern tillsammans med de ursprungliga tillgångarna, och ytterligare cube:variables ett fält läggs till i STAC Item JSON. Detta är viktigt när du återger dessa datatyper i Planetary Computer Pro Explorer.

Konfigurera en datakubsamling

Konfigurationen av datakubsamlingen är ett annat steg som skiljer sig något från andra datatypers. Du kan följa stegen som beskrivs i Konfigurera en samling med webbgränssnittet Microsoft Planetary Computer Pro för att konfigurera datakubsamlingen, men du måste vara medveten om följande skillnader när du skapar renderkonfigurationen:

Rendera konfiguration för NetCDF- och HDF5-tillgångar

Kom ihåg att ett standardargument för renderningskonfiguration i JSON-format ser ut så här:

[
  {
    "id": "prK1950-06-30",
    "name": "prK1950-06-30",
    "type": "raster-tile",
    "options": "assets=pr-kerchunk&subdataset_name=pr&rescale=0,0.01&colormap_name=viridis",
    "minZoom": 1,
    "info_options": "assets=pr-kerchunk&subdataset_name=pr"
  }
]

Fältet options är där du vill använda den molnoptimerade Kerchunk-tillgången, i motsats till den ursprungliga tillgången som anges i STAC-objektet. Du måste också inkludera subdataset_name argumentet, som är namnet på variabeln som du vill återge.

Fältet info_options aktiverar Explorers tidsreglage för denna samling. Den använder samma URL-frågesträngsformat som options, men bör endast innehålla de parametrar som behövs för /info upptäckt, vanligtvis assets och subdataset_name. Utelämna styling- och snittparametrar som rescale, colormap_name, och datetime. När du vill att reglaget ska förbli aktivt, fäst datetime=... inte in options, eftersom ett hårdkodat värde åsidosätter reglaget. Om du utelämnar info_options, faller Utforskaren tillbaka till att läsa tidsgränser från STAC-objektets metadata (cube:dimensions, start_datetime, end_datetime).

Rendera konfiguration för GRIB2-tillgångar

Fältet options för renderningskonfigurationen för GRIB2-tillgångar ser ut ungefär som i föregående exempel, men du behöver inte ta med subdataset_name argumentet. Detta beror på att GRIB2-data redan är optimalt strukturerade och refereras via deras indexfiler. Argumentet assets representerar i det här fallet det band eller 2D-rasterskikt som du vill återge. Nedan visas ett exempel på en GRIB2-återgivningskonfiguration:

[ 
 {
    "id": "render-config-1",
    "name": "Mean Zero-Crossing Wave Period",
    "description": "A sample render configuration. Update `options` below.",
    "type": "raster-tile",
    "options": "assets=data&subdataset_bands=1&colormap_name=winter&rescale=0,10",
    "minZoom": 1,
    "info_options": "assets=data"
 }
]

För GRIB2, sätt info_options till tillgångsnyckeln som används i options. Att lägga till info_options aktiverar Explorers tidsreglag, som upptäcker tillgängliga GRIB-band/meddelandeindex direkt från Tilerens /info slutpunkt. Om din GRIB-samling exponerar flera renderingskonfigurationer för olika resurser, lägg till info_options i varje renderingsalternativ som ska styra ett reglage.

Rendera konfiguration för Zarr-resurser

Fältet options för Zarr-tillgångar liknar NetCDF och HDF5, men det finns två viktiga krav:

  1. Välj en enskild tidssektor för rendering genom att använda sel=time=....
  2. Minska data till 2D-utdata före återgivning.

Om ytterligare dimensioner inte komprimeras kan återgivningen misslyckas med fel som Source data must be 1 band.

Du kan läsa mer om parametern sel i Xarray DataArray.sel. Följande är en minimal fungerande Zarr-renderingskonfiguration för ett enskilt tidssteg och 2D-utdata.

[
    {
        "id": "era5-zarr-single-time",
        "name": "ERA5 single timestep",
        "type": "raster-tile",
        "options": "assets=data&subdataset_name=precipitation_amount_1hour_Accumulation&sel=time=2024-01-01&sel_method=nearest&colormap_name=viridis&rescale=0,0.01",
        "minZoom": 12
    }
]

Visualisera datakubtillgångar i Utforskaren

När dina datakubtillgångar har matats in och konfigurerats kan du visualisera dem i Planetary Computer Pro Explorer. En stegvis guide för att använda Utforskaren kan följas i Snabbstart: Använd Utforskaren i Microsoft Planetary Computer Pro.

Även om Microsoft Planetary Computer Pro innehåller en plattsättare som kan användas för att visualisera vissa datakubtillgångar, finns det vissa varningar att notera när det gäller varje datatyp som stöds.

NetCDF- och HDF5-visualisering

Alla NetCDF-datauppsättningar som kan matas in i Microsoft Planetary Computer är inte kompatibla med Planetary Computer Pro:s visualiserings tiler. En datauppsättning måste ha X- och Y-axlar, latitud- och longitudkoordinater samt rumsliga dimensioner och gränser som ska visualiseras. Till exempel är en datauppsättning där latitud och longitud är variabler, men inte koordinater, inte kompatibla med Planetary Computer Pros plattsättare.

Innan du försöker visualisera din NetCDF- eller HDF5-datauppsättning kan du använda följande för att kontrollera om den uppfyller kraven.

  1. Installera nödvändiga beroenden

    pip install xarray[io] rioxarray cf_xarray
    
  2. Kör följande funktion:

    import xarray as xr
    import cf_xarray
    import rioxarray
    
    def is_dataset_visualizable(ds: xr.Dataset):
        """
        Test if the dataset is compatible with the Planetary Computer tiler API.
        Raises an informative error if the dataset is not compatible.
        """
        if not ds.cf.axes:
            raise ValueError("Dataset does not have CF axes")
        if not ds.cf.coordinates:
            raise ValueError("Dataset does not have CF coordinates")
        if not {"X", "Y"} <= ds.cf.axes.keys():
            raise ValueError(f"Dataset must have CF X and Y axes, found: {ds.cf.axes.keys()}")
    
        if not {"latitude", "longitude"} <= ds.cf.coordinates.keys():
            raise ValueError("Dataset must have CF latitude and longitude coordinates, "
                             f"actual: {ds.cf.coordinates.keys()}")
    
        if ds.rio.x_dim is None or ds.rio.y_dim is None:
            raise ValueError("Dataset does not have rioxarray spatial dimensions")
    
        if ds.rio.bounds() is None:
            raise ValueError("Dataset does not have rioxarray bounds")
    
        left, bottom, right, top = ds.rio.bounds()
        if left < -180 or right > 180 or bottom < -90 or top > 90:
            raise ValueError("Dataset bounds are not valid; they must be within [-180, 180] and [-90, 90]")
    
        if ds.rio.resolution() is None:
            raise ValueError("Dataset does not have rioxarray resolution")
    
        if ds.rio.transform() is None:
            raise ValueError("Dataset does not have rioxarray transform")
    
        print("✅ Dataset is compatible with the Planetary Computer tiler API.")
    

GRIB2-visualisering

GRIB2-tillgångar som har matats in i Microsoft Planetary Computer Pro kan visualiseras i Utforskaren så länge de har en associerad indexfil (.idx) lagrad i samma Blob Storage-container. Indexfilen genereras under inmatningen och krävs för optimal åtkomst och återgivning av GRIB2-data.

Zarr-visualisering

Zarr-tillgångar som matas in i Microsoft Planetary Computer Pro kan visualiseras i Utforskaren så länge renderningskonfigurationen anger vilken variabel och tidssektor som ska återges med hjälp av parametern seloptions i fältet. Om du inte gör det kommer Utforskaren att försöka återge alla variabler och tidssektorer i Zarr-arkivet samtidigt, vilket gör att Utforskaren kraschar.

Storleken på Zarr-butiken och rumsliga segment påverkar också prestandan. Du bör sträva efter att hålla den totala storleken på en Zarr-lagring under 2 GB och varje chunk mindre än 100 MB för bästa prestanda för tile-motorn.

Zarr-visualiseringsbegränsningar och kända problem

Tidslinjereglagebeteende (känd begränsning)

Anmärkning

Tidsreglagets beteende för Zarr är för närvarande begränsat. Explorer-tidsreglaget visas bara när en temporal dimension identifieras korrekt under inmatningen.

Även om Zarr-tillgångar innehåller tidsvärden kan inmatningen misslyckas med att identifiera temporala metadata för vissa datauppsättningar. I dessa fall renderas inte tidsreglaget och du måste visualisera ett tidssteg i taget i återgivningskonfigurationen (till exempel sel=time=2024-01-01).

För att aktivera tidsmedvetna beteenden bör dina STAC-metadata innehålla en tidsmässig dimension i cube:dimensions med:

  • type: temporal
  • extent
  • step

För Zarr-källdata följer du CF-tidskonventioner där det är möjligt, till exempel:

  • standard_name="time"
  • axis="T"

Dessa konventioner är nödvändiga för konsekvent metadatatolkning, men på grund av aktuella begränsningar räcker de inte alltid för att garantera tidsreglagestöd för varje Zarr-datauppsättning.

Kerchunk-anteckningar

Kerchunk kan förbättra prestanda för åtkomstmönster för flerdimensionella data, men det löser inte problem med tidsreglage när temporala dimensioner inte identifierades under inmatningen.

Vissa Zarr-datauppsättningar kan också misslyckas under indexbearbetningen med fel som Index must be monotonic increasing or decreasing.

Tidsreglage för datakubvisualisering

Om dina datakubtillgångar har en temporal komponent kan du använda tidsreglaget i Utforskaren för att visualisera ändringar över tid. Tidsreglaget visas automatiskt om dina STAC-objekt innehåller tillgångar med en time dimension med ett extent och step fält.

Anmärkning

Information om Zarr-tillgångar finns i Zarr-visualiseringsbegränsningar och kända problem för aktuella tidsreglagebegränsningar och nödvändiga återgivningskonfigurationsmönster.