Logo Zephyrnet

Analisi dei dati geospaziali con Geemap – KDnuggets

Data:

Analisi dei dati geospaziali con Geemap
Illustrazione dell'autore
 

L'analisi dei dati geospaziali è un campo indirizzato a trattare, visualizzare e analizzare un tipo speciale di dati, chiamati dati geospaziali. Rispetto ai dati normali, abbiamo dati tabulari con una colonna aggiuntiva, le informazioni sulla posizione, come latitudine e longitudine. 

Esistono due tipi principali di dati: dati vettoriali e dati raster. Quando si ha a che fare con dati vettoriali, si ha ancora un set di dati tabulare, mentre i dati raster sono più simili alle immagini, come immagini satellitari e fotografie aeree. 

In questo articolo mi concentrerò sui dati raster forniti da Google Earth Engine, una piattaforma di cloud computing che fornisce un enorme catalogo di dati di immagini satellitari. Questo tipo di dati può essere facilmente gestito dal tuo Jupyter Notebook utilizzando un pacchetto Python salvavita, chiamato Geemap. Iniziamo!

Cos'è Google Earth Engine?

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Home page di Google Earth Engine.
 

Prima di iniziare con la libreria Python, dobbiamo comprenderne il potenziale Motore di Google Earth. Questa piattaforma basata su cloud, basata sulla piattaforma Google Cloud, ospita set di dati geospaziali pubblici e gratuiti per scopi accademici, no-profit e aziendali.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Panoramica del catalogo dati di Earth Engine. 
 

La bellezza di questa piattaforma è che fornisce un catalogo multi-petabyte di dati raster e vettoriali, archiviati sui server Earth Engine. Puoi avere una rapida panoramica da questo link. Inoltre, fornisce API per facilitare l'analisi di set di dati raster. 

Cos'è Geemap?

Analisi dei dati geospaziali con Geemap
Illustrazione dell'autore. Libreria Geemap.
 

Mappa geografica è una libreria Python che consente di analizzare e visualizzare enormi quantità di dati geospaziali da Google Earth Engine. 

Prima di questo pacchetto, era già possibile effettuare richieste computazionali tramite API JavaScript e Python, ma le API Python avevano funzionalità limitate e mancavano di documentazione. 

Per colmare questa lacuna, Geemap è stato creato per consentire agli utenti di accedere alle risorse di Google Earth Engine con poche righe di codice. Geemap è costruito su eartengine-api, ipyleaflet ed foglia.

Per installare la libreria è sufficiente il seguente comando:

pip install geemap

 

Ti consiglio di sperimentare questo fantastico pacchetto in Google Colab per comprenderne tutto il potenziale. Dare un'occhiata a questo libro gratuito scritto dal professor Dr. Qiusheng Wu per iniziare con Geemap e Google Earth Engine.

Come accedere a Earth Engine?

Innanzitutto, dobbiamo importare due librerie Python, che verranno utilizzate all'interno del tutorial:

import ee
import geemap

 

Oltre a geemap, abbiamo importato la libreria client Python di Earth Engine, denominata ee. 

Questa libreria Python può essere utilizzata per l'autenticazione su Earth Engine, ma può essere più veloce utilizzando direttamente la libreria Geemap:

m = geemap.Map()
m

 

È necessario fare clic sull'URL restituito da questa riga di codice, che genererà il codice di autorizzazione. Innanzitutto, seleziona il progetto cloud e, quindi, fai clic sul pulsante “GENERA TOKEN”.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Autenticatore di notebook.
 

Successivamente, ti verrà chiesto di scegliere l'account. Ti consiglio di prendere lo stesso account di Google Colab se lo stai utilizzando.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Scegli un conto.
 

Quindi, fai clic sulla casella di controllo accanto a Seleziona tutto e premi il pulsante "Continua". In poche parole, questo passaggio consente al client Notebook di accedere all'account Earth Engine.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Consenti al client Notebook di accedere al tuo account Earth Engine.
 

Dopo questa azione, viene generato il codice di autenticazione e puoi incollarlo nella cella del taccuino.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Copia il codice di autenticazione.
 

Una volta inserito il codice di verifica potrai finalmente creare e visualizzare questa mappa interattiva:

m = geemap.Map()
m

 

Analisi dei dati geospaziali con Geemap
 

Per ora, stai solo osservando la mappa di base sopra ipyleaflet, un pacchetto Python che consente la visualizzazione di mappe interattive all'interno di Jupyter Notebook. 

Crea mappe interattive

In precedenza abbiamo visto come autenticare e visualizzare una mappa interattiva utilizzando un'unica riga di codice. Ora possiamo personalizzare la mappa predefinita specificando la latitudine e la longitudine del baricentro, il livello di zoom e l'altezza. Ho scelto le coordinate di Roma per il centro per concentrarmi sulla mappa dell'Europa. 

m = geemap.Map(center=[41, 12], zoom=6, height=600)
m

 

Analisi dei dati geospaziali con Geemap

 

Se vogliamo cambiare la mappa di base, ci sono due modi possibili. Il primo modo consiste nello scrivere ed eseguire la seguente riga di codice:

m.add_basemap("ROADMAP")
m

 

Analisi dei dati geospaziali con Geemap
 

In alternativa è possibile modificare manualmente la mappa base cliccando l'icona della chiave ad anello posizionata a destra. 

 

Analisi dei dati geospaziali con Geemap
 

Inoltre, vediamo l'elenco delle mappe base fornite da Geemap:

basemaps = geemap.basemaps.keys()
for bm in basemaps:
   print(bm)

 

Questo è l'output:

OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...

 

Come puoi notare, esiste una lunga serie di mappe base, la maggior parte delle quali disponibili grazie a OpenStreetMap, ESRI e USGS.

Tipi di dati di Earth Engine

Prima di mostrare tutto il potenziale di Geemap, è importante conoscere due tipi di dati principali in Earth Engine. Dai un'occhiata a La documentazione di Google Earth Engine per ulteriori dettagli.

 

Analisi dei dati geospaziali con Geemap
Illustrazione dell'autore. Esempio di tipi di dati vettoriali: Geometry, Feature e FeatureCollection.
 

Quando gestiamo i dati vettoriali, utilizziamo principalmente tre tipi di dati:

  • Geometria memorizza le coordinate necessarie per disegnare i dati vettoriali su una mappa. Earth Engine supporta tre tipi principali di geometrie: punto, stringa di linea e poligono.
  • caratteristica è essenzialmente una riga che combina geometria e attributi non geografici. È molto simile alla classe GeoSeries di GeoPandas.
  • Collezione di funzionalità è una struttura dati tabellare che contiene un insieme di funzionalità. FeatureCollection e GeoDataFrame sono quasi identici concettualmente.

 

Analisi dei dati geospaziali con Geemap
Schermata dell'autore. Esempio di tipo di dati Immagine. Mostra il modello di elevazione digitale levigato australiano (DEM-S)
 

Nel mondo dei dati raster, ci concentriamo su Immagine oggetti. Le immagini di Google Earth Engine sono composte da uno o più marchi, dove ciascuna fascia ha un nome specifico, un minimo e un massimo stimati e una descrizione.

Se abbiamo una raccolta o una serie temporale di immagini, Raccolta di immagini è più appropriato come tipo di dati.

 

Analisi dei dati geospaziali con Geemap
Screenshot dell'autore. Copernico CORINE Copertura del territorio.
 

Visualizziamo le immagini satellitari che mostrano la mappa della copertura del suolo dell'Europa. Questo set di dati fornisce i cambiamenti tra il 1986 e il 2018.

Innanzitutto carichiamo l'immagine utilizzando ee.Image e, quindi, selezioniamo la fascia “landcover”. Infine, visualizziamo l'immagine aggiungendo il set di dati caricato alla mappa come livello utilizzando Map.addLayer. 

Map = geemap.Map()
dataset = ee.Image('COPERNICUS/CORINE/V20/100m/2012')
landCover = dataset.select('landcover')
Map.setCenter(16.436, 39.825, 6)
Map.addLayer(landCover, {}, 'Land Cover')
Map

 

Analisi dei dati geospaziali con Geemap
Screenshot dell'autore.
 

Allo stesso modo, possiamo fare la stessa cosa per caricare e visualizzare le immagini satellitari che mostrano la mappa della copertura del suolo dell'Europa. Questo set di dati fornisce i cambiamenti tra il 1986 e il 2018.

 

Analisi dei dati geospaziali con Geemap
Screenshot dell'autore. Immagini offline ad alta risoluzione delle concentrazioni di metano.

 

Per visualizzare una ImageCollection di Earth Engine, le righe di codice sono simili, ad eccezione di ee.ImageCollection. 

Map = geemap.Map()
collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4').select('CH4_column_volume_mixing_ratio_dry_air').filterDate('2019-06-01', '2019-07-16')
band_viz = {
 'min': 1750,
 'max': 1900,
 'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
}

Map.addLayer(collection.mean(), band_viz, 'S5P CH4')
Map.setCenter(0.0, 0.0, 2)
Map

 

Analisi dei dati geospaziali con Geemap
Screenshot dell'autore.
 

È fantastico! Da questa mappa notiamo come è distribuito all'interno del globo il Metano, uno dei più importanti contributori all'effetto serra. 

Considerazioni finali

Questa era una guida introduttiva che può aiutarti a lavorare con i dati di Google Earth Engine utilizzando Python. Geemap è la libreria Python più completa per visualizzare e analizzare questo tipo di dati. 

Se vuoi approfondire questo pacchetto, puoi dare un'occhiata alle risorse che ho suggerito di seguito. 

Il codice può essere trovato qui. Spero che tu abbia trovato utile l'articolo. Buona giornata!

Risorse utili:

 
 

Eugenia Anello è attualmente assegnista di ricerca presso il Dipartimento di Ingegneria dell'Informazione dell'Università di Padova. Il suo progetto di ricerca è incentrato sull'apprendimento continuo combinato con il rilevamento delle anomalie.

spot_img

L'ultima intelligenza

spot_img