Calcula la pérdida anual de bosques
En la sección anterior, aprendiste a
calcular el área total de bosque 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 de cada año. La forma de lograrlo 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 un poco 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 y especificamos el índice de banda de
la banda de agrupación (1) para que las áreas de píxeles se sumen y se agrupen según el valor
en 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 anual de bosques impresa en una lista
anidada llamada groups. Podemos dar 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 de año de 0-14 a 2000-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.