Jährlichen Waldverlust berechnen
Im vorherigen Abschnitt haben Sie gelernt, wie Sie mit der Methode reduceRegion den gesamten Waldverlust in der angegebenen Region berechnen. Anstatt den Gesamtverlust zu berechnen, wäre es hilfreich, den Verlust für jedes Jahr zu berechnen. In Earth Engine wird dies mit einem gruppierten Reducer erreicht.
Wenn Sie die Ausgabe von reduceRegion() gruppieren möchten, können Sie ein Gruppierungsband angeben, das Gruppen nach ganzzahligen Pixelwerten definiert. Im folgenden Beispiel ändern wir den vorherigen Code leicht und fügen dem Originalbild das Band lossYear hinzu. Jedes Pixel im Band lossYear enthält Werte von 0 bis 14, die das Jahr angeben, in dem der Verlust aufgetreten ist. Außerdem ändern wir den Reducer in einen gruppierten Reducer und geben den Bandindex des Gruppierungsbands (1) an, damit die Pixelflächen entsprechend dem Wert im Band lossYear summiert und gruppiert werden.
Code-Editor (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);
Nachdem Sie den obigen Code ausgeführt haben, wird die jährliche Waldverlustfläche in einer verschachtelten Liste namens groups ausgegeben. Wir können die Ausgabe ein wenig formatieren, um das Ergebnis in ein Wörterbuch umzuwandeln, wobei das Jahr der Schlüssel und die Verlustfläche der Wert ist. Beachten Sie, dass wir die Methode format() verwenden, um die Jahreswerte von 0–14 in 2000–2014 umzuwandeln.
Code-Editor (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);
Diagramm erstellen
Da wir nun die jährlichen Verlustzahlen haben, können wir ein Diagramm erstellen. Wir verwenden die Methode ui.Chart.array.values(). Diese Methode verwendet ein Array (oder eine Liste) von Eingabewerten und ein Array (oder eine Liste) von Labels für die X-Achse.
Code-Editor (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);
Das Ergebnis sollte wie im Diagramm unten aussehen.
Im nächsten Abschnitt lernen Sie ein weiteres Dataset zur Überwachung der Entwaldung kennen, FORMA, und vergleichen es mit den Daten von Hansen et al.