احتساب الخسارة السنوية في الغابات
في القسم السابق، تعرّفت على كيفية
احتساب إجمالي مساحة الغابات المفقودة في
المنطقة المحدّدة باستخدام طريقة reduceRegion. بدلاً من
حساب إجمالي الخسارة، سيكون من المفيد حساب الخسارة لكل عام. ويمكن تحقيق ذلك في Earth Engine باستخدام مُختزِل مجمَّع.
لتجميع ناتج 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(). تأخذ هذه الطريقة مصفوفة (أو قائمة) من قيم الإدخال ومصفوفة (أو قائمة) من التصنيفات للمحور س.
أداة تعديل الرموز (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، وستقارنها ببيانات هانسن وآخرين.