Condividi tramite


Cubi di dati in Microsoft Planetary Computer Pro

Come indicato in Tipi di dati supportati, Microsoft Planetary Computer Pro supporta l'inserimento, l'ottimizzazione cloud e la visualizzazione dei file del cubo di dati nei formati NetCDF, HDF5, Zarr e GRIB2. Sebbene complessi e storicamente complessi nell'archiviazione locale, questi asset sono ottimizzati per gli ambienti cloud con Planetary Computer Pro, consentendo loro di offrire strumenti efficienti per strutturare e archiviare dati multidimensionali come immagini satellitari e modelli climatici.

Inserimento di cubi di dati

I file del cubo di dati possono essere inseriti in Planetary Computer Pro nello stesso modo di altri tipi di dati raster. Come con altri formati di data, gli asset e gli elementi Spatio Temporal Asset Catalog (STAC) associati devono prima essere archiviati in Azure Blob Storage. A differenza di altri asset raster bidimensionali, tuttavia, vengono eseguiti più passaggi di ottimizzazione del cloud durante l'inserimento di determinati formati di cubi di dati (NetCDF e HDF5).

Annotazioni

I dati GRIB2 vengono inseriti nello stesso modo degli altri dati raster bidimensionali (senza altri passaggi di ottimizzazione cloud), poiché sono essenzialmente una raccolta di raster 2D con un file di indice associato che fa riferimento ai dati in modo efficiente negli ambienti cloud. Analogamente, Zarr è già un formato nativo del cloud, quindi non viene eseguita alcuna ottimizzazione al momento dell'inserimento.

Ottimizzazione cloud dei cubi di dati

Quando viene inserito un elemento STAC contenente asset NetCDF o HDF5, gli asset vengono ottimizzati per il cloud, non trasformando i dati stessi, ma tramite la generazione di file di riferimento che consentono un accesso ai dati più efficiente.

Ottimizzazione del cloud tramite manifesti Kerchunk

A differenza dei dati raster 2D trasformati in GeoTIFFs ottimizzati per Cloud (COGs) quando vengono inseriti in Planetary Computer Pro, gli asset del cubo dati sono ottimizzati attraverso la generazione di file di riferimento, o manifesti di Kerchunk. Kerchunk è una libreria Python open source che crea questi manifesti blocchi o file JSON che descrivono la struttura del cubo di dati e i relativi blocchi usando chiavi di blocco in stile Zarr che eseguono il mapping agli intervalli di byte nel file originale in cui si trovano tali blocchi. Dopo la generazione, i file Kerchunk vengono archiviati nell'archivio BLOB insieme agli asset e gli elementi STAC vengono arricchiti per includere riferimenti a questi manifesti, ottimizzando l'accesso ai dati per gli ambienti cloud.

Proprietà degli elementi STAC che attivano l'ottimizzazione cloud

All'interno degli elementi STAC della raccolta, le condizioni seguenti devono essere soddisfatte affinché un asset del cubo di dati sia ottimizzato per il cloud:

  • Il formato dell'asset è uno dei tipi seguenti:
    • application/netcdf
    • application/x-netcdf
    • application/x-hdf5
  • L'asset ha un roles campo che include data o visual nel suo elenco di ruoli.

Se queste condizioni vengono soddisfatte, viene generato un manifesto Kerchunk (assetid-kerchunk.json) nell'archivio BLOB insieme all'asset.

Annotazioni

Il tipo di formato assetapplication/x-hdf corrisponde spesso agli asset HDF4. L'inserimento di GeoCatalog non supporta attualmente la creazione di manifesti Kerchunk virtuali per HDF4 a causa della complessità aggiunta e di più varianti.

Arricchimento degli elementi STAC

Per ogni asset ottimizzato all'interno dell'elemento STAC, vengono aggiunti i campi seguenti:

  • msft:datacube_converted: true – Indica che è stato applicato l'arricchimento.
  • cube:dimensions : dizionario che elenca le dimensioni del set di dati e le relative proprietà.
  • cube:variables : dizionario che descrive le variabili del set di dati e le relative proprietà.

Queste variabili devono essere usate per le configurazioni di rendering per garantire che la visualizzazione degli asset del cubo di dati nell'Esploratore legga ed esegua il rendering dei dati nel modo più efficiente.

Vantaggi dei cubi di dati ottimizzati per il cloud

L'ottimizzazione cloud del cubo dati migliora le prestazioni di accesso ai dati, soprattutto per i flussi di lavoro di visualizzazione. Quando è presente un manifesto Kerchunk, consente un accesso più rapido rispetto al caricamento dell'intero file del set di dati.

Explorer di Computer Planetario Pro di Microsoft e le API di affiancamento usano preferibilmente il manifesto Kerchunk per le operazioni di lettura dei dati, se ne esiste uno nella stessa directory di archiviazione BLOB dell'asset originale.

La lettura dei dati usando un approccio basato su riferimenti in blocchi è più veloce perché evita di leggere l'intero file in memoria.

Disabilitazione dell'ottimizzazione del cloud per il cubo di dati

Se si decide di non voler lavorare con asset del cubo di dati ottimizzati per il cloud, disabilitare l'ottimizzazione per il cloud rimuovendo data e visual dall'elenco roles dell'asset nell'elemento JSON STAC prima dell'inserimento.

Aggiornamenti dei dati e inserimento Zarr

Come accennato in precedenza, Zarr è intrinsecamente un formato nativo del cloud, quindi non viene eseguita alcuna ottimizzazione aggiuntiva quando viene inserita e non è necessaria alcuna modifica degli elementi STAC. Tuttavia, se si prevede di aggiornare dinamicamente gli asset zarr e ripristinare gli elementi STAC per funzionare con la versione più recente, è necessario essere consapevoli di due metodi di aggiornamento: Append e Sync.

Append

Se si aggiungono nuovi dati a un archivio Zarr archiviato in locale, ma si vuole aggiornare la versione archiviata in Planetary Computer Pro, è necessario riprovare l'elemento STAC. Quando l'elemento viene reingerito, il comportamento predefinito consiste nell'esaminare gli asset per i nuovi dati e aggiungerli ai dati archiviati nel cloud. Non è necessaria alcuna modifica all'elemento STAC prima della reingestione.

Sincronizzazione

Se si rimuovono i dati da un archivio Zarr memorizzato in locale, l'ingestione di nuovo dello stesso elemento STAC non consentirà alla versione cloud di corrispondere a quella nel tuo computer, perché la funzionalità di accodamento cerca nuovi dati, ma non si adatta in base ai dati mancanti. Ecco dove entra in gioco la sincronizzazione . Modificando l'elemento STAC in modo da includere un parametro che indica che si vuole sincronizzare, i dati esistenti con il nuovo elemento e riesegnando l'elemento STAC modificato, solo i dati più up-to-date dall'archivio Zarr sono disponibili in Planetary Computer Pro. La modifica all'elemento STAC dovrebbe essere visualizzata nel modo seguente:

{
    ...
    "assets": {
        "pr": {
            "href": "https://managedstorage.azure.com/collection-container/somestuff/pr.zarr",
            "msft:ingestion": {
              "directory": "sync"
            }
        }
    }
}