Einführung in FORMA-Daten (Forest Monitoring for Action)

FORMA ist ein MODIS-basiertes System zur zweimal monatlichen Benachrichtigung über Entwaldung in feuchten tropischen Wäldern mit einer Auflösung von 500 × 500 Metern. Das FORMA 500-Dataset in Earth Engine ist ein Bild mit Benachrichtigungen ab Januar 2006, das monatlich aktualisiert wird. Jedem Alert ist ein Zeitpunkt in einem einzelnen Band namens alert_date in Einheiten von Epochensekunden zugeordnet. Das Filtern von FORMA nach Datumsangaben und das Berechnen von Warnungen in Interessengebieten sind zwei der wichtigsten Dinge, die Sie mit dem FORMA-Dataset tun können.

FORMA nach Datum filtern

Wenn Sie nur die Benachrichtigungen anzeigen möchten, die 2012 auftreten, suchen Sie nach Pixeln mit Zeiten zwischen dem ersten Tag des Jahres 2012 und dem ersten Tag des Jahres 2013, ausgedrückt in Sekunden seit Mitternacht am 1. Januar 1970:

Code-Editor (JavaScript)

// Convert dates from milliseconds to seconds.
var start = ee.Date('2012-01-01').millis().divide(1000);
var end = ee.Date('2013-01-01').millis().divide(1000);

// Load the FORMA 500 dataset.
var forma = ee.Image('FORMA/FORMA_500m');

// Create a binary layer from the dates of interest.
var forma2012 = forma.gte(start).and(forma.lte(end));

Map.setCenter(15.87, -0.391, 7);
Map.addLayer(
  forma2012.mask(forma2012),
  {palette: ['FF0000']},
  'FORMA alerts in 2012'
);

In diesem Beispiel ist forma2012 ein binäres Bild, das nur die Pixel enthält, deren Zeitangaben im Jahr 2012 liegen. Alle anderen Pixel sind maskiert.

FORMA-Benachrichtigungen in einem relevanten Bereich zählen

Wie im vorherigen Abschnitt mit den Daten von Hansen et al. können wir zuerst die Anzahl der FORMA-Warnungen (Pixel) in einem Interessengebiet zählen. Wenn Sie beispielsweise die Anzahl der Benachrichtigungen in Schutzgebieten der Republik Kongo im Jahr 2012 zählen möchten, können Sie das vorherige Beispiel so erweitern:

Code-Editor (JavaScript)

// Load country features from Large Scale International Boundary (LSIB) dataset.
var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');

// Subset the Congo Republic feature from countries.
var congo = ee.Feature(
  countries
    .filter(ee.Filter.eq('country_na', 'Rep of the Congo'))
    .first()
);

// Subset protected areas to the bounds of the congo feature
// and other criteria. Clip to the intersection with congo.
var protectedAreas = ee.FeatureCollection('WCMC/WDPA/current/polygons')
  .filter(ee.Filter.and(
    ee.Filter.bounds(congo.geometry()),
    ee.Filter.neq('IUCN_CAT', 'VI'),
    ee.Filter.neq('STATUS', 'proposed'),
    ee.Filter.lt('STATUS_YR', 2010)
  ))
  .map(function(feat){
    return congo.intersection(feat);
  });

// Display protected areas on the map.
Map.addLayer(
  protectedAreas,
  {color: '000000'},
  'Congo Republic protected areas'
);

// Calculate the number of FORMA pixels in protected
// areas of the Congo Republic, 2012.
var stats = forma2012.reduceRegion({
  reducer: ee.Reducer.sum(),
  geometry: protectedAreas.geometry(),
  scale: 500
});
print('Number of FORMA pixels, 2012: ', stats.get('constant'));

FORMA-Benachrichtigungen in mehreren Regionen von Interesse zählen

Bisher haben wir Statistiken jeweils nur für eine Region berechnet. Wenn Sie Statistiken für mehrere Regionen gleichzeitig berechnen möchten, können Sie reduceRegions() verwenden. Auch hier bauen wir auf dem vorherigen Beispiel auf:

Code-Editor (JavaScript)

var regionsStats = forma2012.reduceRegions({
  collection: protectedAreas,
  reducer: ee.Reducer.sum(),
  scale: forma2012.projection().nominalScale()
});
print(regionsStats);

Sehen Sie sich das in der Konsole ausgegebene Objekt an und stellen Sie fest, dass die Ausgabe von reduceRegions() ein weiteres FeatureCollection ist. Jede Region in der Sammlung der Schutzgebiete der Republik Kongo hat jetzt eine zusätzliche Eigenschaft, sum, die nach dem Reducer benannt ist. Der Wert dieser Eigenschaft ist die Ausgabe des Reducer oder die Anzahl der Warnungen von 2012 in den geschützten Gebieten.

FORMA- und Hansen et al.-Datasets vergleichen

Um die Datasets von FORMA und Hansen et al. zu vergleichen, können Sie logische Operatoren verwenden. Weitere Informationen zu logischen Operationen Konkret möchten wir ein Bild erstellen, in dem Pixel, die sowohl von FORMA als auch von den Daten von Hansen et al. als Entwaldung gekennzeichnet sind, den Wert 1 haben und die restlichen Pixel den Wert 0. Mit diesem Code wird ein solches Bild für 2012 erstellt und zusammen mit anderen Ebenen mit prognostizierter Entwaldung angezeigt:

Code-Editor (JavaScript)

// Convert dates from milliseconds to seconds.
var start = ee.Date('2012-01-01').millis().divide(1000);
var end = ee.Date('2013-01-01').millis().divide(1000);
var region = ee.Geometry.Rectangle([-59.81163, -9.43348, -59.27561, -9.22818]);

// Load the FORMA 500 dataset.
var forma = ee.Image('FORMA/FORMA_500m');

// Create a binary layer from the dates of interest.
var forma2012 = forma.gte(start).and(forma.lte(end));

// Load Hansen et al. data and get change in 2012.
var gfc = ee.Image('UMD/hansen/global_forest_change_2015');
var gfc12 = gfc.select(['lossyear']).eq(12);

// Create an image which is one where the datasets
// both show deforestation and zero elsewhere.
var gfc_forma = gfc12.eq(1).and(forma2012.eq(1));

// Display data on the map.
Map.setCenter(-59.58813, -9.36439, 11);
Map.addLayer(forma.updateMask(forma), {palette: '00FF00'}, 'Forma (green)');
Map.addLayer(gfc12.updateMask(gfc12), {palette: 'FF0000'}, 'Hansen (red)');
Map.addLayer(
  gfc_forma.updateMask(gfc_forma),
  {palette: 'FFFF00'},
  'Hansen & FORMA (yellow)'
);

Damit ist der Überblick über Datasets zu Waldveränderungen in Earth Engine abgeschlossen. Wir sind gespannt, was Sie damit anstellen werden.