L'API Python Earth Engine peut être déployée dans un notebook Google Colaboratory. Les notebooks Colab sont des notebooks Jupyter qui s'exécutent dans le cloud et sont fortement intégrés à Google Drive, ce qui les rend faciles à configurer, à utiliser et à partager. Si vous ne connaissez pas Google Colab ni les notebooks Jupyter, prenez le temps d'explorer le site de bienvenue de Colab.
Les sections suivantes décrivent le déploiement d'Earth Engine dans Google Colab, ainsi que la visualisation de cartes et de graphiques à l'aide de packages Python tiers.
Ouvrir un notebook Colab
Vous pouvez ouvrir des notebooks depuis Google Drive ou l'interface Colaboratory.
Nouveau notebook
Google Drive
Ouvrez Google Drive et créez un fichier.
- Nouveau > Plus > Colaboratory
- Effectuez un clic droit dans un dossier, puis sélectionnez Plus > Colaboratory dans le menu contextuel.
Interface Colab
Accédez au site Colab et créez un fichier.
- Fichier > Nouveau > Nouveau notebook Python 3
- Si vous avez déjà utilisé Colab, le site lié ci-dessus vous fournira un explorateur de fichiers dans lequel vous pourrez créer un fichier à l'aide du menu déroulant situé en bas de la fenêtre.
Notebook existant
Vous pouvez ouvrir des fichiers de notebook existants (.ipynb) depuis Google Drive et l'interface Colab.
Google Drive
Les notebooks Colab peuvent se trouver dans différents dossiers de Google Drive, selon l'endroit où ils ont été créés. Les notebooks créés dans Google Drive se trouvent dans le dossier dans lequel ils ont été créés ou déplacés. Les notebooks créés à partir de l'interface Colab sont placés par défaut dans un dossier appelé "Colab Notebooks", qui est automatiquement ajouté au dossier "Mon Drive" de votre Google Drive lorsque vous commencez à utiliser Colab.
Les fichiers Colab sont identifiés par le symbole jaune "CO" et l'extension de fichier ".ipynb". Pour ouvrir des fichiers, double-cliquez dessus et sélectionnez Ouvrir avec > Colaboratory en haut de la page qui s'affiche, ou effectuez un clic droit sur un fichier et sélectionnez Ouvrir avec > Colaboratory dans le menu contextuel du fichier.
Interface Colab
L'ouverture de notebooks à partir de l' interface Colab vous permet d'accéder aux fichiers existants depuis Google Drive, GitHub et le matériel local. Lorsque vous accédez à l'interface Colab après la première utilisation, une fenêtre modale d'explorateur de fichiers s'affiche. Dans les onglets en haut de l'explorateur de fichiers, sélectionnez une source et accédez au fichier .ipynb que vous souhaitez ouvrir. Vous pouvez également accéder à l'explorateur de fichiers depuis l'interface Colab en sélectionnant Fichier > Ouvrir le notebook ou en utilisant la combinaison de touches Ctrl+O.
Importer l'API et obtenir des identifiants
Cette section explique comment importer l'API Python Earth Engine et authentifier l'accès. Ce contenu est également disponible sous forme de notebook Colab :
L'API Earth Engine est incluse par défaut dans Google Colaboratory. Vous n'avez donc qu'à l'importer et à vous authentifier. Vous devez effectuer ces étapes pour chaque nouvelle session Colab, si vous redémarrez votre noyau Colab ou si votre machine virtuelle Colab est recyclée en raison de l'inactivité.
Importer l'API
Exécutez la cellule suivante pour importer l'API dans votre session.
import ee
Authentifier et initialiser
Exécutez la fonction ee.Authenticate pour authentifier votre accès aux serveurs Earth Engine et ee.Initialize pour l'initialiser. Ajoutez une cellule de code, saisissez les lignes suivantes, modifiez le projet, puis exécutez la cellule.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Vous serez invité à autoriser l'accès à votre compte Earth Engine. Suivez les instructions imprimées dans la cellule pour effectuer cette étape.
Tester l'API
Testez l'API en imprimant l'altitude du mont Everest. Notez qu'avant d'utiliser l'API, vous devez l'initialiser. Exécutez le script Python suivant dans une nouvelle cellule.
# 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)
Visualisation cartographique
Les objets ee.Image peuvent être affichés dans les cellules de sortie du notebook. Les deux exemples suivants montrent comment afficher une image statique et une carte interactive.
Image statique
Le module IPython.display contient la fonction Image, qui peut afficher les résultats d'une URL représentant une image générée à partir d'un appel à la fonction Earth Engine getThumbUrl. Le script suivant affiche une miniature d'un modèle d'altitude global.
# 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']}))
Carte interactive
Le folium
package peut être utilisé pour afficher des objets ee.Image sur une carte Leaflet interactive
. Folium ne dispose pas de méthode par défaut pour gérer les tuiles d'Earth Engine. Vous devez donc en définir une et l'ajouter au module folium.Map avant de l'utiliser.
Le script suivant fournit un exemple d'ajout d'une méthode pour gérer les tuiles Earth Engine et de son utilisation pour afficher un modèle d'altitude sur une carte 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)
Visualisation de graphiques
Certaines fonctions Earth Engine produisent des données tabulaires qui peuvent être tracées par des packages de visualisation de données tels que matplotlib. L'exemple suivant montre l'affichage de données tabulaires d'Earth Engine sous forme de nuage de points. Pour en savoir plus, consultez la section Créer des graphiques dans 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()
Exécuter dans Google Colab
Afficher la source sur GitHub