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

अब आप 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);

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

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

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

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

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

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

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

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

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

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

विषय से हटकर: Earth Engine में इमेज

Earth Engine में मौजूद इमेज (ज़्यादा जानकारी के लिए यह पेज देखें), एक या उससे ज़्यादा बैंड से बनी होती हैं. किसी इमेज में मौजूद हर बैंड का अपना नाम, पिक्सल वैल्यू, पिक्सल रिज़ॉल्यूशन, और प्रोजेक्शन होता है. आपको जल्द ही पता चलेगा कि एसआरटीएम इमेज में एक बैंड है: '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 की मदद से, कम से कम और ज़्यादा से ज़्यादा वैल्यू तय की जा सकती हैं. कौनसी वैल्यू इस्तेमाल करनी हैं, यह जानने के लिए इंस्पेक्टर टैब चालू करें. इसके बाद, पिक्सल वैल्यू की रेंज का अंदाज़ा लगाने के लिए, मैप पर क्लिक करें. इसके अलावा, डेटा को इंटरैक्टिव तरीके से स्ट्रेच करने के लिए, लेयर मैनेजर का इस्तेमाल करें. इसके बाद, पर्सेंटाइल या स्टैंडर्ड डेविएशन स्ट्रेच के हिसाब से, कम से कम और ज़्यादा से ज़्यादा वैल्यू देखें. मान लें कि इस तरह के एक्सपेरिमेंट से, आपको पता चलता है कि डेटा को [0, 3000] तक बढ़ाया जाना चाहिए. इस रेंज का इस्तेमाल करके इमेज दिखाने के लिए, इसका इस्तेमाल करें:

कोड एडिटर (JavaScript)

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

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

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

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

कोड एडिटर (JavaScript)

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

नतीजा, इमेज 2 जैसा दिखना चाहिए.

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

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

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

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

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