Estrazione di dati dalle immagini

Recupero dei dati delle immagini da Earth Engine

Per trasferire i dati delle immagini da Earth Engine a Google Drive, Cloud Storage o un asset Earth Engine, puoi utilizzare Export e il job viene gestito interamente da Earth Engine. Se i tuoi job di esportazione presentano problemi di scalabilità (ad esempio, richiedono più di un giorno, restituiscono errori di memoria o di timeout) o se hai già familiarità con un framework come Apache Beam, Spark o Dask, potresti preferire i metodi di estrazione dati descritti qui. I workflow implementati in questi framework possono essere scalati utilizzando strumenti Google Cloud come Dataflow o Dataproc.

In particolare, questa guida descrive i metodi per effettuare manualmente richieste di dati di immagini utilizzando getPixels o computePixels. In questo caso, "dati immagine" indica array multidimensionali di valori di 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 aggiungono complessità, ma possono scalare per workload più grandi.

Recupero dei dati delle immagini dagli asset esistenti

Utilizza getPixels per ottenere i dati delle immagini dagli asset Earth Engine esistenti. Passi l'ID asset direttamente alla richiesta, quindi non puoi eseguire alcun calcolo 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 serie temporali di NDVI da una raccolta di immagini MODIS utilizzando getPixels.

Recupero dei dati delle immagini dalle immagini calcolate

Utilizza computePixels per ottenere i dati di un'immagine calcolata, ad esempio un'immagine 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

Sebbene tu possa effettuare richieste per qualsiasi scopo e in qualsiasi volume, potresti voler parallelizzare le richieste per workflow 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 tua quota di richieste interattive simultanee. Per informazioni dettagliate su quando utilizzare l'endpoint ad alto volume, consulta la pagina Earth Engine ad alto volume.

Multi-threading

Puoi utilizzare i thread per effettuare richieste simultanee. Questo approccio è dimostrato nei notebook di esempio getPixels e computePixels.

Apache Beam

Puoi utilizzare le pipeline Apache Beam per parallelizzare le richieste. Queste pipeline possono essere eseguite localmente o come job Google Dataflow. Per alcuni esempi, consulta questo corso di formazione Geo for Good o questa dimostrazione di People, Planet and AI. In alternativa, altre librerie di parallelizzazione includono Dask e Apache Spark.