Obliczanie rocznej utraty lasów
W poprzedniej sekcji dowiedzieliśmy się, jak obliczyć całkowitą utratę powierzchni lasów w danym regionie za pomocą metody reduceRegion
. Zamiast obliczać łączną stratę, warto obliczyć stratę w każdym roku. Aby to osiągnąć w Earth Engine, użyj reduktora zgrupowanego.
Aby pogrupować dane wyjściowe polecenia reduceRegion()
, możesz określić pasmo grupowania, które definiuje grupy według wartości pikseli w postaci liczb całkowitych. W poniższym przykładzie nieznacznie modyfikujemy poprzedni kod i dodajemy do oryginalnego obrazu pasmo lossYear
. Każdy piksel w paśmie lossYear
zawiera wartości od 0 do 14, które wskazują rok, w którym nastąpiła utrata. Zmieniamy też funkcję redukującą na funkcję redukującą grupę, określając indeks pasma grupy (1), aby obszary pikseli były sumowane i grupowane według wartości w paśmie lossYear
.
Edytor kodu (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);
Po uruchomieniu powyższego kodu zobaczysz obszar rocznej utraty lasów wydrukowany na zagnieżdżonej liście o nazwie groups
. Możemy nieco sformatować dane wyjściowe, aby wynik był słownikiem, w którym kluczem jest rok, a wartością – obszar utraty. Zauważ, że do przekształcenia wartości roku z zakresu 0–14 na zakres 2000–2014 używamy metody format()
.
Edytor kodu (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);
Tworzenie wykresu
Mając już dane o stratach rocznych, możemy przygotować wykres. Użyjemy metody ui.Chart.array.values()
. Ta metoda przyjmuje tablicę (lub listę) wartości wejściowych i tablicę (lub listę) etykiet osi X.
Edytor kodu (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);
Wynik powinien wyglądać jak na wykresie poniżej.

W następnej sekcji dowiesz się więcej o innym zbiorze danych do monitorowania wylesiania, FORMA, i porównasz go z danymi Hansen et al.