Ottenere i dati delle immagini da Earth Engine
Per trasferire i dati delle immagini da Earth Engine a Google Drive, Cloud Storage o una risorsa Earth Engine,
puoi utilizzare Export
e il job
viene gestito interamente da Earth Engine. Se i tuoi job di esportazione hanno problemi di scalabilità (ad es.
richiedono più di un giorno, restituiscono errori di memoria o di timeout) o se hai già dimestichezza
con un framework come Apache Beam,
Spark o Dask,
potresti preferire i metodi di estrazione dati descritti qui. I flussi di lavoro implementati in questi
framework possono essere scalati utilizzando gli strumenti Google Cloud come
Dataflow o
Dataproc.
In particolare, questa guida descrive i metodi per effettuare manualmente richieste di dati sulle immagini utilizzando getPixels
o computePixels
.
Per "dati immagine" si intendono array multidimensionali di valori dei pixel con scala e proiezione coerenti. La regione, la scala, la proiezione e/o le dimensioni sono specificate
nella richiesta. La
pagina ImageFileFormat elenca
i possibili formati di output. Le destinazioni di output includono Cloud Storage o qualsiasi directory montata localmente. Le richieste manuali aumentano la complessità, ma possono essere scalate per carichi di lavoro più grandi.
Ottenere i dati delle immagini da asset esistenti
Utilizza getPixels
per recuperare i dati delle immagini dagli asset Earth Engine esistenti. Poiché
passi l'ID risorsa direttamente alla richiesta, non puoi eseguire calcoli sui pixel
prima di estrarli. Viene restituito un blocco di pixel nella regione, nella scala, nella proiezione e nel formato specificati. L'esempio seguente mostra come ottenere le serie temporali di NDVI
da una raccolta di immagini MODIS utilizzando getPixels
.
Ottenere i dati delle immagini dalle immagini calcolate
Utilizza computePixels
per ottenere i dati di un'immagine da un'immagine calcolata, ad esempio una composita. Con
computePixels
,
passi un oggetto ee.Image
calcolato tramite il parametro expression
. Viene restituito un blocco di pixel calcolati nella regione, nella scala, nella proiezione e nel formato specificati. L'esempio seguente mostra come ottenere patch di dati multispettrali da un composito Sentinel-2 senza nuvole.
Parallelizzazione manuale delle richieste
Anche se puoi effettuare richieste per qualsiasi scopo in qualsiasi volume, ti consigliamo di eseguire in parallelo le richieste per i flussi di lavoro più grandi. Per effettuare molte richieste di questo tipo in parallelo, devi utilizzare l'endpoint ad alto volume di Earth Engine. Il numero di richieste parallele che puoi avere è impostato dalla quota di richieste interattive in parallelo. Per informazioni su quando utilizzare l'endpoint ad alto volume, consulta la pagina relativa al volume elevato di Earth Engine.
Multi-threading
Puoi utilizzare i thread per effettuare richieste concorrenti. Questo approccio è dimostrato nei notebook di esempio getPixels
e computePixels
.
Apache Beam
Puoi utilizzare le pipeline Apache Beam per eseguire in parallelo le richieste. Queste pipeline possono essere eseguite localmente o come job Google Dataflow. Per alcuni esempi, consulta questo corso Geo for Good o questa dimostrazione di People, Planet and AI. In alternativa, altre librerie di parallellizzazione includono Dask e Apache Spark.