क्लाइंट बनाम सर्वर दस्तावेज़ में बताया गया है कि आपकी स्क्रिप्ट में रेफ़र किए गए ऑब्जेक्ट, क्लाइंट-साइड या सर्वर-साइड में से किस तरह के हो सकते हैं. पूरी स्क्रिप्ट में, सिर्फ़ वे ऑब्जेक्ट शामिल नहीं होते जिनका इस्तेमाल करना है. इसमें निर्देशों का एक सेट भी होता है, जिससे Earth Engine को पता चलता है कि उन ऑब्जेक्ट का क्या करना है. इस दस्तावेज़ में बताया गया है कि उन निर्देशों को प्रोसेस करने के लिए, Google को कैसे भेजा जाता है और नतीजों को डिसप्ले करने के लिए, क्लाइंट को कैसे वापस भेजा जाता है.
Earth Engine में JavaScript या Python में स्क्रिप्ट लिखने पर, वह कोड सीधे तौर पर Google के Earth Engine सर्वर पर नहीं चलता. इसके बजाय, क्लाइंट लाइब्रेरी, स्क्रिप्ट को JSON ऑब्जेक्ट के सेट में बदल देती है. इसके बाद, ऑब्जेक्ट को Google को भेजती है और जवाब का इंतज़ार करती है. हर ऑब्जेक्ट, किसी खास आउटपुट को पाने के लिए ज़रूरी ऑपरेशन का एक सेट दिखाता है. उदाहरण के लिए, क्लाइंट में दिखाने के लिए इमेज. यहां दिया गया कोड देखें:
कोड एडिटर (JavaScript)
var image = ee.Image('CGIAR/SRTM90_V4'); var operation = image.add(10); print(operation.toString()); print(operation);
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('CGIAR/SRTM90_V4') operation = image.add(10) print(operation) print(operation.getInfo())
पहला प्रिंट स्टेटमेंट, JSON स्ट्रक्चर को आउटपुट करेगा. क्लाइंट लाइब्रेरी, Google के सर्वर को इमेज के बारे में बताने के लिए इसका इस्तेमाल करती है:
ee.Image({ "type": "Invocation", "arguments": { "image1": { "type": "Invocation", "arguments": { "id": "CGIAR/SRTM90_V4" }, "functionName": "Image.load" }, "image2": { "type": "Invocation", "arguments": { "value": 10 }, "functionName": "Image.constant" } }, "functionName": "Image.add" })
दूसरा प्रिंट स्टेटमेंट, Google को अनुरोध भेजेगा और Google के सर्वर से POST रिस्पॉन्स दिखाएगा. JSON फ़ॉर्मैट में जवाब देखने के लिए, कंसोल की दाईं ओर मौजूद, प्रिंट किए गए ऑब्जेक्ट के बगल में मौजूद JSON
लिंक पर क्लिक करें:
{ "type": "Image", "bands": [ { "id": "elevation", "data_type": { "type": "PixelType", "precision": "int", "min": -32758, "max": 32777 }, "crs": "EPSG:4326", "crs_transform": [ 0.0008333333535119891, 0, -180, 0, -0.0008333333535119891, 60 ] } ] }
जब तक कोई अनुरोध नहीं किया जाता, तब तक Google को कोई भी डेटा प्रोसेसिंग के लिए नहीं भेजा जाता. इस उदाहरण में, किसी सर्वर ऑब्जेक्ट पर getInfo()
कॉल का नतीजा प्रिंट करने से, अनुरोध ट्रिगर होता है. जब तक उस नतीजे के लिए साफ़ तौर पर अनुरोध नहीं किया जाता, तब तक सर्वर पर कोई प्रोसेस नहीं की जाती. ध्यान दें कि JavaScript कोड एडिटर में print()
एक खास क्लाइंट-साइड फ़ंक्शन है, जो एकॉर्डिनेट नहीं होने वाले getInfo()
कॉल को रैप करता है. Python के लिए, हम इसे सीधे तौर पर कॉल करते हैं.
किसी चीज़ का अनुरोध करने का एक और उदाहरण, उसे कोड एडिटर या geemap मैप एलिमेंट पर दिखाना है. जब यह अनुरोध Google को भेजा जाता है, तो कोड एडिटर या geemap मैप एलिमेंट में नतीजा दिखाने के लिए ज़रूरी टाइल ही दिखाए जाते हैं. खास तौर पर, मैप की पोज़िशन और ज़ूम लेवल से यह तय होता है कि कौनसा डेटा प्रोसेस किया जाए और मैप पर दिखाने के लिए इमेज में बदला जाए. पैन या ज़ूम करने पर, ध्यान दें कि अन्य टाइल धीरे-धीरे कैलकुलेट की जाती हैं. मांग पर काम करने वाला यह सिस्टम, एक साथ कई काम करने और बेहतर तरीके से प्रोसेस करने की सुविधा देता है. हालांकि, इसका मतलब यह भी है कि मैप पर दिखाई गई इमेज, मैप के ज़ूम लेवल और बॉर्डर की जगह के आधार पर, अलग-अलग इनपुट से बनाई जाती है. इस बारे में ज़्यादा जानें कि Scale दस्तावेज़ में मौजूद अनुरोध से, कैलकुलेशन के इनपुट कैसे तय किए जाते हैं.