Illustration par l’auteur
L’analyse des données géospatiales est un domaine destiné à traiter, visualiser et analyser un type particulier de données, appelées données géospatiales. Par rapport aux données normales, nous avons des données tabulaires avec une colonne supplémentaire, les informations de localisation, telles que la latitude et la longitude.
Il existe deux principaux types de données : les données vectorielles et les données raster. Lorsque vous traitez des données vectorielles, vous disposez toujours d’un ensemble de données tabulaires, tandis que les données raster ressemblent davantage à des images, telles que des images satellites et des photographies aériennes.
Dans cet article, je vais me concentrer sur les données raster fournies par Google Earth Engine, une plate-forme de cloud computing qui fournit un énorme catalogue de données d’images satellite. Ce type de données peut être facilement maîtrisé à partir de votre Jupyter Notebook à l’aide d’un package Python qui sauve des vies, appelé Geemap. Commençons!
Qu’est-ce que le moteur Google Earth ?
Capture d’écran par l’auteur. Page d’accueil de Google Earth Engine.
Avant de commencer avec la bibliothèque Python, nous devons comprendre le potentiel de Moteur Google Earth. Cette plateforme cloud, optimisée par la plateforme Google Cloud, héberge des ensembles de données géospatiales publiques et gratuites à des fins académiques, à but non lucratif et commerciales.
Capture d’écran par l’auteur. Présentation du catalogue de données Earth Engine.
La beauté de cette plate-forme est qu’elle fournit un catalogue de plusieurs pétaoctets de données raster et vectorielles, stockées sur les serveurs Earth Engine. Vous pouvez avoir un aperçu rapide à partir de ceci lien. De plus, il fournit des API pour faciliter l’analyse des ensembles de données raster.
Qu’est-ce que Geemap ?
Illustration de l’auteur. Bibliothèque Geemap.
Géomap est une bibliothèque Python qui permet d’analyser et de visualiser d’énormes quantités de données géospatiales provenant de Google Earth Engine.
Avant ce package, il était déjà possible d’effectuer des requêtes de calcul via les API JavaScript et Python, mais les API Python avaient des fonctionnalités limitées et manquaient de documentation.
Pour combler cette lacune, Geemap a été créé pour permettre aux utilisateurs d’accéder aux ressources de Google Earth Engine avec quelques lignes de code. Geemap est construit sur moteur de terre-api, dépliant ipyle et feuille.
Pour installer la bibliothèque, vous avez juste besoin de la commande suivante :
Je vous recommande d’expérimenter ce package étonnant dans Google Colab pour comprendre tout son potentiel. Jeter un coup d’œil à ce livre gratuit écrit par le professeur Dr Qiusheng Wu pour démarrer avec Geemap et Google Earth Engine.
Comment accéder à Earth Engine ?
Tout d’abord, nous devons importer deux bibliothèques Python, qui seront utilisées dans le didacticiel :
En plus de geemap, nous avons importé la bibliothèque client Earth Engine Python, appelée ee.
Cette librairie Python peut être utilisée pour l’authentification sur Earth Engine, mais elle peut être plus rapide en utilisant directement la librairie Geemap :
Vous devez cliquer sur l’URL renvoyée par cette ligne de code, ce qui générera le code d’autorisation. Tout d’abord, sélectionnez le projet cloud, puis cliquez sur le bouton « GÉNÉRER UN JETON ».
Capture d’écran par l’auteur. Authentificateur de bloc-notes.
Ensuite, il vous demandera de choisir le compte. Je recommande de prendre le même compte de Google Colab si vous l’utilisez.
Capture d’écran par l’auteur. Choisissez un compte.
Ensuite, cochez la case à côté de Sélectionner tout et appuyez sur le bouton « Continuer ». En un mot, cette étape permet au client Notebook d’accéder au compte Earth Engine.
Capture d’écran par l’auteur. Autorisez le client Notebook à accéder à votre compte Earth Engine.
Après cette action, le code d’authentification est généré et vous pouvez le coller dans la cellule du notebook.
Capture d’écran par l’auteur. Copiez le code d’authentification.
Une fois le code de vérification renseigné, vous pouvez enfin créer et visualiser cette carte interactive :
Pour l’instant, vous observez simplement la carte de base au-dessus de ipyleaflet, un package Python qui permet la visualisation de cartes interactives dans le Jupyter Notebook.
Créer des cartes interactives
Précédemment, nous avons vu comment authentifier et visualiser une carte interactive à l’aide d’une seule ligne de code. Désormais, nous pouvons personnaliser la carte par défaut en spécifiant la latitude et la longitude du centroïde, le niveau de zoom et la hauteur. J’ai choisi les coordonnées de Rome pour que le centre se concentre sur la carte de l’Europe.
m = geemap.Map(center=[41, 12], zoom=6, height=600)
m
Si nous voulons changer la carte de base, il y a deux manières possibles. La première méthode consiste à écrire et exécuter la ligne de code suivante :
m.add_basemap("ROADMAP")
m
Alternativement, vous pouvez modifier manuellement le fond de carte en cliquant sur l’icône de clé à anneau positionnée à droite.
D’ailleurs, on voit la liste des fonds de cartes fournis par Geemap :
basemaps = geemap.basemaps.keys()
for bm in basemaps:
print(bm)
Voici le résultat :
OpenStreetMap
Esri.WorldStreetMap
Esri.WorldImagery
Esri.WorldTopoMap
FWS NWI Wetlands
FWS NWI Wetlands Raster
NLCD 2021 CONUS Land Cover
NLCD 2019 CONUS Land Cover
...
Comme vous pouvez le constater, il existe une longue série de cartes de base, la plupart disponibles grâce à OpenStreetMap, ESRI et USGS.
Types de données du moteur terrestre
Avant de montrer tout le potentiel de Geemap, il est important de connaître deux principaux types de données dans Earth Engine. Jetez un oeil à Documentation de Google Earth Engine pour plus de détails.
Illustration de l’auteur. Exemple de types de données vectorielles : Géométrie, Feature et FeatureCollection.
Lors du traitement des données vectorielles, nous utilisons principalement trois types de données :
- Géométrie stocke les coordonnées nécessaires pour dessiner les données vectorielles sur une carte. Trois principaux types de géométries sont pris en charge par Earth Engine : Point, LineString et Polygon.
- Fonctionnalité est essentiellement une ligne qui combine des attributs géométriques et non géographiques. C’est très similaire à la classe GeoSeries de GeoPandas.
- Collection de fonctionnalités est une structure de données tabulaire qui contient un ensemble de fonctionnalités. FeatureCollection et GeoDataFrame sont presque identiques sur le plan conceptuel.
Capture d’écran par l’auteur. Exemple de type de données Image. Il montre le modèle d’élévation numérique lissé australien (DEM-S)
Dans le monde des données raster, nous nous concentrons sur Image objets. Les images de Google Earth Engine sont composées d’une ou plusieurs marques, où chaque bande a un nom spécifique, un minimum et un maximum estimés et une description.
Si nous avons une collection ou une série chronologique d’images, Collection d’images est plus approprié comme type de données.
Capture d’écran par l’auteur. Copernicus CORINE Couverture terrestre.
Nous visualisons l’imagerie satellite montrant la carte de la couverture terrestre de l’Europe. Cet ensemble de données fournit les changements entre 1986 et 2018.
Tout d’abord, nous chargeons l’image en utilisant ee.Image puis sélectionnons la bande « landcover ». Enfin, visualisons l’image en ajoutant l’ensemble de données chargé à la carte en tant que couche à l’aide de 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
Capture d’écran par l’auteur.
De la même manière, nous pouvons faire la même chose pour charger et visualiser l’imagerie satellite montrant la carte d’occupation du sol de l’Europe. Cet ensemble de données fournit les changements entre 1986 et 2018.
Capture d’écran par l’auteur. Imagerie haute résolution hors ligne des concentrations de méthane.
Pour visualiser une ImageCollection Earth Engine, les lignes de code sont similaires, à l’exception de 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
Capture d’écran par l’auteur.
C’est super! Sur cette carte, nous remarquons comment le méthane, l’un des plus importants contributeurs à l’effet de serre, est réparti dans le monde.
Dernières pensées
Il s’agit d’un guide d’introduction qui peut vous aider à travailler avec les données de Google Earth Engine à l’aide de Python. Geemap est la bibliothèque Python la plus complète pour visualiser et analyser ce type de données.
Si vous souhaitez approfondir ce package, vous pouvez consulter les ressources que j’ai suggérées ci-dessous.
Le code peut être trouvé ici. J’espère que vous avez trouvé l’article utile. Passe une bonne journée!
Ressources utiles :
Eugénie Anello est actuellement chercheur au Département d’ingénierie de l’information de l’Université de Padoue, en Italie. Son projet de recherche porte sur l’apprentissage continu combiné à la détection d’anomalies.