Earth Engine est un outil d'analyse puissant, mais vous devrez peut-être exporter les résultats de votre analyse pour intégrer des graphiques, des images, des cartes, etc. dans des rapports ou des publications. Dans cette section, vous allez apprendre à créer des graphiques et des images qui peuvent être exportés et affichés dans d'autres logiciels. Rappelez-vous que dans la section précédente, vous avez utilisé un code semblable à celui-ci pour ajouter une bande NDVI à chaque image d'une collection, où la variable l8 fait référence à la collection de réflectance TOA Landsat 8 :
Éditeur de code (JavaScript)
// Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Map a function over the Landsat 8 TOA collection to add an NDVI band. var withNDVI = l8.map(function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); });
Représentation graphique
Supposons que vous souhaitiez obtenir un graphique de l'indice NDVI au fil du temps à un emplacement donné. Pour créer un tel graphique, la première étape consiste à choisir un lieu d'intérêt. Créez un point en sélectionnant l'outil de dessin de point (
) et créez une géométrie à point unique dans votre zone d'intérêt. (Si vous avez déjà des importations, pointez sur Importations de géométries, puis cliquez sur + nouveau calque.)
Localisez le point dans une zone agricole, une forêt de feuillus, une prairie annuelle ou une autre couverture terrestre avec un cycle annuel. Nommez l'importation roi. (Consultez cette page pour en savoir plus sur la création de géométries de manière programmatique).
Utilisons maintenant le point roi pour créer un graphique de l'évolution du NDVI dans le pixel situé sous ce point. Pour créer des graphiques dans Earth Engine, utilisez le package ui.Chart. (En savoir plus sur la création de graphiques dans Earth Engine)
Plus précisément, pour créer un graphique au fil du temps, vous pouvez utiliser la méthode ui.Chart.image.series() :
Éditeur de code (JavaScript)
// Create a chart. var chart = ui.Chart.image.series({ imageCollection: withNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'NDVI over time'}); // Display the chart in the console. print(chart);
Pour la géométrie roi, nous avons choisi un point dans une zone agricole, ce qui donne un graphique semblable à la figure 10. Notez que les paramètres du constructeur de graphique incluent un réducteur et une échelle comme reduceRegion(). Étant donné que le point que nous fournissons en tant que région ne peut intersecter qu'un seul pixel, il suffit d'utiliser le réducteur "first". Si vous avez une région plus grande, vous devez utiliser un réducteur "mean" ou un autre réducteur qui spécifie comment agréger les pixels. Notez également que pour visualiser un graphique, il vous suffit de l'imprimer.
Digression : Masquage simple des nuages pour Landsat
Vous avez peut-être remarqué que la série temporelle des valeurs NDVI au point semble un peu bruitée. Cela est probablement dû à des nuages. Pour atténuer cet effet, Earth Engine inclut un algorithme de masquage des nuages pour les capteurs Landsat avec une bande thermique : ee.Algorithms.Landsat.simpleCloudScore(). Il prend une image de réflectance TOA Landsat en entrée et ajoute une bande nommée cloud, qui est un indice de nébulosité dans le pixel de 0 à 100, du moins au plus nuageux, respectivement. En modifiant la fonction que vous avez mappée sur la collection, vous pouvez utiliser un seuil arbitraire (20) sur l'indice de nébulosité pour nettoyer un peu le graphique :
Éditeur de code (JavaScript)
var cloudlessNDVI = l8.map(function(image) { // Get a cloud score in [0, 100]. var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud'); // Create a mask of cloudy pixels from an arbitrary threshold. var mask = cloud.lte(20); // Compute NDVI. var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); // Return the masked image with an NDVI band. return image.addBands(ndvi).updateMask(mask); }); print(ui.Chart.image.series({ imageCollection: cloudlessNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'Cloud-masked NDVI over time'}));
Le résultat masqué par les nuages est illustré à la figure 11. Notez que la série temporelle semble un peu plus fluide, mais qu'elle peut toujours contenir des pixels affectés par les nuages. Ajustez le seuil de l'index de couverture nuageuse et observez la série temporelle représentée pour découvrir comment ce seuil peut affecter vos résultats.
Exporter des images
Vous avez vu comment exporter un graphique de données calculées par Earth Engine, mais qu'en est-il d'une image entière ? Supposons, par exemple, que vous ayez créé une image composite du pixel le plus vert, comme indiqué dans la section précédente :
Éditeur de code (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
La seule différence entre ce code et ce que vous avez fait précédemment est que nous utilisons désormais la collection masquée par les nuages. Vous pouvez exporter un sous-ensemble (défini par une région) de ces données à l'aide du package Export. (En savoir plus sur l'exportation de données matricielles et vectorielles depuis Earth Engine) Par exemple, pour exporter une image pouvant être facilement intégrée à d'autres documents, créons une image de visualisation, comme vous l'avez fait précédemment, et exportons-la dans votre dossier Google Drive :
Éditeur de code (JavaScript)
// Create a 3-band, 8-bit, color-IR composite to export. var visualization = greenest.visualize({ bands: ['B5', 'B4', 'B3'], max: 0.4 }); // Create a task that you can launch from the Tasks tab. Export.image.toDrive({ image: visualization, description: 'Greenest_pixel_composite', scale: 30 });
Lorsque vous exécutez ce code, notez qu'une nouvelle tâche est créée dans l'onglet Tâches. Pour lancer la boîte de dialogue de configuration de l'exportation, cliquez sur le bouton EXÉCUTER dans l'onglet Tâches. Une fois la tâche configurée, cliquez sur le bouton Exécuter dans la boîte de dialogue pour lancer l'exportation. Mais avant de le faire, sachez que :
Vous devez faire preuve de prudence lorsque vous exportez sans argument region, car si vous définissez une valeur relativement faible pour scale et que la carte est dézoomée sur une grande zone, vous exporterez une image potentiellement très volumineuse vers votre dossier Drive. Pour en savoir plus et obtenir la liste des paramètres de configuration possibles, consultez la documentation sur Export.image.toDrive() dans l'onglet Docs.
Voilà qui conclut cette présentation de l'API Earth Engine. Vous avez maintenant vu la plupart des fonctionnalités les plus courantes d'Earth Engine et devriez pouvoir passer en toute confiance à des analyses plus complexes. N'oubliez pas de lire la documentation et de rechercher des réponses à d'autres questions sur le forum. À vous de jouer !