FORMA هو نظام تنبيه بشأن إزالة الغابات يعتمد على MODIS، ويبلغ حجمه 500 × 500 متر، ويتم إرسال التنبيهات مرتين شهريًا بشأن إزالة الغابات الاستوائية الرطبة. مجموعة بيانات FORMA 500 في Earth Engine هي صورة تتضمّن تنبيهات بدءًا من يناير 2006 ويتم تعديلها شهريًا. يتضمّن كل تنبيه وقتًا مرتبطًا به في نطاق واحد باسم alert_date
بوحدات ثواني العصر. تُعدّ فلترة بيانات FORMA حسب التواريخ واحتساب التنبيهات ضمن المناطق المهمة من أهم الإجراءات التي يمكنك اتّخاذها باستخدام مجموعة بيانات FORMA.
فلترة بيانات FORMA حسب التاريخ
لعرض التنبيهات التي حدثت في عام 2012 فقط، ابحث عن وحدات بكسل تتضمّن أوقاتًا بين اليوم الأول من عام 2012 واليوم الأول من عام 2013، معبّرًا عنها بالثواني منذ منتصف ليل 1 يناير 1970:
محرّر الرموز البرمجية (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' );
في هذا المثال، forma2012
هي صورة ثنائية تحتوي فقط على وحدات البكسل التي تتضمّن أوقاتًا حدثت في عام 2012 (أي أنّ جميع وحدات البكسل الأخرى مخفية).
احتساب تنبيهات FORMA في منطقة محدّدة
كما فعلنا في القسم السابق مع بيانات Hansen et al.، يمكننا البدء باحتساب عدد تنبيهات FORMA (وحدات البكسل) في منطقة معيّنة. على سبيل المثال، لاحتساب عدد التنبيهات في المناطق المحمية في جمهورية الكونغو في عام 2012، استند إلى المثال السابق على النحو التالي:
محرّر الرموز البرمجية (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 في عدة مناطق مهمة
حتى الآن، كنا نحسب الإحصاءات في منطقة واحدة في كل مرة. لحساب الإحصاءات في مناطق متعددة في الوقت نفسه، يمكنك استخدام reduceRegions()
. مرة أخرى،
بالاستناد إلى المثال السابق:
محرّر الرموز البرمجية (JavaScript)
var regionsStats = forma2012.reduceRegions({ collection: protectedAreas, reducer: ee.Reducer.sum(), scale: forma2012.projection().nominalScale() }); print(regionsStats);
افحص العنصر الذي تمّت طباعته في وحدة التحكّم ولاحظ أنّ نتيجة reduceRegions()
هي FeatureCollection
أخرى. يُرجى العِلم أنّ كل منطقة في مجموعة المناطق المحمية في جمهورية الكونغو تتضمّن الآن سمة إضافية، sum
، تحمل اسم أداة الاختزال. قيمة هذه السمة هي ناتج عملية الاختزال، أو عدد التنبيهات الصادرة في عام 2012 في المناطق المحمية.
مقارنة مجموعتَي بيانات FORMA وHansen et al.
لمقارنة مجموعتَي بيانات FORMA وHansen et al.، يمكنك استخدام عوامل منطقية. (مزيد من المعلومات عن العمليات المنطقية) على وجه التحديد، نريد إنشاء صورة تكون فيها وحدات البكسل التي تم تصنيفها على أنّها إزالة للغابات من خلال كلّ من FORMA وبيانات Hansen et al. بالقيمة 1، بينما تكون بقية وحدات البكسل بالقيمة 0. تنشئ هذه التعليمات البرمجية صورة من هذا النوع لعام 2012 وتعرضها مع طبقات أخرى متوقّعة لإزالة الغابات:
محرّر الرموز البرمجية (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)' );
بهذا نكون قد أنهينا النظرة العامة على مجموعات بيانات التغيّر في الغابات في Earth Engine. نتطلّع إلى رؤية ما يمكنك فعله باستخدام هذه الأدوات.