Premiers pas avec Earth Engine pour Python

Ce guide de démarrage rapide vous présente de manière interactive la visualisation et l'analyse des données géospatiales avec l'interface Python d'Earth Engine.

Avant de commencer

Enregistrez ou créez un projet Google Cloud. Vous serez invité à suivre les étapes suivantes. Si vous avez déjà enregistré un projet pour accéder à Earth Engine, passez à la section suivante.

  • Sélectionnez l'objectif du projet: commercial ou non commercial.
  • Si l'objectif est non commercial, sélectionnez un type de projet.
  • Créez un projet Google Cloud ou sélectionnez un projet existant.
  • Si l'objectif est commercial, vérifiez ou configurez la facturation pour votre projet.
  • Confirmez les informations de votre projet.

    Remarque:Si vous ne comptez pas conserver les ressources créées dans cette procédure, créez un projet au lieu de sélectionner un projet existant. Une fois ces étapes terminées, vous pouvez supprimer le projet, ce qui supprime toutes les ressources qui lui sont associées.

Configuration du notebook

Les notebooks Jupyter vous permettent d'utiliser Earth Engine et d'explorer les résultats de manière interactive. Le moyen le plus rapide de se lancer est d'utiliser un notebook dans Google Colab. Vous pouvez ouvrir un nouveau notebook et copier les extraits de code suivants dans des cellules individuelles ou utiliser le notebook de démarrage rapide Python Earth Engine prérempli.
  1. Importez les bibliothèques Earth Engine et geemap.
    import ee
    import geemap.core as geemap

  1. Authentifiez et initialisez le service Earth Engine. Suivez les instructions qui s'affichent pour effectuer l'authentification. Veillez à remplacer PROJECT_ID par le nom du projet que vous avez configuré pour ce guide de démarrage rapide.
    ee.Authenticate()
    ee.Initialize(project='PROJECT_ID')

Ajouter des données raster à une carte

  1. Chargez des données climatiques pour une période donnée et affichez ses métadonnées.
    jan_2023_climate = (
        ee.ImageCollection('ECMWF/ERA5_LAND/MONTHLY_AGGR')
        .filterDate('2023-01', '2023-02')
        .first()
    )
    jan_2023_climate

  1. Instanciez un objet carte et ajoutez la bande de température en tant que calque avec des propriétés de visualisation spécifiques. Affichez la carte.
    m = geemap.Map(center=[30, 0], zoom=2)
    
    vis_params = {
        'bands': ['temperature_2m'],
        'min': 229,
        'max': 304,
        'palette': 'inferno',
    }
    m.add_layer(jan_2023_climate, vis_params, 'Temperature (K)')
    m

Ajouter des données vectorielles à une carte

  1. Créez un objet de données vectorielles avec des points pour trois villes.
    cities = ee.FeatureCollection([
        ee.Feature(ee.Geometry.Point(10.75, 59.91), {'city': 'Oslo'}),
        ee.Feature(ee.Geometry.Point(-118.24, 34.05), {'city': 'Los Angeles'}),
        ee.Feature(ee.Geometry.Point(103.83, 1.33), {'city': 'Singapore'}),
    ])
    cities
  1. Ajoutez les villes à la carte et affichez-la à nouveau.
    m.add_layer(cities, name='Cities')
    m

Extraire et représenter des données sous forme de graphiques

  1. Importez la bibliothèque de graphiques Altair.
    %pip install -q --upgrade altair
    import altair as alt

  1. Extrayez les données climatiques des trois villes sous la forme d'un DataFrame pandas.
    city_climates = jan_2023_climate.reduceRegions(cities, ee.Reducer.first())
    
    city_climates_dataframe = ee.data.computeFeatures(
        {'expression': city_climates, 'fileFormat': 'PANDAS_DATAFRAME'}
    )
    city_climates_dataframe
  1. Représentez la température des villes sous forme de graphique à barres.
    alt.Chart(city_climates_dataframe).mark_bar(size=100).encode(
        alt.X('city:N', sort='y', axis=alt.Axis(labelAngle=0), title='City'),
        alt.Y('temperature_2m:Q', title='Temperature (K)'),
        tooltip=[
            alt.Tooltip('city:N', title='City'),
            alt.Tooltip('temperature_2m:Q', title='Temperature (K)'),
        ],
    ).properties(title='January 2023 temperature for selected cities', width=500)

Étape suivante