L'API Python di Earth Engine può essere implementata in un notebook Google Colaboratory. I notebook 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 con 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 notebook di Colab
I blocchi note 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 > Colaboratory
- Fai clic con il tasto destro del mouse in una cartella e seleziona Altro > Colaboratory dal menu contestuale.
Interfaccia Colab
Visita il sito di Colab e crea un nuovo file.
- File > New > New Python 3 notebook (File > Nuovo > Nuovo notebook Python 3)
- Se hai già interagito con Colab, visitando il sito collegato sopra verrà visualizzato un esploratore di file in cui puoi avviare un nuovo file utilizzando il menu a discesa nella parte inferiore della finestra.
Notebook esistente
I file notebook esistenti (.ipynb) possono essere aperti da Google Drive e dall'interfaccia Colab.
Google Drive
I notebook Colab possono esistere in varie cartelle di Google Drive a seconda di dove sono stati creati i file dei notebook. I notebook creati in Google Drive si trovano nella cartella in cui sono stati creati o spostati. I notebook creati dall'interfaccia Colab vengono salvati per impostazione predefinita in una cartella denominata "Notebook Colab", che viene aggiunta automaticamente alla cartella "Il mio Drive" di Google Drive quando inizi a lavorare con Colab.
I file Colab possono essere identificati da un simbolo "CO" giallo e dall'estensione del file ".ipynb". Apri i file facendo doppio clic su di essi e selezionando Apri con > Colaboratory dal pulsante in alto nella 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 Colab
L'apertura dei notebook dall'interfaccia Colab ti consente di accedere ai file esistenti da Google Drive, GitHub e hardware locale. Se visiti l'interfaccia di Colab dopo l'utilizzo iniziale, viene visualizzata una finestra modale di Esplora file. Dalle schede in alto in Esplora file, seleziona un'origine e vai al file .ipynb che vuoi aprire. È possibile accedere a Esplora file anche dall'interfaccia Colab selezionando File > Apri notebook 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 Colab:
L'API Earth Engine è inclusa per impostazione predefinita in Google Colaboratory, pertanto 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 macchina virtuale Colab viene riciclata a causa di inattività.
Importa l'API
Esegui la cella seguente per importare l'API nella sessione.
import ee
Autenticare e inizializzare
Esegui la funzione ee.Authenticate per autenticare il tuo accesso ai server Earth Engine e ee.Initialize per inizializzarla. 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.
Testare l'API
Testa l'API stampando l'altitudine del Monte Everest. Tieni presente che prima di utilizzare l'API devi inizializzarla. 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
ee.Image oggetti possono essere visualizzati nelle celle di output del blocco note. I due esempi
seguenti 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
Earth Engine getThumbUrl. Il seguente script mostrerà 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 la gestione dei riquadri di Earth Engine, quindi è necessario definirne uno e aggiungerlo al modulo folium.Map prima dell'uso.
Il seguente script fornisce un esempio di aggiunta di un metodo per la gestione dei riquadri di Earth Engine e del suo utilizzo per visualizzare un modello di elevazione in 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 tabellari che possono essere tracciati da
pacchetti di visualizzazione dei dati come matplotlib. L'esempio seguente
mostra la visualizzazione dei dati tabellari di Earth Engine come grafico
a dispersione. Per saperne di più, consulta la sezione Creazione di 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()
Esegui in Google Colab
Visualizza il codice sorgente su GitHub