Estrazione di dati dalle immagini

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.