حساب معدّل فقدان الغابات سنويًا
في القسم السابق، تعلّمت كيفية
احتساب إجمالي مساحة الغابات التي تم فقدانها في
المنطقة المحدّدة باستخدام طريقة reduceRegion
. بدلاً من حساب إجمالي الخسارة، من المفيد احتساب الخسارة لكل عام. ويمكن تحقيق ذلك في Earth Engine باستخدام Grouped Reducer.
لتجميع نتائج reduceRegion()
، يمكنك تحديد نطاق تجميع يحدّد المجموعات حسب قيم عددية بالبكسل. في المثال التالي، نعدّل قليلاً الرمز السابق ونضيف النطاق lossYear
إلى الصورة الأصلية. يحتوي كل بكسل في النطاق lossYear
على قيم تتراوح بين 0 و14، ما يشير إلى السنة التي حدثت فيها الخسارة. نغيّر أيضًا أداة الاختزال إلى أداة اختزال مجمّعة، ونحدّد فهرس النطاق الخاص بنطاق التجميع (1) ليتم جمع مساحات البكسل وتجميعها وفقًا للقيمة في النطاق lossYear
.
محرّر الرموز البرمجية (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);
بعد تنفيذ الرمز أعلاه، سيظهر لك مقدار مساحة الغابات التي تم فقدانها سنويًا مطبوعًا في قائمة متداخلة باسم groups
. يمكننا تنسيق الناتج قليلاً لجعل النتيجة قاموسًا، مع استخدام السنة كمفتاح ومساحة الفقدان كقيمة. لاحظ أنّنا نستخدم الطريقة format()
لتحويل قيم السنوات من 0-14 إلى 2000-2014.
محرّر الرموز البرمجية (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);
إنشاء رسم بياني
بعد أن حصلنا على أرقام الخسائر السنوية، أصبحنا جاهزين لإعداد رسم بياني. سنستخدم الطريقة
ui.Chart.array.values()
. تتلقّى هذه الطريقة صفيفًا (أو قائمة) من قيم الإدخال وصفيفًا (أو قائمة) من التصنيفات للمحور X.
محرّر الرموز البرمجية (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);
يجب أن تبدو النتيجة مثل الرسم البياني أدناه.

في القسم التالي، ستتعرّف على مجموعة بيانات أخرى خاصة بمراقبة إزالة الغابات، وهي FORMA، وستقارنها ببيانات Hansen et al.