L'API Python Earth Engine può essere implementata in un notebook Google Colaboratory. I notebook di Colab sono notebook Jupyter che vengono eseguiti nel cloud e sono altamente integrati con Google Drive, il che li rende facili da configurare, accedere e condividere. Se non hai familiarità con Google Colab o i notebook Jupyter, dedica un po' di tempo a esplorare il sito di benvenuto di Colab.
Le sezioni seguenti descrivono il deployment di Earth Engine in Google Colab e la visualizzazione di mappe e grafici utilizzando pacchetti Python di terze parti.
Aprire un blocco note di Colab
I notebook possono essere aperti da Google Drive o dall'interfaccia di Colaboratory.
Nuovo notebook
Google Drive
Apri Google Drive e crea un nuovo file.
- Nuovo > Altro > Collaboratorio
- Fai clic con il tasto destro del mouse in una cartella e seleziona Altro > Collaboratory dal menu contestuale.
Interfaccia di Colab
Visita il sito di Colab e crea un nuovo file.
- File > Nuovo > Nuovo notebook Python 3
- Se hai già interagito con Colab, visitando il sito collegato sopra avrai a disposizione un esploratore di file in cui potrai avviare un nuovo file utilizzando il menu a discesa nella parte inferiore della finestra.
Notebook esistente
I file dei notebook esistenti (.ipynb) possono essere aperti da Google Drive e dall'interfaccia di Colab.
Google Drive
I notebook di Colab possono trovarsi in varie cartelle su Google Drive, a seconda di dove sono stati creati i file dei notebook. I notebook creati in Google Drive verranno visualizzati nella cartella in cui sono stati creati o spostati. I notebook creati dall'interfaccia di Colab verranno memorizzati per impostazione predefinita in una cartella denominata "Notebook di Colab", che viene aggiunta automaticamente alla cartella "Il mio Drive" di Google Drive quando inizi a utilizzare Colab.
I file di Colab sono identificabili dal simbolo giallo "CO" e dall'estensione del file ".ipynb". Apri i file facendovi doppio clic sopra e selezionando Apri con > Colaboratory dal pulsante nella parte superiore della pagina risultante oppure facendo clic con il tasto destro del mouse su un file e selezionando Apri con > Colaboratory dal menu contestuale del file.
Interfaccia di Colab
L'apertura dei blocchi note dall'interfaccia di Colab ti consente di accedere ai file esistenti da Google Drive, GitHub e dall'hardware locale. Se visiti l'interfaccia di Colab dopo l'utilizzo iniziale, verrà visualizzata una finestra modale dell'esploratore di file. Dalle schede in alto in Esplora file, seleziona un'origine e vai al file .ipynb che vuoi aprire. Puoi accedere al visualizzatore di file anche dall'interfaccia di Colab selezionando File > Apri blocco note o utilizzando la combinazione di tasti Ctrl+O.
Importa l'API e ottieni le credenziali
Questa sezione mostra come importare l'API Python di Earth Engine e autenticare l'accesso. Questi contenuti sono disponibili anche come notebook di Colab:
L'API Earth Engine è inclusa per impostazione predefinita in Google Colaboratory, quindi richiede solo l'importazione e l'autenticazione. Questi passaggi devono essere completati per ogni nuova sessione di Colab o se riavvii il kernel di Colab o se la VM di Colab viene riutilizzata per inattività.
Importa l'API
Esegui la seguente cella per importare l'API nella sessione.
import ee
Autentica e inizializza
Esegui la funzione ee.Authenticate
per autenticare il tuo accesso ai server Earth Engine e ee.Initialize
per inizializzalo. Aggiungi una cella di codice, inserisci le seguenti righe, modifica il progetto ed esegui la cella.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Ti verrà chiesto di autorizzare l'accesso al tuo account Earth Engine. Segui le istruzioni stampate sulla cella per completare questo passaggio.
Testa l'API
Testa l'API stampando l'elevazione del Monte Everest. Tieni presente che prima di utilizzare l'API devi inizializzala. Esegui il seguente script Python in una nuova cella.
# Print the elevation of Mount Everest. dem = ee.Image('USGS/SRTMGL1_003') xy = ee.Geometry.Point([86.9250, 27.9881]) elev = dem.sample(xy, 30).first().get('elevation').getInfo() print('Mount Everest elevation (m):', elev)
Visualizzazione mappa
Gli oggetti ee.Image
possono essere visualizzati nelle celle di output del notebook. I due esempi riportati di seguito mostrano la visualizzazione di un'immagine statica e di una mappa interattiva.
Immagine statica
Il modulo IPython.display
contiene la funzione Image
, che può visualizzare i risultati di un URL che rappresenta un'immagine generata da una chiamata alla funzione getThumbUrl
di Earth Engine. Lo script seguente mostra una miniatura
di un modello di elevazione globale.
# Import libraries. import ee from IPython.display import Image # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Import a DEM and display a thumbnail of it. dem = ee.Image('USGS/SRTMGL1_003') Image(url=dem.updateMask(dem.gt(0)) .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))
Mappa interattiva
Il pacchetto folium
può essere utilizzato per visualizzare oggetti ee.Image
su una mappa Leaflet interattiva. Folium non ha un metodo predefinito per gestire i riquadri di Earth Engine, quindi è necessario definirne uno e aggiungerlo al modulo folium.Map
prima dell'uso.
Lo script seguente fornisce un esempio di aggiunta di un metodo per gestire i riquadri di Earth Engine e utilizzarlo per visualizzare un modello di elevazione su una mappa Leaflet.
# Import libraries. import ee import folium # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Define a method for displaying Earth Engine image tiles to folium map. def add_ee_layer(self, ee_image_object, vis_params, name): map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles = map_id_dict['tile_fetcher'].url_format, attr = "Map Data © Google Earth Engine", name = name, overlay = True, control = True ).add_to(self) # Add EE drawing method to folium. folium.Map.add_ee_layer = add_ee_layer # Fetch an elevation model. dem = ee.Image('USGS/SRTMGL1_003') # Set visualization parameters. vis_params = { 'min': 0, 'max': 4000, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']} # Create a folium map object. my_map = folium.Map(location=[20, 0], zoom_start=3) # Add the elevation model to the map object. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM') # Add a layer control panel to the map. my_map.add_child(folium.LayerControl()) # Display the map. display(my_map)
Visualizzazione del grafico
Alcune funzioni di Earth Engine producono dati tabulari che possono essere tracciati da pacchetti di visualizzazione dei dati come matplotlib
. L'esempio seguente mostra la visualizzazione dei dati tabulari di Earth Engine come grafico a dispersione. Per ulteriori informazioni, consulta Grafici in Colaboratory.
# Import libraries. import ee import matplotlib.pyplot as plt # Trigger the authentication flow. ee.Authenticate() # Initialize the Earth Engine module. ee.Initialize(project='my-project') # Fetch a Landsat TOA image. img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913') # Select Red and NIR bands, scale them, and sample 500 points. samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500) # Arrange the sample as a list of lists. samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4']) samp_list = ee.List(samp_dict.get('list')) # Save server-side ee.List as a client-side Python list. samp_data = samp_list.getInfo() # Display a scatter plot of Red-NIR sample pairs using matplotlib. plt.scatter(samp_data[0], samp_data[1], alpha=0.2) plt.xlabel('Red', fontsize=12) plt.ylabel('NIR', fontsize=12) plt.show()