Como calcular a perda anual de florestas
Na seção anterior, você aprendeu a
calcular a área total de floresta perdida na
região de interesse usando o método reduceRegion. Em vez de
calcular a perda total, seria útil calcular a perda de cada ano. A maneira
de fazer isso no Earth Engine é usando um redutor agrupado.
Para agrupar a saída de reduceRegion(), especifique uma banda de agrupamento que
defina grupos por valores de pixel inteiros. No exemplo a seguir, modificamos um pouco o
código anterior e adicionamos a banda lossYear à imagem original. Cada pixel na
banda lossYear contém valores de 0 a 14, indicando o ano em que a
perda ocorreu. Também mudamos o redutor para um redutor agrupado, especificando o índice da banda de
agrupamento (1) para que as áreas de pixel sejam somadas e agrupadas de acordo com o valor
na 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);
Depois de executar o código acima, você verá a área anual de perda de floresta impressa em uma lista
aninhada chamada groups. Podemos formatar um pouco a saída para que o resultado seja um
dicionário, com o ano como chave e a área de perda como valor. Observe que estamos usando o método
format() para converter os valores de ano de 0-14 para 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);
Como criar um gráfico
Agora que temos os números de perdas anuais, podemos preparar um gráfico. Vamos usar o
método ui.Chart.array.values(). Esse método usa uma matriz (ou lista) de valores de entrada
e uma matriz (ou lista) de rótulos para o eixo 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);
O resultado será semelhante ao gráfico abaixo.
Na próxima seção, você vai Aprenda Mais sobre outro conjunto de dados de monitoramento de desmatamento, o FORMA, e compará-lo com os dados de Hansen et al.