Calcolo della perdita annuale di foreste
Nella sezione precedente hai imparato a
calcolare la superficie forestale totale persa nella
regione di interesse specificata utilizzando il metodo reduceRegion
. Invece di
calcolare la perdita totale, sarebbe utile calcolare la perdita per ogni anno. Il modo
per farlo in Earth Engine è utilizzare un riduttore raggruppato.
Per raggruppare l'output di reduceRegion()
, puoi specificare una banda di raggruppamento che
definisce i gruppi in base ai valori dei pixel interi. Nell'esempio seguente, modifichiamo leggermente il codice precedente e aggiungiamo la banda lossYear
all'immagine originale. Ogni pixel nella
banda lossYear
contiene valori da 0 a 14, che indicano l'anno in cui si è verificata la
perdita. Modifichiamo anche il riduttore in un riduttore raggruppato, specificando l'indice della banda
di raggruppamento (1) in modo che le aree dei pixel vengano sommate e raggruppate in base al valore
nella banda lossYear
.
Editor di codice (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);
Dopo aver eseguito il codice riportato sopra, vedrai l'area di perdita forestale annuale stampata in un elenco
nidificato chiamato groups
. Possiamo formattare un po' l'output per fare in modo che il risultato sia un
dizionario, con l'anno come chiave e l'area di perdita come valore. Tieni presente che utilizziamo il
metodo format()
per convertire i valori degli anni da 0-14 a 2000-2014.
Editor di codice (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);
Creare un grafico
Ora che abbiamo i numeri delle perdite annuali, possiamo preparare un grafico. Utilizzeremo il
metodo ui.Chart.array.values()
. Questo metodo accetta un array (o un elenco) di valori di input
e un array (o un elenco) di etichette per l'asse X.
Editor di codice (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);
Il risultato dovrebbe essere simile al grafico riportato di seguito.

Nella sezione successiva, scoprirai un altro set di dati per il monitoraggio della deforestazione, FORMA, e lo confronterai con i dati di Hansen et al.