繪製每年森林損失的圖表

計算每年森林面積減少量

在上一節中,您已瞭解如何使用 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 等人的資料集進行比較。