Analyse de données géospatiales avec Geemap


anello_geospatial_data_analysis_geemap_15 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_15 Analyse de données géospatiales avec Geemap Intelligence artificielle
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 ?

anello_geospatial_data_analysis_geemap_10 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_10 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_13 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_13 Analyse de données géospatiales avec Geemap Intelligence artificielle
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 ?

anello_geospatial_data_analysis_geemap_1 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_1 Analyse de données géospatiales avec Geemap Intelligence artificielle
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 ».

anello_geospatial_data_analysis_geemap_16 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_16 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_7 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_7 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_18 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_18 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_4 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_4 Analyse de données géospatiales avec Geemap Intelligence artificielle
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 :

anello_geospatial_data_analysis_geemap_14 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_14 Analyse de données géospatiales avec Geemap Intelligence artificielle

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

anello_geospatial_data_analysis_geemap_17 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_17 Analyse de données géospatiales avec Geemap Intelligence artificielle

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

anello_geospatial_data_analysis_geemap_6 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_6 Analyse de données géospatiales avec Geemap Intelligence artificielle

Alternativement, vous pouvez modifier manuellement le fond de carte en cliquant sur l’icône de clé à anneau positionnée à droite.

anello_geospatial_data_analysis_geemap_5 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_5 Analyse de données géospatiales avec Geemap Intelligence artificielle

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.

anello_geospatial_data_analysis_geemap_11 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_11 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_12 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_12 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_8 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_8 Analyse de données géospatiales avec Geemap Intelligence artificielle
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

anello_geospatial_data_analysis_geemap_3 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_3 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.

anello_geospatial_data_analysis_geemap_9 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_9 Analyse de données géospatiales avec Geemap Intelligence artificielle
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

anello_geospatial_data_analysis_geemap_2 Analyse de données géospatiales avec Geemap Intelligence artificielle anello_geospatial_data_analysis_geemap_2 Analyse de données géospatiales avec Geemap Intelligence artificielle
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.



Source link