Jeux de données prétraités
Bienvenue dans le module sur les jeux de données prétraités !
Dans ce module, nous découvrirons les différentes façons de naviguer parmi la multitude de jeux de données disponibles dans GEE.
GEE offre un accès facile à des millions d'images issues de la vie entière de nombreux satellites d'imagerie ! Ces vastes collections peuvent être complexes à exploiter, ce qui rend la recherche de celles dont vous avez besoin difficile. Mais pas d'inquiétude ! Nous vous montrerons les moyens les plus simples de naviguer dans le catalogue de données GEE et de trouver le jeu de données que vous cherchez. Nous explorerons également quelques jeux de données pré-conçus mis à notre disposition, spécialement pour les pistes de ce hackathon !
Navigation dans les ensembles de données EE
SCommencez par saisir « Landsat 7 Collection 2 » dans la barre de recherche de l'éditeur de code Earth Engine.
Vous pouvez sélectionner un jeu de données dans ce menu déroulant initial ou appuyer sur Entrée pour afficher tous les résultats de la recherche. Ensuite, examinons les « Scènes brutes USGS Landsat 7 Collection 2 Tier 1 » affichées à droite.
Cliquer sur ce jeu de données affichera la boîte d'informations également affichée à droite. Vous y trouverez des informations sur le jeu de données, notamment une description, les bandes disponibles, les propriétés de l'image et les conditions d'utilisation des données en haut de la fenêtre. À gauche de cette fenêtre, vous verrez une plage de dates de disponibilité des données, un lien vers la page web du fournisseur du jeu de données et un extrait de collection. Cet extrait peut être utilisé pour importer le jeu de données en le collant dans votre script, comme dans les chapitres précédents. Vous pouvez également utiliser le gros bouton « Importer » pour importer le jeu de données dans votre espace de travail actuel. De plus, si vous cliquez sur le lien « Voir l'exemple », Earth Engine ouvrira une nouvelle fenêtre contenant un extrait de code illustrant l'utilisation du jeu de données. Ce type d'extrait peut s'avérer très utile pour apprendre à utiliser un jeu de données que vous ne connaissez pas encore.
Retournez ensuite aux résultats de recherche. En bas à droite, cliquez sur « Ouvrir dans le catalogue ».
Prétraitement des données
Passons en revue quelques notions de base qui vous seront utiles tout au long du hackathon. Impossible d'analyser des images satellite sans les avoir au départ, n'est-ce pas ?
Visualisation d'une collection d'images Landsat
Selon l'ancienneté d'une plateforme de télédétection, des milliers, voire des millions d'images de la Terre peuvent être collectées. Dans Earth Engine, ces images sont organisées en une ImageCollection, un type de données spécialisé dont les opérations spécifiques sont disponibles dans l'API Earth Engine. Comme les images individuelles, elles peuvent être visualisées avec Map.addLayer.
Le programme Landsat de la NASA et de l'USGS a lancé une série de satellites d'observation de la Terre qui fournissent des images depuis 1972, ce qui en fait la plus longue série d'images satellite d'observation de la surface terrestre. Observons des collections de scènes prises par l'imageur terrestre opérationnel de Landsat 8, lancé en 2013. (Remarque : inutile d'exécuter ce code, car il sera long ; suivez-le pour comprendre que les imagesCollections peuvent être volumineuses !)
///// // View an Image Collection ///// // Import the Landsat 8 Raw Collection. var landsat8 = ee.ImageCollection('LANDSAT/LC08/C02/T1'); // Print the size of the Landsat 8 dataset. print('The size of the Landsat 8 image collection is:', landsat8 .size()); // Try to print the image collection. // WARNING! Running the print code immediately below produces an error because // the Console can not print more than 5000 elements. print(landsat8); // Add the Landsat 8 dataset to the map as a mosaic. The collection is // already chronologically sorted, so the most recent pixel is displayed. Map.addLayer(landsat8, { bands: ['B4', 'B3', 'B2'], min: 5000, max: 15000 }, 'Landsat 8 Image Collection');
Le chargement des images peut prendre quelques minutes. Zoomez sur une zone pour accélérer le processus.
Notez que l'impression de l'ImageCollection a renvoyé un message d'erreur, car l'appel à print sur une ImageCollection écrira le nom de chaque image de la collection dans la console. Ceci est dû à une protection intentionnelle d'Earth Engine. Nous ne voulons pas voir un million de noms d'images affichés dans la console ! Et encore moins sur la carte !
Vous voyez que l'exécution sera longue ; passez donc à l'exercice suivant concernant le filtrage des collections d'images pour les rendre plus exploitables.
Filtrage des collections d'images
Le code ci-dessus affiche le jeu de données brut Landsat 8. Nous observons ainsi une multitude de nuages et d'autres perturbations atmosphériques, parfois indétectables par l'homme. Certains jeux de données ont été corrigés pour tenir compte de ces facteurs. Un jeu de données traité avec cette correction atmosphérique est appelé une collection d'images de « réflectance de surface ».
Saisissez et exécutez le code ci-dessous pour importer et filtrer les données de réflectance de surface Landsat 8 (landsat8SR) par date et jusqu'à un point situé à San Francisco, en Californie, aux États-Unis (pointSF). La fonction filterDate filtre les données sur une plage temporelle donnée, filterBounds les filtre sur une région spécifique et spécifie que seule la première image (la plus ancienne) de ce jeu de données entre les dates spécifiées est prise en compte.
// Create and Earth Engine Point object over San Francisco. var pointSF = ee.Geometry.Point([-122.44, 37.76]); // Import the Landsat 8 Surface Reflectance collection. var landsat8SR = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2'); // Filter the collection and select the first image. var landsat8SRimage = landsat8SR.filterDate('2014-03-18', '2014-03-19') .filterBounds(pointSF) .first(); print('Landsat 8 Surface Reflectance image', landsat8SRimage);
Affichez les métadonnées dans la console pour voir quelles bandes sont présentes dans l'ensemble de données. Utilisez ensuite le code ci-dessous pour afficher les bandes de réflectance de surface 2, 3 et 4 en RVB.
// Center map to the first image. Map.centerObject(landsat8SRimage, 8); // Add first image to the map. Map.addLayer(landsat8SRimage, { bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 7000, max: 13000 }, 'Landsat 8 SR');
Ensembles de données prédéfinis
EE met à votre disposition un large éventail de jeux de données prédéfinis. Voici quelques exemples :
Superficies brûlées mensuelles (suivi des feux de forêt)
Détection du méthane
Données météorologiques et climatiques
Données pré-classées sur l'utilisation des terres
Évolution des forêts à l'échelle mondiale
Dénombrements de population
Modèles d'altitude
Réfléchissez à différentes façons d'utiliser ces ensembles de données, voire d'en combiner plusieurs pour obtenir des résultats inédits. Par exemple, vous pouvez comparer les données démographiques et les zones brûlées par les feux de forêt pour déterminer les vies menacées par les incendies dans différentes zones. Vous pouvez également comparer l'utilisation des terres à la présence de méthane pour déterminer s'il existe de meilleures façons d'exploiter certaines terres. Les possibilités sont infinies avec un tel éventail de données à votre disposition.
Résumer
Voici ce que nous avons appris dans cette formation :
Il existe plusieurs façons de naviguer vers les nombreux ensembles de données de GEE. L’une des plus simples est la barre de recherche dans l’éditeur de code.
En cliquant sur l’un de ces ensembles de données, nous verrons une description, les bandes de l’ensemble de données, les valeurs de pixels minimales et maximales pour chaque bande, une option d’importation et même des exemples !
Les collections d’images peuvent contenir des millions d’images de toute la durée de vie du satellite d’imagerie
Les grandes collections d’images peuvent être difficiles à analyser et à afficher efficacement, nous filtrons donc nos données pour obtenir uniquement l’image dont nous avons besoin
Certains ensembles de données prédéfinis peuvent déjà être trouvés et sont incroyablement utiles pour nous. Recherchez dans le catalogue de données du moteur Google Earth pour en savoir plus !
Nouveaux éléments de code :
La fonction filterDate filtre les données sur une certaine plage de temps, filterBounds filtre les données sur une région spécifique et spécifie d’abord que nous voulons uniquement examiner la première image (la plus ancienne) de cet ensemble de données entre les dates spécifiées.
Exemples de code (pour les ensembles de données prédéfinis)
Vous trouverez ci-dessous quelques exemples de code que vous pouvez utiliser pour accéder à certains des jeux de données mentionnés précédemment. Dans le cadre du tutoriel, il n'est pas nécessaire de suivre ces exemples, car ils ne présentent aucun nouveau contenu pédagogique. Ils sont simplement fournis à titre de référence si vous souhaitez utiliser l'un des jeux de données.
Superficies brûlées mensuelles
Méthane
Données sur la couverture terrestre de l'Agence spatiale européenne
Changements mondiaux dans les forêts
Population
// Import the MODIS monthly burned areas dataset. var modisMonthly = ee.ImageCollection('MODIS/006/MCD64A1'); // Filter the dataset to a recent month during fire season. var modisMonthlyRecent = modisMonthly.filterDate('2021-08-01'); // Add the dataset to the map. Map.addLayer(modisMonthlyRecent, {}, 'MODIS Monthly Burn');
// Import a Sentinel-5 methane dataset. var methane = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CH4'); // Filter the methane dataset. var methane2018 = methane.select( 'CH4_column_volume_mixing_ratio_dry_air') .filterDate('2018-11-28', '2018-11-29') .first(); // Make a visualization for the methane data. var methaneVis = { palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red' ], min: 1770, max: 1920 }; // Center the Map. Map.centerObject(methane2018, 3); // Add the methane dataset to the map. Map.addLayer(methane2018, methaneVis, 'Methane');
// Import the ESA WorldCover dataset. var worldCover = ee.ImageCollection('ESA/WorldCover/v100').first(); // Center the Map. Map.centerObject(worldCover, 3); // Add the worldCover layer to the map. Map.addLayer(worldCover, { bands: ['Map'] }, 'WorldCover');
// Import the Hansen Global Forest Change dataset. var globalForest = ee.Image( 'UMD/hansen/global_forest_change_2020_v1_8'); // Create a visualization for tree cover in 2000. var treeCoverViz = { bands: ['treecover2000'], min: 0, max: 100, palette: ['black', 'green'] }; // Add the 2000 tree cover image to the map. Map.addLayer(globalForest, treeCoverViz, 'Hansen 2000 Tree Cover'); // Create a visualization for the year of tree loss over the past 20 years. var treeLossYearViz = { bands: ['lossyear'], min: 0, max: 20, palette: ['yellow', 'red'] }; // Add the 2000-2020 tree cover loss image to the map. Map.addLayer(globalForest, treeLossYearViz, '2000-2020 Year of Loss');
// Import and filter a gridded population dataset. var griddedPopulation = ee.ImageCollection( 'CIESIN/GPWv411/GPW_Population_Count') .first(); // Predefined palette. var populationPalette = [ 'ffffe7', '86a192', '509791', '307296', '2c4484', '000066' ]; // Center the Map. Map.centerObject(griddedPopulation, 3); // Add the population data to the map. Map.addLayer(griddedPopulation, { min: 0, max: 1200, 'palette': populationPalette }, 'Gridded Population');