Cómo calcular la pérdida anual de bosques
En la sección anterior, aprendiste a calcular la superficie forestal total perdida en la región de interés determinada con el método reduceRegion
. En lugar de calcular la pérdida total, sería útil calcular la pérdida para cada año. La forma de lograr esto en Earth Engine es usar un reductor agrupado.
Para agrupar el resultado de reduceRegion()
, puedes especificar una banda de agrupación que defina grupos por valores de píxeles enteros. En el siguiente ejemplo, modificamos ligeramente el código anterior y agregamos la banda lossYear
a la imagen original. Cada píxel de la banda lossYear
contiene valores de 0 a 14, que indican el año en el que se produjo la pérdida. También cambiamos el reductor a un reductor agrupado, especificando el índice de banda de la banda de agrupación (1) para que las áreas de píxeles se sumen y agrupen según el valor de la banda lossYear
.
Editor de código (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);
Una vez que ejecutes el código anterior, verás el área de pérdida forestal anual impresa en una lista anidada llamada groups
. Podemos darle un poco de formato al resultado para que sea un diccionario, con el año como clave y el área de pérdida como valor. Observa que usamos el método format()
para convertir los valores del año de 0 a 14 en 2000 a 2014.
Editor de código (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);
Cómo crear un gráfico
Ahora que tenemos las cifras de pérdidas anuales, podemos preparar un gráfico. Usaremos el método ui.Chart.array.values()
. Este método toma un array (o lista) de valores de entrada y un array (o lista) de etiquetas para el eje X.
Editor de código (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);
El resultado debería verse como el siguiente gráfico.

En la siguiente sección, aprenderás sobre otro conjunto de datos de supervisión de la deforestación, FORMA, y lo compararás con los datos de Hansen et al.