चार्ट और इमेज एक्सपोर्ट करना

Earth Engine एक बेहतरीन विश्लेषण टूल है. हालांकि, आपको अपने विश्लेषण के नतीजों को एक्सपोर्ट करने की ज़रूरत पड़ सकती है, ताकि रिपोर्ट या पब्लिकेशन में चार्ट, इमेज, मैप वगैरह एम्बेड किए जा सकें. इस सेक्शन में, आपको ऐसे चार्ट और इमेज बनाने का तरीका बताया जाएगा जिन्हें एक्सपोर्ट किया जा सकता है और अन्य सॉफ़्टवेयर में देखा जा सकता है. याद करें कि पिछले सेक्शन में, आपने किसी कलेक्शन की हर इमेज में NDVI बैंड जोड़ने के लिए, इस तरह के कोड का इस्तेमाल किया था. इसमें l8 वैरिएबल, Landsat 8 TOA रिफ़्लेक्टेंस कलेक्शन को रेफ़रंस करता है:

कोड एडिटर (JavaScript)

// Import the Landsat 8 TOA image collection.
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');

// Map a function over the Landsat 8 TOA collection to add an NDVI band.
var withNDVI = l8.map(function(image) {
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
  return image.addBands(ndvi);
});

चार्ट में पोज़िशन

मान लें कि आपको किसी जगह पर समय के साथ NDVI में होने वाले बदलाव का चार्ट चाहिए. इस तरह का चार्ट बनाने के लिए, सबसे पहले अपनी पसंद की जगह चुनें. पॉइंट बनाने के लिए, पॉइंट ड्रॉइंग टूल () का इस्तेमाल करें. इसके बाद, अपनी पसंद के इलाके में एक पॉइंट वाली ज्यामिति बनाएं. (अगर आपने पहले से ही इंपोर्ट किए हुए डेटा का इस्तेमाल किया है, तो ज्यामिति इंपोर्ट पर कर्सर घुमाएं और पहले + नई लेयर पर क्लिक करें). खेती-बाड़ी वाले इलाके, पर्णपाती वन, सालाना घास के मैदान या सालाना चक्र वाले किसी अन्य लैंड कवर में पॉइंट का पता लगाएं. इंपोर्ट roi को नाम दें. (प्रोग्राम के ज़रिए ज्यामिति बनाने के बारे में जानकारी के लिए, यह पेज देखें).

अब हम roi पॉइंट का इस्तेमाल करके, उस पॉइंट के नीचे मौजूद पिक्सल में समय के साथ NDVI का चार्ट बनाएंगे. Earth Engine में चार्ट बनाने के लिए, ui.Chart पैकेज का इस्तेमाल किया जाता है. (Earth Engine में चार्ट बनाने के बारे में ज़्यादा जानें). खास तौर पर, समय के साथ चार्ट बनाने के लिए, ui.Chart.image.series() तरीके का इस्तेमाल किया जा सकता है:

कोड एडिटर (JavaScript)

// Create a chart.
var chart = ui.Chart.image.series({
  imageCollection: withNDVI.select('NDVI'),
  region: roi,
  reducer: ee.Reducer.first(),
  scale: 30
}).setOptions({title: 'NDVI over time'});

// Display the chart in the console.
print(chart);

roi ज्यामिति के लिए, हमने कृषि क्षेत्र में एक पॉइंट चुना. इससे हमें ऐसा चार्ट मिला जो कुछ हद तक इमेज 10 जैसा दिखता है. ध्यान दें कि चार्ट कंस्ट्रक्टर के पैरामीटर में, रिड्यूसर और स्केल शामिल होते हैं. जैसे, reduceRegion(). हम जिस पॉइंट को क्षेत्र के तौर पर उपलब्ध करा रहे हैं वह सिर्फ़ एक पिक्सल को इंटरसेक्ट कर सकता है. इसलिए, 'first' रिड्यूसर का इस्तेमाल करना काफ़ी है. अगर आपके पास बड़ा क्षेत्र है, तो आपको 'mean' या अन्य रिड्यूसर का इस्तेमाल करना चाहिए. इससे यह तय किया जाता है कि पिक्सल को कैसे एग्रीगेट किया जाए. यह भी ध्यान दें कि किसी चार्ट को विज़ुअलाइज़ करने के लिए, आपको सिर्फ़ उसे प्रिंट करना होगा.

Tutorial_api_10_ndvi_chart.png
दसवीं इमेज. किसी पॉइंट की ज्यामिति के हिसाब से, समय के साथ Landsat NDVI का चार्ट.

डाइग्रेशन: Landsat के लिए सामान्य क्लाउड मास्किंग

आपने शायद इस चार्ट में यह देखा हो कि इस पॉइंट पर NDVI वैल्यू की टाइम सीरीज़ में थोड़ा नॉइज़ है. ऐसा बादलों की वजह से हो सकता है. इस असर को कम करने के लिए, Earth Engine में लैंडसैट सेंसर के लिए क्लाउड-मास्किंग एल्गोरिदम शामिल है. इसमें थर्मल बैंड ee.Algorithms.Landsat.simpleCloudScore() होता है. यह Landsat TOA रिफ़्लेक्टेंस इमेज को इनपुट के तौर पर लेता है और cloud नाम का एक बैंड जोड़ता है. यह बैंड, पिक्सल में बादल की मौजूदगी का इंडेक्स होता है. इसकी वैल्यू शून्य से 100 तक होती है. शून्य का मतलब है कि पिक्सल में बादल नहीं हैं और 100 का मतलब है कि पिक्सल में बादल बहुत ज़्यादा हैं. कलेक्शन पर मैप किए गए फ़ंक्शन में बदलाव करके, चार्ट को थोड़ा साफ़ करने के लिए क्लाउड इंडेक्स पर कोई भी थ्रेशोल्ड (20) इस्तेमाल किया जा सकता है:

कोड एडिटर (JavaScript)

var cloudlessNDVI = l8.map(function(image) {
  // Get a cloud score in [0, 100].
  var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud');

  // Create a mask of cloudy pixels from an arbitrary threshold.
  var mask = cloud.lte(20);

  // Compute NDVI.
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');

  // Return the masked image with an NDVI band.
  return image.addBands(ndvi).updateMask(mask);
});

print(ui.Chart.image.series({
  imageCollection: cloudlessNDVI.select('NDVI'),
  region: roi,
  reducer: ee.Reducer.first(),
  scale: 30
}).setOptions({title: 'Cloud-masked NDVI over time'}));

बादलों से ढके हुए हिस्से को हटाने के बाद मिली इमेज को इमेज 11 में दिखाया गया है. ध्यान दें कि टाइम सीरीज़ थोड़ी बेहतर दिख रही है. हालांकि, इसमें अब भी बादलों से प्रभावित पिक्सल शामिल हो सकते हैं. क्लाउड इंडेक्स पर थ्रेशोल्ड में बदलाव करें और चार्ट की गई टाइम सीरीज़ देखें. इससे आपको पता चलेगा कि यह थ्रेशोल्ड, आपके नतीजों पर कैसे असर डाल सकता है.

Tutorial_api_11_cloudless_chart.png
ग्यारहवीं इमेज. किसी पॉइंट ज्यामिति पर, समय के साथ क्लाउड-मास्क किए गए NDVI का चार्ट.

इमेज एक्सपोर्ट करना

आपने Earth Engine से कैलकुलेट किए गए डेटा के चार्ट को एक्सपोर्ट करने का तरीका देखा. हालांकि, पूरी इमेज को एक्सपोर्ट करने का क्या तरीका है? उदाहरण के लिए, मान लें कि आपने सबसे हरे पिक्सल वाला कंपोज़िट बनाया है. इसके बारे में पिछले सेक्शन में बताया गया है:

कोड एडिटर (JavaScript)

var greenest = cloudlessNDVI.qualityMosaic('NDVI');

इस कोड में, पहले इस्तेमाल किए गए कोड से सिर्फ़ यह अंतर है कि अब हम क्लाउड मास्क किए गए कलेक्शन का इस्तेमाल कर रहे हैं. Export पैकेज का इस्तेमाल करके, इस डेटा के सबसेट (किसी क्षेत्र के हिसाब से तय किया गया) को एक्सपोर्ट किया जा सकता है. (Earth Engine से रास्टर और वेक्टर डेटा एक्सपोर्ट करने के बारे में ज़्यादा जानें.) उदाहरण के लिए, मान लें कि आपको ऐसी इमेज एक्सपोर्ट करनी है जिसे आसानी से अन्य दस्तावेज़ों में एम्बेड किया जा सके. इसके लिए, विज़ुअलाइज़ेशन इमेज बनाएं. जैसा कि आपने पहले किया था, उसे अपने Google Drive फ़ोल्डर में एक्सपोर्ट करें:

कोड एडिटर (JavaScript)

// Create a 3-band, 8-bit, color-IR composite to export.
var visualization = greenest.visualize({
  bands: ['B5', 'B4', 'B3'],
  max: 0.4
});

// Create a task that you can launch from the Tasks tab.
Export.image.toDrive({
  image: visualization,
  description: 'Greenest_pixel_composite',
  scale: 30
});

इस कोड को चलाने पर, ध्यान दें कि Tasks टैब में एक नया टास्क बन जाता है. एक्सपोर्ट कॉन्फ़िगरेशन डायलॉग लॉन्च करने के लिए, टास्क टैब में मौजूद चलाएं बटन पर क्लिक करें. टास्क कॉन्फ़िगर करने के बाद, एक्सपोर्ट शुरू करने के लिए डायलॉग में मौजूद चलाएं बटन पर क्लिक करें. हालांकि, ऐसा करने से पहले, आपको यह चेतावनी दी जाती है:

region आर्ग्युमेंट के बिना एक्सपोर्ट करते समय सावधानी बरतनी चाहिए. इसकी वजह यह है कि अगर आपने scale के लिए कोई छोटी वैल्यू सेट की है और मैप को बड़े इलाके के लिए ज़ूम आउट किया गया है, तो आपको Drive फ़ोल्डर में बहुत बड़ी इमेज एक्सपोर्ट करनी होगी. ज़्यादा जानकारी और कॉन्फ़िगरेशन के संभावित पैरामीटर की सूची के लिए, Export.image.toDrive() दस्तावेज़ टैब में मौजूद दस्तावेज़ देखें.

Earth Engine API के बारे में यह जानकारी यहीं खत्म होती है! अब आपने Earth Engine की ज़्यादातर सामान्य सुविधाओं के बारे में जान लिया है. अब आपको ज़्यादा जटिल विश्लेषण करने में कोई परेशानी नहीं होनी चाहिए. अन्य सवालों के जवाब पाने के लिए, दस्तावेज़ ज़रूर पढ़ें और फ़ोरम पर खोजें. कोडिंग करते रहें!