Cloud Optimized GeoTIFF (COG) in Earth Engine

Google Earth Engine ti consente di lavorare con dati raster archiviati nei tuoi bucket Google Cloud Storage (GCS). Utilizzando i file Cloud Optimized GeoTIFF (COG), puoi accedere ai dati e analizzarli direttamente in Earth Engine senza dover inserire i pixel nell'archivio di asset di Earth Engine.

Questo approccio cloud-first offre diversi vantaggi, soprattutto per la gestione di set di dati di grandi dimensioni o l'integrazione di Earth Engine in workflow Google Cloud più ampi o in strumenti e piattaforme esterni.

Perché utilizzare Cloud Storage e i file COG?

  • Flessibilità e interoperabilità: mantieni i dati nei bucket Cloud Storage standard, dove possono essere accessibili da altri strumenti e servizi. Che tu carichi i dati direttamente o li esporti da Earth Engine, Cloud Storage funge da unica fonte di verità sia per Earth Engine sia per i workflow esterni.
  • Controlli relativi ai dati e in uscita: l'archiviazione dei dati in Cloud Storage offre funzionalità di gestione dell'archiviazione degli oggetti standard. In questo modo puoi scaricare, eseguire la migrazione, o condividere i dati utilizzando le funzionalità di Cloud Storage come Richiedente paga o i bucket pubblici, e gestire l'accesso utilizzando Cloud IAM standard .
  • Scalabilità flessibile: evita i limiti di archiviazione di Earth Engine. Cloud Storage offre una scalabilità dell'archiviazione self-service praticamente illimitata fino alla scala dei petabyte.
  • Nessun attesa per l'importazione: la registrazione di un file COG viene completata rapidamente perché Earth Engine legge solo i metadati (come la proiezione e le dimensioni) dall'intestazione del file per l'indicizzazione e la convalida. I dati dei pixel effettivi rimangono in Cloud Storage e vengono letti on demand durante il calcolo, eliminando la necessità di un'attività di inserimento separata.

Workflow dei file COG in Earth Engine

Earth Engine supporta i workflow bidirezionali con i file COG in Cloud Storage: puoi leggere i file COG direttamente da GCS in Earth Engine e puoi scrivere i risultati dei calcoli da Earth Engine direttamente in GCS come file COG.

Lettura dei file COG da Cloud Storage

Per importare i file COG ospitati in GCS in Earth Engine, hai due opzioni:

  1. Caricamento diretto (ee.Image.loadGeoTIFF): carica una singola immagine direttamente utilizzando il relativo URI GCS. Questa opzione è ideale per test rapidi, analisi ad hoc o dati temporanei:

    JavaScript

    var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');
    

    Python

    image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')
    

    Per esempi completi, consulta Immagini da Cloud GeoTIFF.

  2. Asset registrati: registra uno o più file COG come asset di Earth Engine utilizzando un manifest di caricamento (consulta la guida alla registrazione dei file COG). Questo è il percorso consigliato per i workflow di produzione, soprattutto quando crei raccolte di immagini.

Funzionalità Caricamento diretto (loadGeoTIFF) Asset registrato (manifest)
Configurazione Nessuna (solo URI GCS) Manifest (client Python, CLI o REST)
Prestazioni Standard (legge l'intestazione durante la lettura) Ottimizzato (indicizzato al momento della creazione)
Gestione Nessun asset creato Viene conteggiato ai fini della quota di conteggio degli asset, non dell'archiviazione.
Caso d'uso Prototipazione, analisi ad hoc Workflow di produzione che richiedono letture rapide.

Scrittura dei file COG in Cloud Storage

Per salvare i risultati dei calcoli di Earth Engine come file COG nel bucket Cloud Storage, utilizza la Export.image.toCloudStorage funzione di esportazione batch (vedi Esportazione di immagini) e imposta il parametro cloudOptimized su true in formatOptions. In questo modo, Earth Engine compilerà l'immagine e la scriverà direttamente nel bucket GCS come file COG completamente conforme.

Località dei bucket Cloud Storage supportate

Affinché Earth Engine possa accedere al bucket Cloud Storage, il bucket deve trovarsi in una delle seguenti regioni o multiregioni dei data center:

  • La multiregione us
  • Qualsiasi regione a due regioni degli Stati Uniti che includa us-central1
  • La regione us-central1

Se il bucket si trova in un altro data center regionale, Earth Engine rifiuterà le richieste di registrazione e lettura. Earth Engine accede ai file COG archiviati esclusivamente nei bucket Google Cloud Storage. I fornitori di spazio di archiviazione sul cloud esterni e gli URL HTTP generici non sono supportati.

Specifiche di esportazione dei file COG di Earth Engine

Quando esporti i risultati analitici da Earth Engine utilizzando Export.image.toCloudStorage con cloudOptimized: true in formatOptions, l'esportatore integrato di Earth Engine applica automaticamente i seguenti standard:

  • Struttura dei file: genera un file BigTIFF (BIGTIFF=YES) con tiling interno (TILED=YES) e copia tutte le panoramiche all'inizio del file.
  • Panoramiche automatiche: se le dimensioni raster di output sono di 512 x 512 pixel o superiori, Earth Engine crea automaticamente cinque livelli di panoramiche di potenza di due ([2, 4, 8, 16, 32]). Earth Engine seleziona dinamicamente il metodo di ricampionamento della panoramica in base al tipo di dati dei pixel di output: ricampionamento cubico per le immagini con rappresentazione in virgola mobile e ricampionamento del vicino più prossimo per tutte le altre immagini intere o discrete.
  • Compressione e tiling predefiniti: Earth Engine esporta i file COG con tiling a blocchi di pixel 256 x 256 e compressione LZW (COMPRESS=LZW). La compressione e le dimensioni dei riquadri non possono essere personalizzate in formatOptions.
  • Sharding automatico: se un raster esportato è di grandi dimensioni (supera i 4 GiB non compressi), Earth Engine suddivide automaticamente l'esportazione in più riquadri spaziali denominati baseFilename-yMin-xMin (vedi Esportazioni di file di grandi dimensioni).
  • Ignora i limiti di sharding: per esportare raster di grandi dimensioni (fino a un limite massimo di 16 GiB non compressi e 131.072 pixel per bordo) come un singolo file senza sharding, specifica fileDimensions all'interno di formatOptions. Ogni dimensione deve essere un multiplo intero positivo della dimensione del riquadro (256 per impostazione predefinita, ad esempio [65536, 65536]). Poiché fileDimensions imposta la dimensione massima del file anziché il riquadro di delimitazione di output, il passaggio di un limite elevato forza l'esportazione in un singolo file senza richiedere calcoli precisi della griglia. Puoi anche passare skipEmptyFiles: true per evitare di generare riquadri di sfondo vuoti.
  • Compromessi di ottimizzazione: quando configuri esportazioni di grandi dimensioni, valuta il compromesso tra il conteggio dei file e la velocità di esportazione. La specifica di fileDimensions o shardSize più piccoli produce più frammenti di file, ma massimizza l'elaborazione parallela tra i worker di backend, con conseguenti tempi di completamento dell'esportazione più rapidi. Al contrario, l'override dei limiti per generare un singolo file di grandi dimensioni semplifica la gestione dei file e la condivisione dei dati, ma può aumentare i tempi di esecuzione dell'esportazione a causa dell'assemblaggio di un singolo file e dei colli di bottiglia di I/O. Le esportazioni di file COG singoli di grandi dimensioni che si avvicinano al limite di 16 GiB non compressi (soprattutto le immagini che non si comprimono bene) potrebbero anche superare la capacità di archiviazione temporanea durante l'assemblaggio della panoramica e del file COG; se un'esportazione non riesce, valuta la possibilità di eseguire lo sharding in file più piccoli o di convertire un'esportazione GeoTIFF standard esternamente.

Personalizzazione della creazione di file COG al di fuori di Earth Engine

Sebbene l'esportazione diretta con cloudOptimized: true sia il modo più semplice per generare file COG pronti all'uso per la maggior parte dei workflow, puoi anche esportare un file GeoTIFF standard (cloudOptimized: false, il valore predefinito) e convertirlo in un file COG utilizzando strumenti esterni come GDAL. Un workflow di esportazione e conversione in due passaggi può essere utile quando devi:

  • Personalizzare la compressione e il layout: adatta le dimensioni dei blocchi (ad esempio 512x512), i predittori, i metodi di ricampionamento della panoramica o i codec di compressione (ad esempio ZSTD) al tuo set di dati (vedi Preparare i file COG).
  • Evitare errori di capacità nelle esportazioni di file singoli di grandi dimensioni: saltare la generazione della panoramica e la riscrittura del layout del file COG durante l'esportazione riduce il sovraccarico di memoria e di archiviazione temporanea, riducendo la probabilità che le esportazioni di file singoli di grandi dimensioni raggiungano i limiti di capacità.
  • Ridurre il tempo di esecuzione dell'esportazione di Earth Engine: il trasferimento della creazione della panoramica e della formattazione del file COG al tuo ambiente di computing riduce la fase di esportazione di Earth Engine.

Considerazioni sui costi e classi di archiviazione

Quando analizzi gli asset COG registrati, le letture da Earth Engine non comportano costi di operazione di lettura o di recupero dei dati di Cloud Storage nel tuo progetto Google Cloud.

Cloud Storage ti addebita principalmente l'archiviazione dei dati at-rest mensile standard (GB/mese) e le eventuali tariffe di trasferimento dei dati o di traffico in uscita dalla rete dei client esterni (a seconda della località del bucket e della configurazione di rete dei client).

Suggerimenti per le classi di archiviazione

  • Archiviazione standard (consigliata): l'archiviazione standard è più adatta ai workflow di Earth Engine attivi. Poiché non prevede regole di durata minima dell'archiviazione, puoi sovrascrivere, aggiornare o eliminare liberamente i file COG temporanei senza incorrere in sanzioni per l'eliminazione anticipata. Inoltre, se tu o i tuoi collaboratori accedete al bucket utilizzando software GIS desktop, script GDAL o notebook di machine learning al di fuori di Earth Engine, Standard Storage non comporta costi aggiuntivi di recupero al dettaglio.
  • Archiviazione Nearline, Coldline e Archive: tutte le classi di Cloud Storage forniscono lo stesso accesso a bassa latenza e lo stesso throughput dell'archiviazione standard, quindi non ci sono penalità di prestazioni di lettura quando utilizzi livelli di archiviazione più freddi in Earth Engine. Sebbene i calcoli di Earth Engine possano anche leggere questi livelli senza addebitare costi di recupero dei dati al dettaglio, le regole di vendita al dettaglio di Cloud Storage applicano durate minime di archiviazione rigorose (30 giorni per Nearline, 90 giorni per Coldline, 365 giorni per Archive). La modifica o l'eliminazione dei file prima della durata minima comporta costi aggiuntivi per l'eliminazione anticipata. Inoltre, l'accesso agli oggetti cold da qualsiasi strumento client esterno comporta costi aggiuntivi di recupero dei dati.

Per informazioni dettagliate sui prezzi al dettaglio e sulle norme relative alla durata minima, consulta la Guida ai prezzi di Google Cloud Storage.

Workflow di alto livello

I workflow tipici per l'utilizzo dei file COG in Earth Engine prevedono i seguenti passaggi:

Per l'importazione di dati esterni:

  • Ottimizza: converti i file raster in formato COG utilizzando strumenti esterni (come GDAL, script della workstation locale o pipeline di elaborazione cloud).
  • Carica: carica i file COG in un bucket Cloud Storage supportato che si trova in us-central1 o in una multiregione degli Stati Uniti.
  • Autorizzazioni: assicurati che tu e tutti i collaboratori del progetto abbiate accesso in lettura ai file di Cloud Storage (vedi autorizzazioni dei file COG).
  • Registra: utilizza la libreria client Python, earthengine strumento a riga di comando o l'API REST per registrare i file COG come asset di Earth Engine (vedi Registrazione dei file COG).

Per l'esportazione dei risultati:

  • Esporta: esegui un'esportazione batch da Earth Engine a Cloud Storage con cloudOptimized impostato su true (vedi Esportazione di immagini).
  • Registra (facoltativo): registra nuovamente il file COG esportato in Earth Engine come nuovo asset per ulteriori analisi (vedi Registrazione dei file COG).

Iniziamo? Segui la guida dettagliata alla registrazione dei file COG per registrare il tuo primo asset.