Exporter des graphiques et des images

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-dessous 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 pour un lieu donné. Pour créer un tel graphique, la première étape consiste à choisir un lieu qui vous intéresse. Créez un point en sélectionnant l'outil de dessin de points () et créez une géométrie de point unique dans la zone qui vous intéresse. (Si vous avez déjà des importations, pointez sur Importations de géométrie, puis cliquez d'abord sur + Nouveau calque.) Localisez le point dans une zone agricole, une forêt de feuillus, une prairie annuelle ou une autre zone de couverture terrestre avec un cycle annuel. Nommez l'importation roi. (Pour en savoir plus sur la création de géométries de manière programmatique, consultez cette page.)

Utilisons maintenant le point roi pour créer un graphique de l'indice NDVI au fil du temps dans le pixel situé sous ce point. Pour créer des graphiques dans Earth Engine, vous devez utiliser 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 a donné un graphique ressemblant à la figure 10. Notez que les paramètres du constructeur de graphique incluent un réducteur et une échelle tels que 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 votre région est 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.

Tutorial_api_10_ndvi_chart.png
Figure 10. Graphique de l'indice de végétation NDVI Landsat au fil du temps pour une géométrie ponctuelle.

Digression : Masquage de nuages simple pour Landsat

Vous avez peut-être remarqué que la série temporelle des valeurs NDVI au point semble un peu bruyante. Cela est probablement dû aux 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 couverture nuageuse dans le pixel, de 0 à 100, respectivement de la couverture nuageuse la plus faible à la plus élevée. En modifiant la fonction que vous avez mappée sur la collection, vous pouvez utiliser un seuil arbitraire (20) sur l'index de couverture nuageuse 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 lisse, mais peut toujours contenir des pixels affectés par les nuages. Ajustez le seuil sur l'index cloud et observez la série temporelle représentée sous forme de graphique pour comprendre comment ce seuil peut affecter vos résultats.

Tutorial_api_11_cloudless_chart.png
Figure 11. Graphique de l'évolution du NDVI masqué par les nuages pour une géométrie ponctuelle.

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éé un composite de pixels les plus verts, 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 maintenant la collection masquée par les nuages. Vous pouvez exporter un sous-ensemble (défini par une région) à l'aide du package Export. (En savoir plus sur l'exportation de données raster et vectorielles depuis Earth Engine) Par exemple, pour exporter une image qui peut être facilement intégrée dans d'autres documents, créons une image de visualisation, comme vous l'avez fait précédemment, puis exportons-la vers 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 tâche est créée dans l'onglet Tasks (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 :

La raison pour laquelle vous devez faire preuve de prudence lorsque vous exportez sans argument region est que si vous définissez une valeur relativement petite pour scale et que la carte est dézoomée sur une grande zone, vous exporterez une image potentiellement très grande vers votre dossier Drive. Pour en savoir plus et obtenir la liste des paramètres de configuration possibles, consultez la documentation Export.image.toDrive() dans l'onglet Documentation.

Voilà qui conclut cette présentation de l'API Earth Engine. Vous avez maintenant découvert la plupart des fonctionnalités les plus courantes d'Earth Engine. Vous devriez pouvoir passer en toute confiance à des analyses plus complexes. Veillez à lire la documentation et à consulter le forum pour trouver des réponses à d'autres questions. À vous de jouer !