Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som nämnts i Datatyper som stöds stöder Microsoft Planetary Computer Pro inmatning, molnoptimering och visualisering av datakubfiler i NetCDF-, HDF5-, Zarr- och GRIB2-format. Även om dessa tillgångar är komplexa och historiskt besvärliga på lokal lagring är de optimerade för molnmiljöer med Planetary Computer Pro, vilket ytterligare ger dem möjlighet att som effektiva verktyg för att strukturera och lagra flerdimensionella data som satellitbilder och klimatmodeller.
Inmatning av datakuber
Datakubfiler kan matas in i Planetary Computer Pro på samma sätt som andra rasterdatatyper. Precis som med andra datumformat måste tillgångar och associerade STAC-objekt (Temporal Asset Catalog) först lagras i Azure Blob Storage. Till skillnad från andra tvådimensionella rastertillgångar sker dock fler molnoptimeringssteg vid inmatning av vissa datakubformat (NetCDF och HDF5).
Anmärkning
GRIB2-data matas in på samma sätt som andra tvådimensionella rasterdata (utan några andra molnoptimeringssteg), eftersom de i huvudsak är en samling 2D-rastrar med en associerad indexfil som refererar till data effektivt i molnmiljöer. På samma sätt är Zarr redan ett molnbaserat format, så ingen optimering sker vid inmatning.
Molnoptimering av datakuber
När ett STAC-objekt som innehåller NetCDF- eller HDF5-tillgångar matas in, är tillgångarna molnoptimerade, inte genom att själva data transformeras, utan snarare genom generering av referensfiler som möjliggör effektivare dataåtkomst.
Molnoptimering via Kerchunk-manifest
Till skillnad från 2D-rasterdata som omvandlas till molnoptimerade geotiffer (COG:er) vid införsel i Planetary Computer Pro, optimeras datakubresurser genom generering av referensfiler eller Kerchunk-manifest. Kerchunk är ett Python-bibliotek med öppen källkod som skapar dessa segmentmanifest eller JSON-filer som beskriver strukturen för datakuben och dess segment med hjälp av segmentnycklar i Zarr-stil som mappar till byteintervallen i den ursprungliga filen där segmenten finns. När de har genererats lagras Kerchunk-filerna i bloblagringen tillsammans med tillgångarna, och STAC-objekten utökas för att inkludera referenser till dessa manifest, vilket optimerar dataåtkomsten för molnmiljöer.
STAC-objektegenskaper som utlöser molnoptimering
I samlingens STAC-objekt måste följande villkor vara uppfyllda för att en datakubtillgång ska vara molnoptimerad:
- Tillgångens format är en av följande typer:
application/netcdfapplication/x-netcdfapplication/x-hdf5
- Tillgången har ett
rolesfält som innehåller antingendataellervisuali dess lista över roller.
Om dessa villkor uppfylls genereras ett Kerchunk-manifest (assetid-kerchunk.json) i bloblagringen tillsammans med tillgången.
Anmärkning
Typ avapplication/x-hdf tillgångsformat motsvarar ofta HDF4-tillgångar. GeoCatalog-inmatning stöder för närvarande inte att skapa virtuella kerchunkmanifest för HDF4 på grund av dess extra komplexitet och flera varianter.
STAC-objektberikning
Om du vill ändra dina STAC-objekt med STAC-datacube-tillägget kan du aktivera berikningen genom att inkludera datacube_stac_enrichment: True flaggan på tillgångarna i din ursprungliga STAC-objekt-JSON.
För varje optimerad tillgång i STAC-objektet läggs följande fält till:
-
msft:datacube_converted: true– Anger att berikning tillämpades. -
cube:dimensions– En ordlista med datamängdsdimensioner och deras egenskaper. -
cube:variables– En ordlista som beskriver datamängdsvariabler och deras egenskaper.
Dessa variabler bör användas för återgivningskonfigurationer för att säkerställa att visualiseringen av datakubtillgångar i Utforskaren läser och återger dina data mest effektivt.
Fördelar med molnoptimerade datakuber
Molnoptimering av datakuber förbättrar prestanda för dataåtkomst, särskilt för visualiseringsarbetsflöden. När ett Kerchunk-manifest finns ger det snabbare åtkomst jämfört med att läsa in hela datamängdsfilen.
Microsoft Planetary Computer Pro Explorer och tiling-API:er använder företrädesvis Kerchunk-manifestet för dataläsningsåtgärder om det finns ett i samma bloblagringskatalog som den ursprungliga tillgången.
Det går snabbare att läsa data med en segmenterad, referensbaserad metod eftersom den undviker att läsa hela filen i minnet.
Inaktivera molnoptimering för datakuber
Om du bestämmer dig för att du inte vill arbeta med molnoptimerade datakubtillgångar inaktiverar du molnoptimering genom att ta bort data och visual från tillgångslistan i STAC-objektets roles JSON före inmatning.
Zarr-inmatning och datauppdateringar
Som tidigare nämnts är Zarr i sig ett molnbaserat format, så ingen extra optimering sker vid inmatning och ingen ändring av dess STAC-objekt krävs. Men om du planerar att dynamiskt uppdatera dina Zarr-tillgångar och återanvända STAC-objekt för att fungera med den senaste versionen måste du vara medveten om två uppdateringsmetoder: Lägg till och synkronisera.
Append
Om du lägger till nya data i ett lokalt lagrat Zarr-lager, men vill uppdatera den version som lagras i Planetary Computer Pro, måste du ange STAC-objektet igen. När objektet återingesteras är standardbeteendet att granska tillgångarna för att hitta ny data och lägga till den i den data som lagras i molnet. Ingen ändring av STAC-objektet krävs innan återingesering.
Synkronisering
Om du tar bort data från ett lokalt lagrat Zarr-lager kommer inte återinitiering av samma STAC-objekt att tillåta den molnbaserade versionen att matcha versionen som finns lagrad lokalt, eftersom tilläggsfunktionen letar efter ny data, men inte anpassar sig efter data som saknas. Det är där synkroniseringen spelar in. Genom att ändra STAC-objektet för att inkludera en parameter som indikerar att du vill synkronisera den befintliga datan med den nya, och sedan läsa in det ändrade STAC-objektet igen, är endast de mest aktuella data från Zarr-store tillgängliga i Planetary Computer Pro. Ändringen av STAC-objektet bör visas på följande sätt:
{
...
"assets": {
"pr": {
"href": "https://managedstorage.azure.com/collection-container/somestuff/pr.zarr",
"msft:ingestion": {
"directory": "sync"
}
}
}
}