Calculando 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. Para fazer isso no Earth Engine, use um redutor agrupado.
Para agrupar a saída de reduceRegion()
, especifique um intervalo de agrupamento que define 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 de perda florestal anual 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. Estamos usando o método
format()
para converter os valores de ano de 0 a 14 para 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);
Como criar um gráfico
Agora que temos os números de perda anual, 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 conhecer outro conjunto de dados de monitoramento do desmatamento, o FORMA, e compará-lo aos dados de Hansen et al.