繪製每年森林損失的圖表

計算每年森林流失量

在上一節中,您已瞭解如何使用 reduceRegion 方法,計算指定感興趣區域中消失的森林總面積。與其計算總損失,不如計算每年的損失。在 Earth Engine 中,您可以使用分組歸納器來達成這個目的。

如要將 reduceRegion() 的輸出內容分組,您可以指定分組帶,依整數像素值定義群組。在以下範例中,我們稍微修改先前的程式碼,並將 lossYear 波段新增至原始圖片。lossYear 頻帶中的每個像素都包含 0 到 14 的值,表示發生損失的年份。我們也將縮減器變更為分組縮減器,指定分組頻帶 (1) 的頻帶索引,以便根據 lossYear 頻帶中的值,加總及分組像素區域。

程式碼編輯器 (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);

執行上述程式碼後,您會看到每年森林流失面積,列印在名為 groups 的巢狀清單中。我們可以稍微調整輸出內容的格式,將結果設為字典,並以年份為鍵、損失面積為值。請注意,我們使用 format() 方法將年份值從 0-14 轉換為 2000-2014。

程式碼編輯器 (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);

製作圖表

現在我們有了年度損失數據,可以準備製作圖表了。我們將使用 ui.Chart.array.values() 方法。這個方法會採用輸入值的陣列 (或清單),以及 X 軸標籤的陣列 (或清單)。

程式碼編輯器 (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);

結果應如下圖所示。

Tutorial_Hansen_17_chart.png
圖 1. 森林流失面積圖表 (依年份)

在下一節中,您將瞭解另一個森林砍伐監測資料集 FORMA,並與 Hansen 等人的資料進行比較。