अब आपको JavaScript के बारे में जानकारी मिल गई है. इसलिए, JavaScript ऑब्जेक्ट और प्रिमिटिव को Earth Engine कंटेनर में डालने का तरीका जानें. इससे, उन्हें सर्वर पर भेजा जा सकेगा और Google पर प्रोसेस किया जा सकेगा.
स्ट्रिंग
उदाहरण के लिए, कोई स्ट्रिंग तय करें. इसके बाद, उसे ee.String() कंटेनर में डालें, ताकि उसे Earth Engine को भेजा जा सके:
कोड एडिटर (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 के हर ऑब्जेक्ट टाइप के लिए, सभी तरीकों की सूची देखने के लिए, कोड एडिटर की बाईं ओर मौजूद Docs टैब का इस्तेमाल करें. उदाहरण के लिए, 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 कंस्ट्रक्टर का इस्तेमाल करें:
कोड एडिटर (JavaScript)
// Cast the return value of get() to a number. print('No error:', ee.Number(value).add(3));
शब्दकोश
JavaScript ऑब्जेक्ट से Earth Engine Dictionary बनाया जा सकता है. जैसे, स्ट्रिंग, नंबर, और सूचियां. ऐप्लिकेशन बनाते समय, Earth Engine ऑब्जेक्ट को शुरू करने के लिए, JavaScript की सुविधाओं का इस्तेमाल किया जा सकता है. इस मामले में, 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 में समय को दिखाने के लिए, Date ऑब्जेक्ट का इस्तेमाल किया जाता है. पिछले उदाहरणों की तरह, JavaScript Date ऑब्जेक्ट और Earth Engine ee.Date ऑब्जेक्ट के बीच अंतर करना ज़रूरी है. स्ट्रिंग, JavaScript Date या ee.Date क्लास से मिले स्टैटिक मेथड का इस्तेमाल करके, ee.Date बनाएं. (ज़्यादा जानकारी के लिए, दस्तावेज़ टैब में तारीख सेक्शन देखें). इस उदाहरण में, स्ट्रिंग या 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 ऑब्जेक्ट के उदाहरण में बताया गया है.
अब आपको JavaScript के बारे में ज़रूरी जानकारी मिल गई है. इसलिए, Earth Engine का इस्तेमाल शुरू किया जा सकता है! JavaScript और Earth Engine ऑब्जेक्ट के बीच के अंतर को ज़्यादा बेहतर तरीके से समझने के लिए, क्लाइंट बनाम सर्वर पेज देखें.
अगले सेक्शन में, फ़ंक्शनल प्रोग्रामिंग के कॉन्सेप्ट के बारे में ज़्यादा जानें. इससे Earth Engine में for-loops, if/else कंडीशन, और इटरेशन का असरदार तरीके से इस्तेमाल किया जा सकेगा.