Yıllık Orman Kaybını Grafiğe Dökme

Yıllık Orman Kaybını Hesaplama

Önceki bölümde, reduceRegion yöntemini kullanarak belirli bir ilgi alanında kaybedilen toplam orman alanını hesaplamayı öğrendiniz. Toplam kaybı hesaplamak yerine, her yılki kaybı hesaplamak daha faydalı olacaktır. Earth Engine'de bunu yapmanın yolu Grouped Reducer kullanmaktır.

reduceRegion() çıkışını gruplandırmak için grupları tam sayı piksel değerlerine göre tanımlayan bir gruplandırma bandı belirtebilirsiniz. Aşağıdaki örnekte, önceki kodu biraz değiştirip orijinal resme lossYear bandını ekliyoruz. lossYear bandındaki her piksel, kaybın meydana geldiği yılı gösteren 0 ile 14 arasındaki değerleri içerir. Ayrıca, gruplandırma bandının (1) bant dizinini belirterek küçültücüyü gruplandırılmış bir küçültücüye dönüştürüyoruz. Böylece, piksel alanları lossYear bandındaki değere göre toplanıp gruplandırılıyor.

Kod Düzenleyici (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);

Yukarıdaki kodu çalıştırdıktan sonra, yıllık orman kaybı alanının groups adlı iç içe geçmiş bir listede yazdırıldığını görürsünüz. Çıktıyı biraz biçimlendirerek sonucu, anahtar olarak yılın, değer olarak da kayıp alanının bulunduğu bir sözlük haline getirebiliriz. Yıl değerlerini 0-14'ten 2000-2014'e dönüştürmek için format() yöntemini kullandığımızı unutmayın.

Kod Düzenleyici (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);

Grafik oluşturma

Yıllık kayıp rakamlarımız olduğuna göre artık bir grafik hazırlayabiliriz. ui.Chart.array.values() yöntemini kullanacağız. Bu yöntem, giriş değerlerinden oluşan bir dizi (veya liste) ve X ekseni için etiketlerden oluşan bir dizi (veya liste) alır.

Kod Düzenleyici (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);

Sonuç, aşağıdaki grafiğe benzer olmalıdır.

Tutorial_Hansen_17_chart.png
1. şekil. Yıla Göre Orman Kaybı Grafiği

Sonraki bölümde, başka bir ormansızlaşma izleme veri kümesi olan FORMA hakkında bilgi edinecek ve bu veri kümesini Hansen ve diğerlerinin verileriyle karşılaştıracaksınız.