Représenter graphiquement la perte annuelle de forêt

Calcul de la perte annuelle de forêts

Dans la section précédente, vous avez appris à calculer la superficie totale de forêt perdue dans la région d'intérêt donnée à l'aide de la méthode reduceRegion. Au lieu de calculer la perte totale, il serait utile de calculer la perte pour chaque année. Pour ce faire, utilisez un réducteur groupé dans Earth Engine.

Pour regrouper les résultats de reduceRegion(), vous pouvez spécifier une bande de regroupement qui définit les groupes par valeurs de pixels entières. Dans l'exemple suivant, nous modifions légèrement le code précédent et ajoutons la bande lossYear à l'image d'origine. Chaque pixel de la bande lossYear contient des valeurs comprises entre 0 et 14, indiquant l'année de la perte. Nous remplaçons également le réducteur par un réducteur groupé, en spécifiant l'index de la bande de regroupement (1) afin que les zones de pixels soient additionnées et regroupées en fonction de la valeur de la bande lossYear.

Éditeur de code (JavaScript)

// Load country boundaries from LSIB.
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');
// Get a feature collection with just the Congo feature.
var congo = countries.filter(ee.Filter.eq('country_co', 'CF'));

// Get the loss image.
// This dataset is updated yearly, so we get the latest version.
var gfc2017 = ee.Image('UMD/hansen/global_forest_change_2017_v1_5');
var lossImage = gfc2017.select(['loss']);
var lossAreaImage = lossImage.multiply(ee.Image.pixelArea());

var lossYear = gfc2017.select(['lossyear']);
var lossByYear = lossAreaImage.addBands(lossYear).reduceRegion({
  reducer: ee.Reducer.sum().group({
    groupField: 1
    }),
  geometry: congo,
  scale: 30,
  maxPixels: 1e9
});
print(lossByYear);

Une fois le code ci-dessus exécuté, la zone de perte forestière annuelle s'affiche dans une liste imbriquée appelée groups. Nous pouvons formater un peu la sortie pour que le résultat soit un dictionnaire, avec l'année comme clé et la zone de perte comme valeur. Notez que nous utilisons la méthode format() pour convertir les valeurs d'année de 0-14 en 2000-2014.

Éditeur de code (JavaScript)

var statsFormatted = ee.List(lossByYear.get('groups'))
  .map(function(el) {
    var d = ee.Dictionary(el);
    return [ee.Number(d.get('group')).format("20%02d"), d.get('sum')];
  });
var statsDictionary = ee.Dictionary(statsFormatted.flatten());
print(statsDictionary);

Créer un graphique

Maintenant que nous disposons des chiffres des pertes annuelles, nous sommes prêts à préparer un graphique. Nous allons utiliser la méthode ui.Chart.array.values(). Cette méthode accepte un tableau (ou une liste) de valeurs d'entrée et un tableau (ou une liste) d'étiquettes pour l'axe X.

Éditeur de code (JavaScript)

var chart = ui.Chart.array.values({
  array: statsDictionary.values(),
  axis: 0,
  xLabels: statsDictionary.keys()
}).setChartType('ColumnChart')
  .setOptions({
    title: 'Yearly Forest Loss',
    hAxis: {title: 'Year', format: '####'},
    vAxis: {title: 'Area (square meters)'},
    legend: { position: "none" },
    lineWidth: 1,
    pointSize: 3
  });
print(chart);

Le résultat doit ressembler au graphique ci-dessous.

Tutorial_Hansen_17_chart.png
Figure 1. Graphique de la perte de forêts par année

Dans la section suivante, vous allez découvrir un autre ensemble de données de surveillance de la déforestation, FORMA, et le comparer aux données de Hansen et al.