Forest Monitoring for Action (FORMA) डेटा के बारे में जानकारी

FORMA, MODIS पर आधारित 500 x 500 मीटर का, महीने में दो बार जंगलों की कटाई की चेतावनी देने वाला सिस्टम है. यह सिस्टम, उमस वाले उष्णकटिबंधीय जंगलों के लिए है. Earth Engine में मौजूद FORMA 500 डेटासेट एक इमेज है. इसमें जनवरी 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 अलर्ट की गिनती करना

जैसा कि हमने पिछले सेक्शन में हैनसन और अन्य लोगों के डेटा के साथ किया था, हम किसी खास इलाके में 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 में, जंगलों में होने वाले बदलावों के डेटासेट की खास जानकारी मिलती है. हमें यह देखने का इंतज़ार रहेगा कि इन सुविधाओं का इस्तेमाल करके, आप क्या-क्या कर पाते हैं!