年間森林損失量のグラフ

年間の森林消失量を計算する

前のセクションでは、reduceRegion メソッドを使用して、特定の対象地域で失われた森林の総面積を計算する方法を学びました。合計損失を計算するのではなく、年ごとの損失を計算すると便利です。Earth Engine でこれを行うには、グループ化された Reducer を使用します。

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 らのデータと比較します。