इमेज और इमेज बैंड को विज़ुअलाइज़ करना

अब जब Earth Engine JavaScript लिखने के लिए तैयार हैं, तो कोड एडिटर में यहां दिया गया कोड कॉपी करें:

कोड एडिटर (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

कोड एडिटर में सबसे ऊपर मौजूद, चलाएं बटन पर क्लिक करें. इसके बाद, देखें कि मैप पर बहुत सलेटी रंग की इमेज दिख रही है. चिंता न करें, जल्द ही यह बेहतर दिखने लगेगा. अगर आपको इस उदाहरण के किसी भी हिस्से का सिंटैक्स समझ में नहीं आ रहा है, तो Earth Engine के लिए JavaScript ट्यूटोरियल ज़रूर देखें.

इमेज कंस्ट्रक्टर

इस उदाहरण में, पहली नई चीज़ इमेज कंस्ट्रक्टर ee.Image() है. कंस्ट्रक्टर को दिया गया आर्ग्युमेंट, Earth Engine के डेटा कैटलॉग में मौजूद किसी इमेज का स्ट्रिंग आईडी होता है. (इमेज कंस्ट्रक्टर के लिए इस्तेमाल किए जा सकने वाले सभी संभावित आर्ग्युमेंट की पूरी सूची देखने के लिए, कोड एडिटर के बाईं ओर मौजूद दस्तावेज़ टैब देखें. Docs टैब में, Earth Engine की क्षमताओं के बारे में सबसे नई जानकारी होती है.)

इमेज आईडी ढूंढने के लिए, Earth Engine के डेटा कैटलॉग में खोजें. इसके लिए, Code Editor में सबसे ऊपर मौजूद खोज टूल का इस्तेमाल करें. उदाहरण के लिए, खोज फ़ील्ड में 'ऊंचाई' टाइप करें और ध्यान दें कि रास्टर की सूची दिखती है. उस डेटासेट के बारे में ज़्यादा जानकारी देखने के लिए, 'SRTM Digital Elevation Data Version 4' एंट्री पर क्लिक करें. डेटासेट की जानकारी के दाईं ओर, इमेज आईडी फ़ील्ड होता है. ध्यान दें कि उदाहरण में दिया गया इमेज आईडी, डेटासेट के ब्यौरे में दिखाए गए इमेज आईडी से कॉपी किया गया है.

इमेज आईडी कॉपी करके चिपकाने के बजाय, डेटासेट के ब्यौरे में मौजूद इंपोर्ट करें बटन का इस्तेमाल करें. इसके अलावा, खोज के नतीजों के दाईं ओर मौजूद इंपोर्ट करें लिंक का इस्तेमाल भी किया जा सकता है. इंपोर्ट लिंक या बटन पर क्लिक करने पर, आपकी स्क्रिप्ट में सबसे ऊपर मौजूद 'Imports' नाम के खास सेक्शन में एक वैरिएबल अपने-आप बन जाता है. वैरिएबल का नाम बदलने के लिए, इंपोर्ट सेक्शन में जाकर उसके नाम पर क्लिक करें.

मैप को कॉन्फ़िगर करना

इस उदाहरण का दूसरा नया हिस्सा, Map.setCenter() कॉल है. यह Map ऑब्जेक्ट पर मौजूद एक तरीका है. यह कोड एडिटर में मैप डिसप्ले को दिखाता है. यह मैप को दिए गए देशांतर, अक्षांश (दशमलव डिग्री में) और ज़ूम लेवल पर सेंटर करता है. ज़ूम लेवल 1 पर सेट होने पर, मैप को ज़ूम आउट किया जाता है, ताकि मैप में पूरी पृथ्वी की सतह दिखे. ज़्यादा संख्याएं वहां से ज़ूम इन होती हैं. कोड एडिटर की बाईं ओर मौजूद दस्तावेज़ टैब में जाकर, मैप सेक्शन देखें. इससे आपको Map ऑब्जेक्ट के सभी तरीकों के बारे में पता चलेगा.

मैप में लेयर जोड़ना

उदाहरण की आखिरी लाइन में बताया गया है कि कोड एडिटर में मैप डिसप्ले में इमेज जोड़ने के लिए, Mapऑब्जेक्ट के addLayer() तरीके का इस्तेमाल करें.

बधाई हो! आपने अपनी पहली Earth Engine स्क्रिप्ट बना ली है. अगले सेक्शन में, आपको उस इमेज को थोड़ा बेहतर बनाने का तरीका बताया जाएगा.

अन्य जानकारी: Earth Engine में इमेज

Earth Engine में मौजूद इमेज (ज़्यादा जानकारी के लिए, यह पेज देखें) एक या उससे ज़्यादा बैंड से बनी होती हैं. किसी इमेज में मौजूद हर बैंड का अपना नाम, पिक्सल वैल्यू, पिक्सल रिज़ॉल्यूशन, और प्रोजेक्शन होता है. आपको जल्द ही पता चल जाएगा कि SRTM इमेज में एक बैंड है: 'elevation'.

Map.addLayer() का इस्तेमाल करके किसी मैप में इमेज जोड़ने पर, Earth Engine को यह तय करना होता है कि इमेज बैंड में मौजूद वैल्यू को डिसप्ले पर मौजूद रंगों से कैसे मैप किया जाए. अगर किसी मैप में सिंगल-बैंड इमेज जोड़ी जाती है, तो Earth Engine डिफ़ॉल्ट रूप से बैंड को ग्रेस्केल में दिखाता है. इसमें सबसे कम वैल्यू को काला और सबसे ज़्यादा वैल्यू को सफ़ेद रंग असाइन किया जाता है. अगर आपने यह नहीं बताया है कि कम से कम और ज़्यादा से ज़्यादा वैल्यू क्या होनी चाहिए, तो Earth Engine डिफ़ॉल्ट वैल्यू का इस्तेमाल करेगा. उदाहरण के लिए, मैप में जोड़ी गई इमेज को डेटा की पूरी रेंज में स्ट्रेच की गई ग्रेस्केल इमेज के तौर पर दिखाया जाता है. इसके अलावा, इसे 16-बिट पूर्णांक [-32768, 32767] के तौर पर भी दिखाया जाता है. (डिफ़ॉल्ट रूप से, float बैंड को [0, 1] और byte बैंड को [0, 255] तक बढ़ाया जाता है).

इमेज के डेटा टाइप का पता लगाने के लिए, उसे प्रिंट करें. इसके बाद, Console टैब में जाकर, इमेज ऑब्जेक्ट की जांच करें. उदाहरण के लिए, पिछले कोड के बाद यह कोड चिपकाएं:

कोड एडिटर (JavaScript)

print('SRTM image', image);

'चलाएं' पर क्लिक करने पर, ध्यान दें कि कंसोल में एक ऑब्जेक्ट दिखता है. ऑब्जेक्ट की प्रॉपर्टी की जांच करने के लिए, ऑब्जेक्ट या प्रॉपर्टी के बाईं ओर मौजूद ज़िप्पी () पर क्लिक करके उसे बड़ा करें. इमेज ऑब्जेक्ट, 'bands' प्रॉपर्टी, इंडेक्स '0' पर मौजूद 'elevation' बैंड, और 'elevation' बैंड की 'data_type' प्रॉपर्टी को बड़ा करें. इससे आपको पता चलेगा कि यह signed int16 डेटा टाइप है.

लेयर के विज़ुअलाइज़ेशन को पसंद के मुताबिक बनाना

डेटा को स्ट्रेच करने का तरीका बदलने के लिए, Map.addLayer() कॉल में कोई दूसरा पैरामीटर दिया जा सकता है. खास तौर पर, दूसरे पैरामीटर visParams की मदद से, दिखाई जाने वाली कम से कम और ज़्यादा से ज़्यादा वैल्यू तय की जा सकती हैं. किन वैल्यू का इस्तेमाल करना है, यह जानने के लिए Inspector टैब चालू करें. इसके बाद, मैप पर क्लिक करके पिक्सल वैल्यू की रेंज के बारे में जानकारी पाएं. इसके अलावा, डेटा को इंटरैक्टिव तरीके से स्ट्रेच करने के लिए, लेयर मैनेजर का इस्तेमाल करें. इसके बाद, पर्सेंटाइल या स्टैंडर्ड डेविएशन के हिसाब से सबसे कम और सबसे ज़्यादा वैल्यू देखें. मान लें कि इस तरह के एक्सपेरिमेंट से, आपको यह पता चलता है कि डेटा को [0, 3000] तक बढ़ाया जाना चाहिए. इस रेंज का इस्तेमाल करके इमेज दिखाने के लिए, इसका इस्तेमाल करें:

कोड एडिटर (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

ध्यान दें कि visParams पैरामीटर एक ऑब्जेक्ट है. इसकी प्रॉपर्टी, min और max के बारे में बताती हैं. (JavaScript ट्यूटोरियल या इस बाहरी रेफ़रंस से JavaScript ऑब्जेक्ट के बारे में ज़्यादा जानें). ध्यान दें कि Map.addLayer() के लिए तीसरा पैरामीटर, उस लेयर का नाम होता है जो लेयर मैनेजर में दिखती है. नतीजा, पहली इमेज में दिखाए गए नतीजे जैसा दिखना चाहिए. उस लेयर का नाम बदलने से होने वाले असर को देखने के लिए, दाईं ओर मौजूद लेयर बॉक्स पर कर्सर घुमाएं.

Tutorial_api_01_elevation.png
पहली इमेज. ऊंचाई वाली इमेज को ग्रेस्केल के तौर पर दिखाया गया है. इसे [0, 3000] तक बढ़ाया गया है.

कलर पैलेट का इस्तेमाल करके एक बैंड दिखाने के लिए, palette ऑब्जेक्ट में palette प्रॉपर्टी जोड़ें:visParams

कोड एडिटर (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

नतीजा, दूसरी इमेज में दिखाए गए नतीजे जैसा दिखना चाहिए.

Tutorial_api_02_palette.png
दूसरी इमेज. ऊंचाई की इमेज, नीले से लाल रंग के रैंप के तौर पर दिखाई गई है. इसे [0, 3000] तक बढ़ाया गया है.

अलग विषय: पैलेट

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

रंगों को वेब स्टैंडर्ड सीएसएस कलर वैल्यू स्कीम का इस्तेमाल करके तय किया जाता है. ज़्यादा जानने के लिए, यह बाहरी रेफ़रंस देखें. रंगों को नाम से या हेक्साडेसिमल स्ट्रिंग के तौर पर बताया जा सकता है. हेक्साडेसिमल स्ट्रिंग, लाल, हरे, और नीले रंग के कॉम्बिनेशन को दिखाती है. तीनों में से किसी भी पोज़िशन में सबसे कम वैल्यू 00 होती है. यह डेसिमल नंबर 0 को दिखाता है. वहीं, सबसे ज़्यादा वैल्यू FF होती है. यह डेसिमल नंबर 255 को दिखाता है. स्ट्रिंग '000000' काले रंग को, 'FFFFFF' सफ़ेद रंग को, 'FF0000' लाल रंग को, '00FF00' हरे रंग को, और '0000FF' नीले रंग को दिखाता है. ज़्यादा जानकारी के लिए, कलर पैलेट सेक्शन देखें. स्टाइल किए गए लेयर डिस्क्रिप्टर का इस्तेमाल करके, अन्य स्ट्रेच भी किए जा सकते हैं. इनके बारे में इस सेक्शन में बताया गया है.

इस ट्यूटोरियल में आगे, आपको मल्टी-बैंड इमेज दिखाने का तरीका बताया जाएगा. हालांकि, इससे पहले इमेज का इस्तेमाल करके कैलकुलेशन करने के बारे में जानने के लिए, अगले पेज पर जाएं.