Si vous souhaitez créer ou développer un projet / une application géologique ou si vous souhaitez inclure des fonctionnalités de cartographie des données dans votre projet, une solution possible consiste à utiliser Google Earth Engine, qui est une API puissante et flexible basée sur le cloud qui vous permet traitez d’énormes quantités d’images satellites dans le confort de Google Cloud. Et dans cet article de blog, nous utiliserons « geemap » qui est l’une des meilleures et des plus récentes bibliothèques pour Python pour interagir avec les fonctionnalités de Google Earth Engine en Python.
Qu’est-ce qu’une carte géographique :
geemap est un package Python qui vous permet d’utiliser Google Earth Engine (GEE) de manière interactive. Avec GEE, on peut accéder à l’imagerie satellite, au terrain et aux ensembles de données géospatiales, comme par exemple la masse d’arbres pour différentes régions du monde, ou comment la végétation change sur une période de temps. geemap est basé sur Python et peut donc être utilisé avec d’autres bibliothèques et didacticiels disponibles via ce merveilleux langage.
Conditions préalables:
Miniconda : nous utiliserons miniconda dans ce didacticiel. Il s’agit d’un programme d’installation minimal gratuit pour conda. Il s’agit d’une petite version bootstrap d’Anaconda qui n’inclut que conda, Python et un petit nombre d’autres packages utiles. Si vous voulez suivre, allez sur le lien donné puis téléchargez et installez miniconda, après cela, vous devriez avoir un terminal conda ouvert.
https://docs.conda.io/en/latest/miniconda.html
Installation de Geemap : Suivez les étapes suivantes pour installer Geemap
Tout d’abord, créons un environnement conda et activons-le
conda create -n gee python
conda activate gee
Maintenant, installons un geemap
conda install mamba -c conda-forge
mamba install geemap -c conda-forge
Ça y est geemap est installé
Bloc-notes Jupyter : nous avons également besoin d’un bloc-notes jupyter qui peut améliorer votre productivité dans l’environnement des blocs-notes. Pour installer Jupiter notebook, utilisez la commande suivante
mamba install jupyter_contrib_nbextensions -c conda-forge
Et pour exécuter jupyter notebook, exécutez la commande suivante
jupyter notebook
Or
python -m notebook
Code:
Exemple simple :
Tout d’abord, démarrez votre notebook Jupyter et créez un nouveau fichier Python. Ensuite, commençons notre interaction avec Google Earth Engine.
# importing the geemap library
import ee
import geemap
# creating an interactive map (you can change the value to specify where should map start and how zoomed in the map will be)
Map = geemap.Map(center=(20, 80), zoom=4)
Map
Remarque : lorsque vous utilisez geemap pour la première fois, il vous sera demandé de vous connecter à votre compte Google pour accéder à l’API du moteur Google Earth. Il vous suffit de vous connecter, puis une clé API apparaîtra sur l’écran suivant – collez cette clé API dans la boîte et vous êtes prêt à partir.
Sortir:
Comme vous pouvez le voir dans la sortie, nous avons une carte entièrement interactive sur le côté gauche de la carte, vous pouvez voir de nombreux outils comme un zoom avant, un zoom arrière, dessiner des formes, dessiner un marqueur, etc. Vous pouvez essayer vous-même pour voir ce que font tous les outils
Modification du type de carte :
Il y a de nombreux aspects d’une carte que nous devons suivre, comme le type de carte que nous visualisons est particulièrement important. Nous pouvons facilement changer le type de carte actuel en utilisant la commande suivante
Map.add_basemap('SATELLITE')
Sortir:
Vous pouvez voir dans la sortie que le type de carte est maintenant la vue satellite. Vous pouvez également choisir parmi une variété de types de cartes – essayez les autres et voyez ce qui se passe !
Map.add_basemap('SATELLITE')
Map.add_basemap('ROADMAP')
Map.add_basemap('HYBRID')
Map.add_basemap('TERRAIN')
Map.add_basemap('OpenStreetMap')
Si vous voulez plus de types de cartes de base, utilisez la commande suivante
m = geemap.Map()
m.basemap_demo()
m
Sortir:
Vous pouvez choisir dans le menu déroulant du fond de carte
Pour obtenir toutes les cartes de base dans votre terminal, utilisez la commande suivante
basemaps = geemap.basemaps.keys()
for basemap in basemaps:
print(basemap)
Outil d’inspection pour Earth Engine :
import geemap# adding google earth engine data layer
# here we are adding google Earth Engine dataset
dem = ee.Image('USGS/SRTMGL1_003')
landcover = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3").select('landcover')
landsat7 = ee.Image('LE7_TOA_5YEAR/1999_2003').select(['B1', 'B2', 'B3', 'B4', 'B5', 'B7'])
states = ee.FeatureCollection("TIGER/2018/States")
# Set visualization parameters.
vis_params = {
'min': 0,
'max': 4000,
'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}
# Add Earth Engine layers to Map
Map.addLayer(dem, vis_params, 'SRTM DEM', True, 0.5)
Map.addLayer(landcover, {}, 'Land cover')
Map.addLayer(landsat7, {'bands': ['B4', 'B3', 'B2'], 'min': 20, 'max': 200, 'gamma': 2.0}, 'Landsat 7')
Map.addLayer(states, {}, "US States")
Map
Sortir:
Dans la sortie, vous pouvez également masquer des calques spécifiques. Allez simplement dans le coin supérieur droit et décochez les calques dont vous n’avez pas besoin!
Nous pouvons maintenant utiliser l’outil d’inspection pour obtenir les valeurs de chaque couche. Tout d’abord, allez dans les paramètres et appuyez sur l’icône « Inspector Tool ». Ensuite, cliquez sur n’importe quel emplacement de la carte pour lequel vous souhaitez obtenir les valeurs et il affichera des informations de base à ce sujet, telles que son altitude et sa couverture terrestre. Cet outil est idéal pour accéder rapidement aux informations sans avoir à écrire de lignes de code !
Création d’une carte à panneau partagé :
La fonction de panneau divisé est très utile de cette façon, vous pouvez visualiser côte à côte la différence entre deux cartes.
import geemap#creating an interactive map
Map = geemap.Map()
# here creating a slit map using split_map method
# change the map type in the left_layer and right_layer to change the map type showing in both sides
Map.split_map(left_layer='NLCD 2019 CONUS Land Cover', right_layer='SATELLITE')
Map
Sortirt:
Utiliser des outils de recherche intégrés pour obtenir différentes données
La carte interactive dispose déjà d’un outil de recherche intégré avec lequel vous pouvez rechercher les données disponibles et les ajouter en tant que couche pour utiliser cette fonctionnalité, suivez les étapes ci-dessous
- Appuyez sur l’icône en haut à gauche
- Allez dans l’onglet Données
- Rechercher les données (Si vous voulez voir tous les jeux de données, allez sur le lien suivant https://developers.google.com/earth-engine/datasets/catalog)
- Sélectionnez les données que vous souhaitez afficher sur la carte
- Appuyez sur l’importation, il écrira automatiquement le code dans la section ci-dessous
- Exécutez le code et c’est tout.
# creating a simple interactive map
import geemap
import os
Map = geemap.Map(toolbar_ctrl=True, layer_ctrl=True)
Map
# this is the auto generated code when we imported the data
dataset_hlh = ee.ImageCollection('JRC/GHSL/P2016/POP_GPW_GLOBE_V1')
Map.addLayer(dataset_hlh, {}, "JRC/GHSL/P2016/POP_GPW_GLOBE_V1")
Sortir:
Exporter la carte sous forme de fichier HTML :
Il est très utile de partager ce type de carte interactive avec d’autres personnes ou de l’afficher sur votre projet ou votre site Web et nous le faisons en exportant la carte sous forme de fichier HTML. Voyons comment c’est fait.
- Accédez à l’icône des paramètres présente dans le coin supérieur droit.
- Appuyez sur l’icône de l’appareil photo
- Ici, vous verrez trois onglets HTML, PNG et jpg appuyer sur le HTML.
- Sélectionnez ensuite l’emplacement et ajoutez le nom du fichier HTML et appuyez sur OK.
- C’est fait!
Conclusion:
Dans cet article de blog, nous avons présenté geemap, un package Python qui vous permet d’utiliser Google Earth Engine (GEE) de manière interactive. Nous avons également fourni un exemple de base sur la façon d’utiliser une geemap. Nous espérons que vous avez apprécié cet article de blog ! Si vous avez des questions ou des commentaires, n’hésitez pas à nous en faire part !