अब जब आपको JavaScript के बारे में बुनियादी जानकारी मिल गई है, तो जानें कि JavaScript ऑब्जेक्ट और प्रिमिटिव को Earth Engine कंटेनर में कैसे रखा जाता है. इससे उन्हें सर्वर पर भेजा जा सकता है और Google पर प्रोसेस किया जा सकता है.
स्ट्रिंग
उदाहरण के लिए, एक स्ट्रिंग तय करें. इसके बाद, उसे Earth Engine को भेजने के लिए ee.String()
कंटेनर में डालें:
कोड एडिटर (JavaScript)
// Define a string, then put it into an EE container. var aString = 'To the cloud!'; var eeString = ee.String(aString); print('Where to?', eeString);
ee.Thing
को सर्वर पर मौजूद किसी चीज़ के कंटेनर के तौर पर समझें. इस उदाहरण में, स्ट्रिंग को पहले तय किया गया है. इसके बाद, उसे कंटेनर में रखा गया है. कंटेनर और उसके कॉन्टेंट को एक साथ भी तय किया जा सकता है. उदाहरण के लिए:
कोड एडिटर (JavaScript)
// Define a string that exists on the server. var serverString = ee.String('This is on the server.'); print('String on the server:', serverString);
print()
फ़ंक्शन के पहले आर्ग्युमेंट के तौर पर क्लाइंट को सिर्फ़ एक स्ट्रिंग मिलती है. हालांकि, दूसरे आर्ग्युमेंट को सर्वर पर भेजा जाता है, ताकि उसका आकलन किया जा सके. इसके बाद, उसे वापस भेज दिया जाता है.
Numbers
सर्वर पर नंबर ऑब्जेक्ट बनाने के लिए, ee.Number()
का इस्तेमाल करें. उदाहरण के लिए, सर्वर पर कोई कॉन्स्टेंट वैल्यू बनाने के लिए, Math.E
JavaScript तरीके का इस्तेमाल करें:
कोड एडिटर (JavaScript)
// Define a number that exists on the server. var serverNumber = ee.Number(Math.E); print('e=', serverNumber);
ee.String()
और ee.Number()
मेथड, कंस्ट्रक्टर हैं. कंस्ट्रक्टर, अपने आर्ग्युमेंट (और शायद अन्य पैरामीटर) लेता है, उसे कंटेनर में रखता है, और कंटेनर और उसके कॉन्टेंट को Earth Engine ऑब्जेक्ट के तौर पर दिखाता है. इस ऑब्जेक्ट को अपने कोड में बदला जा सकता है. ee
से शुरू होने वाला कोई भी कंस्ट्रक्टर, Earth Engine ऑब्जेक्ट दिखाता है.
Earth Engine ऑब्जेक्ट पर इस्तेमाल किए जाने वाले तरीके
ध्यान दें कि Earth Engine ऑब्जेक्ट बनाने के बाद, आपको उसे प्रोसेस करने के लिए Earth Engine के तरीकों का इस्तेमाल करना होगा. इस उदाहरण में, Earth Engine ऑब्जेक्ट को प्रोसेस करने के लिए, JavaScript के Math.log()
का इस्तेमाल नहीं किया जा सकता. आपको ee.Number
के लिए तय किए गए तरीके का इस्तेमाल करना होगा:
कोड एडिटर (JavaScript)
// Use a built-in function to perform an operation on the number. var logE = serverNumber.log(); print('log(e)=', logE);
इस उदाहरण में, log()
, ee.Number
ऑब्जेक्ट के लिए एक तरीका है. (कोड एडिटर के बाईं ओर मौजूद दस्तावेज़ टैब का इस्तेमाल करके, हर Earth Engine ऑब्जेक्ट टाइप के लिए उपलब्ध सभी तरीकों की सूची देखें. उदाहरण के लिए, ee.Number > log()). ध्यान दें कि Earth Engine ऑब्जेक्ट के तरीके, अन्य Earth Engine ऑब्जेक्ट दिखाते हैं.
सूचियां
JavaScript सूची को सर्वर पर ee.List
ऑब्जेक्ट में बदलने के लिए, JavaScript लिटरल को कंटेनर में रखा जा सकता है. जैसे, संख्याओं और स्ट्रिंग के लिए किया जाता है. Earth Engine, संख्याओं के क्रम बनाने के लिए सर्वर-साइड के सुविधाजनक तरीके भी उपलब्ध कराता है. उदाहरण
के लिए:
कोड एडिटर (JavaScript)
// Make a sequence the hard way. var eeList = ee.List([1, 2, 3, 4, 5]); // Make a sequence the easy way! var sequence = ee.List.sequence(1, 5); print('Sequence:', sequence);
ee.List
ऑब्जेक्ट सिर्फ़ सर्वर पर मौजूद होते हैं. इसलिए, उनसे इंटरैक्ट करने के लिए Earth Engine के उपलब्ध कराए गए फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, सूची से कोई आइटम पाने के लिए, ee.List
ऑब्जेक्ट के get()
तरीके का इस्तेमाल करें:
कोड एडिटर (JavaScript)
// Use a method on an ee.List to extract a value. var value = sequence.get(2); print('Value at index 2:', value);
वीडियो कास्ट करना
कभी-कभी, Earth Engine को यह पता नहीं होता कि किसी तरीके से किस तरह का ऑब्जेक्ट वापस मिलता है. प्रोग्रामर के तौर पर आपको पता है कि पिछले उदाहरण में value
वैरिएबल एक नंबर ऑब्जेक्ट है. हालांकि, अगर किसी ee.Number
के add()
तरीके का इस्तेमाल किया जाता है, तो आपको इस तरह की गड़बड़ी दिखेगी:
यह get()
फ़ंक्शन के साथ आम बात है, जो हर तरह के Earth Engine ऑब्जेक्ट दिखा सकता है. इसे ठीक करने के लिए, नतीजे को कास्ट करने के लिए ee.Number
constructor का इस्तेमाल करें:
कोड एडिटर (JavaScript)
// Cast the return value of get() to a number. print('No error:', ee.Number(value).add(3));
शब्दकोश
स्ट्रिंग, संख्याओं, और सूचियों की तरह ही, JavaScript ऑब्जेक्ट से Earth Engine Dictionary
बनाया जा सकता है. कंस्ट्रक्शन के समय, JavaScript फ़ंक्शन का इस्तेमाल करके Earth Engine ऑब्जेक्ट को शुरू किया जा सकता है. इस मामले में, ee.Dictionary
को सीधे JavaScript के लिटरल ऑब्जेक्ट से बनाया जाता है:
कोड एडिटर (JavaScript)
// Make a Dictionary on the server. var dictionary = ee.Dictionary({ e: Math.E, pi: Math.PI, phi: (1 + Math.sqrt(5)) / 2 }); // Get some values from the dictionary. print('Euler:', dictionary.get('e')); print('Pi:', dictionary.get('pi')); print('Golden ratio:', dictionary.get('phi')); // Get all the keys: print('Keys: ', dictionary.keys());
इस उदाहरण में देखें कि ee.Dictionary
मिलने के बाद, आपको वैल्यू पाने के लिए ee.Dictionary
पर तरीकों का इस्तेमाल करना होगा. यह पिछले सबक में JavaScript डिक्शनरी से अलग है. खास तौर पर, get(key)
, key
से जुड़ी वैल्यू दिखाता है. get()
से मिले ऑब्जेक्ट का टाइप कुछ भी हो सकता है. इसलिए, अगर आपको ऑब्जेक्ट को प्रिंट करने के अलावा कुछ और करना है, तो आपको उसे सही टाइप में काटना होगा. यह भी ध्यान दें कि keys()
तरीके से ee.List
मिलता है.
तारीख
तारीख के ऑब्जेक्ट, Earth Engine में समय को दिखाने का तरीका है. पिछले उदाहरणों की तरह, यह ज़रूरी है कि JavaScript Date
ऑब्जेक्ट और Earth Engine ee.Date
ऑब्जेक्ट के बीच अंतर किया जाए. स्ट्रिंग, JavaScript Date
या ee.Date
क्लास के ज़रिए उपलब्ध कराई गई स्टैटिक विधियों का इस्तेमाल करके, ee.Date
बनाएं. (ज़्यादा जानकारी के लिए, दस्तावेज़ टैब में तारीख सेक्शन देखें). इस उदाहरण में, स्ट्रिंग या JavaScript की तारीख से तारीखें बनाने का तरीका बताया गया है. JavaScript की तारीख, 1 जनवरी, 1970 की आधी रात के बाद से मिलीसेकंड को दिखाती है:
कोड एडिटर (JavaScript)
// Define a date in Earth Engine. var date = ee.Date('2015-12-31'); print('Date:', date); // Get the current time using the JavaScript Date.now() method. var now = Date.now(); print('Milliseconds since January 1, 1970', now); // Initialize an ee.Date object. var eeNow = ee.Date(now); print('Now:', eeNow);
तारीखें, कलेक्शन को फ़िल्टर करने के लिए काम आती हैं. खास तौर पर, filterDate()
तरीके के लिए आर्ग्युमेंट के तौर पर. कलेक्शन को क्रम से लगाने के बारे में ज़्यादा जानकारी के लिए, 'शुरू करें' पेज का यह सेक्शन देखें.
डाइग्रेशन: नाम के हिसाब से पैरामीटर पास करना
Earth Engine के तरीकों के लिए आर्ग्युमेंट को क्रम से पास किया जा सकता है. उदाहरण के लिए, साल, महीने, और दिन से ee.Date
बनाने के लिए, fromYMD()
स्टैटिक तरीके के पैरामीटर को साल, महीना, दिन के क्रम में पास किया जा सकता है:
कोड एडिटर (JavaScript)
var aDate = ee.Date.fromYMD(2017, 1, 13); print('aDate:', aDate);
इसके अलावा, पैरामीटर को नाम के हिसाब से किसी भी क्रम में पास किया जा सकता है. भले ही, इसमें ज़्यादा कोड हो, लेकिन इससे कोड को पढ़ने और दोबारा इस्तेमाल करने में आसानी होती है. नाम के हिसाब से पैरामीटर पास करने के लिए, एक JavaScript ऑब्जेक्ट पास करें. इसमें ऑब्जेक्ट की कुंजियां, तरीके के पैरामीटर के नाम होती हैं और वैल्यू, तरीके के आर्ग्युमेंट होती हैं. उदाहरण के लिए:
कोड एडिटर (JavaScript)
var theDate = ee.Date.fromYMD({ day: 13, month: 1, year: 2017 }); print('theDate:', theDate);
ध्यान दें कि ऑब्जेक्ट प्रॉपर्टी (कुंजियों) के नाम, ee.Date.fromYMD()
दस्तावेज़ों में दिए गए नामों से मेल खाते हैं. यह भी ध्यान दें कि आर्ग्युमेंट के तौर पर पास किए गए ऑब्जेक्ट को, फिर से इस्तेमाल करने के लिए किसी वैरिएबल में सेव किया जा सकता है. जैसा कि JavaScript ऑब्जेक्ट के उदाहरण में दिखाया गया है.
अब आपके पास Earth Engine का इस्तेमाल शुरू करने के लिए, JavaScript के बारे में काफ़ी जानकारी है! JavaScript बनाम Earth Engine ऑब्जेक्ट के बारे में ज़्यादा जानकारी के लिए, क्लाइंट बनाम सर्वर पेज देखें.
अगले सेक्शन में, फ़ंक्शनल प्रोग्रामिंग के कॉन्सेप्ट के बारे में ज़्यादा जानें. इससे Earth Engine में for-loops, if/else की शर्तों, और इटरेशन का असरदार तरीके से इस्तेमाल किया जा सकेगा.