Calcul de la perte annuelle de forêt
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 dans Earth Engine, vous devez utiliser un réducteur groupé.
Pour regrouper la sortie de reduceRegion()
, vous pouvez spécifier une bande de regroupement qui définit les groupes par valeurs de pixels entiers. 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, qui indiquent l'année à laquelle la perte s'est produite. Nous modifions également le réducteur en un réducteur groupé, en spécifiant l'index de bande 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 valeurs de 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 de pertes annuelles, nous pouvons préparer un graphique. Nous utiliserons la méthode ui.Chart.array.values()
. Cette méthode prend un tableau (ou une liste) de valeurs d'entrée et un tableau (ou une liste) de libellés 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.

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