FORMA یک سیستم هشدار جنگل زدایی ماهانه 500×500 متر مبتنی بر MODIS برای جنگل های مرطوب استوایی است. مجموعه داده FORMA 500 در Earth Engine یک تصویر با هشدار است که از ژانویه 2006 شروع شده و ماهانه به روز می شود. هر هشدار دارای یک زمان مرتبط با آن در یک باند منفرد به نام alert_date
بر حسب واحد ثانیه است . فیلتر کردن FORMA بر اساس تاریخ و محاسبه هشدارها در مناطق مورد علاقه دو مورد از مهمترین کارهایی است که می توانید با مجموعه داده FORMA انجام دهید.
فیلتر کردن FORMA بر اساس تاریخ
برای نشان دادن فقط آن هشدارهایی که در سال 2012 اتفاق میافتند، پیکسلهایی را پیدا کنید که زمانهایی بین اولین روز سال 2012 و اولین روز سال 2013 دارند که در ثانیه از نیمهشب، 1 ژانویه 1970 بیان شدهاند:
ویرایشگر کد (جاوا اسکریپت)
// 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 در منطقه مورد علاقه
همانطور که در بخش قبل با هانسن و همکاران انجام دادیم . داده ها، ما می توانیم با شمارش تعداد هشدارهای FORMA (پیکسل) در یک منطقه مورد علاقه شروع کنیم. به عنوان مثال، برای شمارش تعداد هشدارها در مناطق حفاظت شده جمهوری کنگو در سال 2012، از مثال قبلی به صورت زیر استفاده کنید:
ویرایشگر کد (جاوا اسکریپت)
// 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()
استفاده کنید. مجدداً بر اساس مثال قبلی:
ویرایشگر کد (جاوا اسکریپت)
var regionsStats = forma2012.reduceRegions({ collection: protectedAreas, reducer: ee.Reducer.sum(), scale: forma2012.projection().nominalScale() }); print(regionsStats);
شی چاپ شده در کنسول را بررسی کنید و مشاهده کنید که خروجی reduceRegions()
یک FeatureCollection
دیگر است. توجه داشته باشید که هر منطقه در مجموعه مناطق حفاظت شده جمهوری کنگو اکنون دارای یک ویژگی اضافی است، sum
، به نام کاهنده. مقدار این ویژگی خروجی کاهنده یا تعداد هشدارهای 2012 در مناطق حفاظت شده است.
مقایسه FORMA و Hansen و همکاران. مجموعه داده ها
برای مقایسه FORMA و Hansen et al. مجموعه داده ها، می توانید از عملگرهای منطقی استفاده کنید. ( در مورد عملیات منطقی بیشتر بدانید ). به طور خاص، ما میخواهیم تصویری بسازیم که در آن پیکسلها با FORMA و Hansen و همکاران علامتگذاری شوند. داده ها به عنوان جنگل زدایی 1 و بقیه صفر هستند. این کد چنین تصویری را برای سال 2012 می سازد و آن را همراه با سایر لایه های جنگل زدایی پیش بینی شده نمایش می دهد:
ویرایشگر کد (جاوا اسکریپت)
// 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 به پایان میرسد. ما مشتاقانه منتظریم ببینیم با آنها چه کاری می توانید انجام دهید!