क्लाइंट लाइब्रेरी की मदद से Earth Engine को अनुरोध करने से पहले, आपको Earth Engine क्लाइंट को शुरू करने के लिए, पुष्टि करनी होगी और पुष्टि के बाद मिले क्रेडेंशियल का इस्तेमाल करना होगा.
Earth Engine कोड एडिटर और JavaScript
कोड एडिटर में, पुष्टि करने और शुरू करने की प्रोसेस अपने-आप होती है. कोड एडिटर के सबसे ऊपर दाईं ओर मौजूद लॉगिन से, अनुरोधों को Cloud प्रोजेक्ट के ज़रिए रूट किया जा सकता है.
अगर कोड एडिटर के बाहर JavaScript API का इस्तेमाल किया जा रहा है, तो ee.data
में पुष्टि करने वाले किसी एक हेल्पर का इस्तेमाल करें. उदाहरण के लिए, ee.data.authenticateViaPopup()
. इसके बाद, ee.initialize()
का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है.
Python और कमांड लाइन
Earth Engine की Python क्लाइंट लाइब्रेरी का इस्तेमाल करने से पहले, आपको पुष्टि करनी होगी (अपनी पहचान की पुष्टि करनी होगी). साथ ही, Python क्लाइंट को शुरू करने के लिए, पुष्टि के बाद मिले क्रेडेंशियल का इस्तेमाल करना होगा. पुष्टि करने के लिए, पुष्टि करने वाले फ़्लो Cloud Projects का इस्तेमाल करते हैं. इनका इस्तेमाल, बिना पैसे दिए (मुफ़्त, गैर-व्यावसायिक) और पैसे चुकाकर किए जाने वाले इस्तेमाल, दोनों के लिए किया जाता है. पुष्टि करने और शुरू करने के लिए,
ee.Authenticate()
ee.Initialize(project='my-project')
यह सबसे पहले आपके एनवायरमेंट के लिए पुष्टि करने का सबसे सही मोड चुनेगा. इसके बाद, आपको अपनी स्क्रिप्ट के ऐक्सेस की पुष्टि करने के लिए कहा जाएगा. अगर क्रेडेंशियल पहले से मौजूद हैं, तो उनका फिर से इस्तेमाल अपने-आप हो जाता है. नए क्रेडेंशियल बनाने के लिए, ee.Authenticate(force=True)
चलाएं.
शुरू करने के चरण में यह पुष्टि की जाती है कि मान्य क्रेडेंशियल मौजूद हैं. ये क्रेडेंशियल, ee.Authenticate()
से बनाए गए हैं या Google के डिफ़ॉल्ट क्रेडेंशियल के तौर पर पहले से मौजूद हैं. इसके बाद, यह Python क्लाइंट लाइब्रेरी को उन तरीकों के साथ शुरू करता है जिनका इस्तेमाल बैकएंड सर्वर करता है. आपको कोई ऐसा प्रोजेक्ट उपलब्ध कराना होगा जिसका मालिकाना हक आपके पास हो या जिसका इस्तेमाल करने की अनुमतियां आपके पास हों. प्रोजेक्ट को रजिस्टर करने और Earth Engine API को चालू करने के लिए, क्लाउड प्रोजेक्ट सेटअप देखें. इस प्रोजेक्ट का इस्तेमाल, Earth Engine के सभी ऑपरेशन चलाने के लिए किया जाएगा.
कमांड लाइन पर, इसके लिए earthengine authenticate
का इस्तेमाल किया जाता है. अगर क्रेडेंशियल की समयसीमा खत्म हो गई है या वे अमान्य हैं, तो आपको earthengine
authenticate --force
चलाना पड़ सकता है. हर कॉल पर कमांड लाइन का इस्तेमाल शुरू हो जाएगा. साथ ही, प्रोजेक्ट सेट करने के लिए --project
आर्ग्युमेंट का इस्तेमाल किया जा सकता है.
earthengine
set_project {my-project}
चलाकर, आने वाले समय में होने वाले सभी कॉल के लिए भी प्रोजेक्ट कॉन्फ़िगर किया जा सकता है. जब किसी प्रोजेक्ट को सीधे तौर पर नहीं बताया जाएगा, तब कमांड लाइन और ee.Initialize()
इसका इस्तेमाल करेंगे. अगर पुष्टि करने के लिए gcloud
(नीचे देखें) का इस्तेमाल किया जा रहा है, तो gcloud auth application-default
set-quota-project {my-project}
से सेट किए गए प्रोजेक्ट का इस्तेमाल फ़ाइनल केस के तौर पर किया जाएगा.
पुष्टि करने से जुड़ी जानकारी
Earth Engine की पुष्टि करने की प्रोसेस का मकसद, आपके साइन इन किए गए खाते से सुरक्षा "टोकन" पाना है. इस टोकन को सेव करके, अपनी स्क्रिप्ट को आपका डेटा ऐक्सेस करने की अनुमति दी जा सकती है. सुरक्षा की वजहों से, Google का पुष्टि करने वाला सिस्टम सिर्फ़ ऐसे सिस्टम को टोकन पास करेगा जिन्हें सुरक्षित किया जा सकता है. इसके बारे में ज़्यादा जानने के लिए, नीचे दिए गए तकनीकी नोट देखें.
इसमें शामिल सिस्टम की संवेदनशीलता की वजह से, आपकी स्थिति के आधार पर आगे बढ़ने के अलग-अलग तरीके हैं. ज़्यादातर विकल्पों को auth_mode
पैरामीटर से कंट्रोल किया जाता है: कमांड लाइन पर ee.Authenticate(auth_mode=...)
या earthengine authenticate --auth_mode=...
के तौर पर.
ध्यान दें कि अगर आपके एनवायरमेंट में Google क्रेडेंशियल पहले से मौजूद हैं, तो हो सकता है कि आपको ee.Authenticate()
को कॉल करने की ज़रूरत न पड़े. Google Cloud VMs, App Engine, और अन्य
एनवायरमेंट, इस्तेमाल किए जा सकने वाले "ऐंबियंट क्रेडेंशियल" उपलब्ध कराते हैं. साथ ही, gcloud auth
application-default login
भी उन्हें बनाएगा.
हालांकि, सभी स्क्रिप्ट की शुरुआत में ee.Authenticate()
का इस्तेमाल करने का सुझाव दिया जाता है, ताकि वे ज़्यादा से ज़्यादा डिवाइसों पर काम कर सकें. auth_mode
पैरामीटर के बिना, इसे ज़्यादातर स्थितियों में काम करने के लिए डिज़ाइन किया गया है. हालांकि, अगर डिफ़ॉल्ट मोड काम नहीं करता है, तो नीचे दी गई जानकारी का पालन करें.
डिफ़ॉल्ट मोड को इस तरह से चुना जाता है:
colab
अगर Google Colab notebook में चलाया जा रहा हैnotebook
अगर Colab के अलावा किसी दूसरी Jupyter notebook में चलाया जा रहा हैlocalhost
अगर कोई वेब ब्राउज़र डिटेक्ट किया जाता है और कोई gcloud बाइनरी इंस्टॉल नहीं होतीgcloud
, अन्य मामलों में. इस मोड के लिए, आपको gcloud इंस्टॉल करना होगा.
क्विक रेफ़रंस गाइड और टेबल
अगर ee.Authenticate()
से चुना गया डिफ़ॉल्ट मोड काम नहीं करता है, तो इस गाइड में दिए गए विकल्पों को आज़माएं. उदाहरण के लिए, अगर आपने नोटबुक के दूसरे एनवायरमेंट में प्रोग्राम चलाया है, तो आपको notebook
के बारे में साफ़ तौर पर बताना पड़ सकता है.
- स्थानीय एनवायरमेंट.
- "लोकल" का मतलब है कि आपने अपनी मशीन पर, Python शेल या Python नोटबुक में कोड चलाया है. इसके अलावा, यह भी हो सकता है कि आपने उसी मशीन पर कोड चलाया हो जिस पर आपका वेब ब्राउज़र चल रहा है. इसमें रिमोट-डेस्कटॉप के ऐसे मामले शामिल हैं जहां Python और ब्राउज़र, दोनों एक ही (रिमोट) मशीन पर मौजूद हैं.
auth_mode=localhost
का इस्तेमाल करना सबसे आसान है. अगर gcloud इंस्टॉल नहीं है, तो यह डिफ़ॉल्ट रूप से चुना जाएगा. हालांकि, आपकी स्क्रिप्ट सिर्फ़ स्थानीय एनवायरमेंट में काम करेगी.auth_mode=gcloud
औरauth_mode=notebook
, दोनों उपलब्ध हैं.
- रिमोट एनवायरमेंट.
- "रिमोट" का मतलब है कि आपका ब्राउज़र एक (लोकल) मशीन पर है, लेकिन आपका कोड कहीं और चल रहा है. जैसे, रिमोट वर्कस्टेशन या वेब-आधारित नोटबुक पर.
- अगर Colab में हैं, तो
auth_mode=colab
का इस्तेमाल करें. अगर आपको अन्य एपीआई को कॉल करने के लिएscopes
सेट करना है, तोgcloud
का इस्तेमाल करें. - अगर आपके पास रिमोट मशीन और लोकल मशीन, दोनों पर gcloud इंस्टॉल करने का विकल्प है, तो
auth_mode=gcloud
का इस्तेमाल करें. - अगर पुष्टि करने के लिए किसी प्रोजेक्ट का इस्तेमाल किया जा सकता है (यहां देखें), तो
auth_mode=notebook
का इस्तेमाल करें. - अगर आपको एक ही मशीन पर किसी प्रोजेक्ट का इस्तेमाल करने, gcloud इंस्टॉल करने, Colab का इस्तेमाल करने या ब्राउज़र का इस्तेमाल करने में समस्या आ रही है, तो:
- प्रोजेक्ट बनाने के बारे में, फिर से किसी एडमिन से बात करें. उदाहरण के लिए:
- एडमिन से कहें कि वह आपके लिए प्रोजेक्ट को कॉन्फ़िगर करे. इसके लिए, वह प्रोजेक्ट का मालिक, एडिटर या OAuth कॉन्फ़िगरेशन एडिटर के तौर पर काम कर सकता है
- इसके अलावा, एडमिन से प्रोजेक्ट बनाने की अनुमतियां मांगें.
इस टेबल में दिखाया गया है कि हर मोड में, सुविधाओं के कौनसे कॉम्बिनेशन काम करते हैं.
स्थानीय या रिमोट जॉब के लिए? | प्रोजेक्ट की ज़रूरत है | सेट किए जा सकने वाले दायरे | स्थानीय सीएलआई की ज़रूरत है | प्रोजेक्ट का मालिक | |
---|---|---|---|---|---|
localhost |
लोकल | Y | हां | नहीं | नहीं |
colab |
रिमोट | Y | नहीं | नहीं | नहीं |
gcloud |
दोनों | Y | हां | नहीं | नहीं |
notebook |
दोनों | Y | हां | नहीं | Y |
सेवा खातों और Compute Engine के लिए क्रेडेंशियल
ee.Initialize()
, Earth Engine क्रेडेंशियल का इस्तेमाल करेगा (ee.Authenticate()
इन्हें ~/.config/earthengine/credentials
में सेव करता है) या google.auth.default()
से क्रेडेंशियल वापस लाएगा. हालांकि, ज़रूरत पड़ने पर, इन डिफ़ॉल्ट क्रेडेंशियल को बायपास करके, किसी दूसरी जगह से क्रेडेंशियल इस्तेमाल करने के लिए, credentials=
आर्ग्युमेंट पास किया जा सकता है.
अगर आपको बिना किसी निगरानी के चलने वाले Python कोड की पुष्टि करनी है, तो उपयोगकर्ता खाते के बजाय सेवा खाते से पुष्टि करें. Earth Engine के साथ सेवा खातों का इस्तेमाल करने के लिए, ये दस्तावेज़ देखें. अन्य तरीकों में, authenticate_service_account
Colab के पुष्टि करने वाले मॉड्यूल में शामिल तरीके और सेवा खाते के तौर पर पुष्टि करने के लिए Cloud की गाइड में बताए गए तरीके शामिल हैं.
अगर आपका कोड Compute Engine VM पर चल रहा है, तो एनवायरमेंट के लिए एक डिफ़ॉल्ट सेवा खाता बनाया जाता है. ee.Initialize()
इसका इस्तेमाल डिफ़ॉल्ट रूप से करेगा. अगर जिस Cloud प्रोजेक्ट से वर्चुअल मशीन (वीएम) शुरू की गई थी उसे Earth Engine (व्यावसायिक या गैर-व्यावसायिक) के साथ इस्तेमाल करने के लिए रजिस्टर नहीं किया गया है, तो आपको Earth Engine का इस्तेमाल करने के लिए सेवा खाता रजिस्टर करना पड़ सकता है.
मोड के बारे में जानकारी
auth_mode=colab. ee.Authenticate()
, ज़रूरत पड़ने पर colab.auth.authenticate_user()
को चलाकर, Colab के साथ काम करने वाले डिफ़ॉल्ट क्रेडेंशियल बनाएगा या हासिल करेगा. क्रेडेंशियल हमेशा cloud-platform
स्कोप का इस्तेमाल करते हैं. साथ ही, इनका इस्तेमाल अन्य Cloud API को कॉल करने के लिए भी किया जा सकता है.
auth_mode=gcloud. यह पुष्टि करने की प्रक्रिया को gcloud टूल को सौंपता है. यह वही काम करता है जो डिफ़ॉल्ट Earth Engine स्कोप (earthengine, cloud-platform, और drive) या scopes
आर्ग्युमेंट में मौजूद स्कोप के साथ gcloud auth application-default login
को चलाने से होता है. gcloud
मोड, स्थानीय और रिमोट, दोनों मामलों में काम करता है.
gcloud मोड (लोकल और रिमोट केस) के लिए सिलसिलेवार निर्देश
- पुष्टि करें कि आपके कंप्यूटर पर gcloud इंस्टॉल हो.
- टर्मिनल में,
gcloud help
चलाएं. अगर gcloud इंस्टॉल नहीं है, तो gcloud इंस्टॉल करने के लिए, इन निर्देशों का पालन करें.
- टर्मिनल में,
- लोकल मशीन टर्मिनल
- टर्मिनल में,
earthengine authenticate
चलाएं. - कमांड के आउटपुट से पता चलेगा कि क्रेडेंशियल पाने के लिए, gcloud का इस्तेमाल किया जा रहा है.
- इसके बाद, खाता चुनने का पेज खुलने के लिए एक ब्राउज़र विंडो खुलेगी. अगर ब्राउज़र अपने-आप नहीं खुलता है, तो यूआरएल पर क्लिक करें.
- टर्मिनल में,
- ब्राउज़र: खाता चुनना
- वह खाता चुनें जिसका इस्तेमाल पुष्टि के लिए करना है.
- ब्राउज़र: सहमति वाली स्क्रीन
- बताएं कि क्या आपको अनुरोध किए गए स्कोप देने हैं या नहीं. इसके बाद, "अनुमति दें" पर क्लिक करें.
- ब्राउज़र: पुष्टि करने वाली स्क्रीन
- ब्राउज़र आपको एक पेज दिखाएगा, जिससे पुष्टि होगी कि आपने पुष्टि कर ली है. साथ ही, आपकी टर्मिनल विंडो में
earthengine authenticate
कमांड से, "अनुमति वाला टोकन सेव हो गया" रिपोर्ट मिलेगी. - कुछ मामलों में, वेब पेज आपको एक कोड देगा, जिसे Python एनवायरमेंट में वापस चिपकाया जा सकता है.
- ब्राउज़र आपको एक पेज दिखाएगा, जिससे पुष्टि होगी कि आपने पुष्टि कर ली है. साथ ही, आपकी टर्मिनल विंडो में
- शुरू करने की प्रोसेस शुरू करें.
auth_mode=localhost. यह gcloud जैसा फ़्लो है. इसका इस्तेमाल उन मामलों में किया जाता है जहां gcloud इंस्टॉल नहीं है. यह gcloud की तरह ही काम करता है, लेकिन सिर्फ़ स्थानीय केस के लिए काम करता है. आपके पास इंटरनेट पोर्ट नंबर देने का विकल्प होता है. जैसे, localhost:8086
. इसके अलावा, localhost:0
का इस्तेमाल करके, पोर्ट को अपने-आप चुनने की सुविधा भी चालू की जा सकती है. डिफ़ॉल्ट पोर्ट 8085 है.
auth_mode=notebook. यह एक सामान्य मोड है, जिसे ऐसी जगहों पर काम करने के लिए डिज़ाइन किया गया है जहां लोकल कमांड लाइन उपलब्ध नहीं हैं. यह आपको Notebook Authenticator पेज पर भेजता है. यहां आपको "पुष्टि करने वाला प्रोजेक्ट" चुनना या बनाना होगा. ज़्यादा जानकारी और समस्या हल करने के बारे में यहां बताया गया है. ee.Initialize()
में पास किए गए प्रोजेक्ट का इस प्रोजेक्ट से मेल खाना ज़रूरी नहीं है. अलग-अलग नोटबुक में अलग-अलग प्रोजेक्ट पर काम करते समय, पुष्टि करने के लिए एक ही प्रोजेक्ट का इस्तेमाल किया जा सकता है. हमारा सुझाव है कि आप ee.Initialize()
को साफ़ तौर पर कोई प्रोजेक्ट पास करें. हालांकि, पुष्टि करने वाले प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाएगा.
नोटबुक मोड के लिए सिलसिलेवार निर्देश
- ब्राउज़र: Notebook
- "नोटबुक" मोड का इस्तेमाल करके पुष्टि करने की प्रोसेस शुरू करने के लिए, नोटबुक कोड सेल में यह कोड चलाएं.
नए टैब में Notebook Authenticator का पेज खोलने के लिए, सेल आउटपुट में मौजूद लिंक पर क्लिक करें.import ee ee.Authenticate()
- "नोटबुक" मोड का इस्तेमाल करके पुष्टि करने की प्रोसेस शुरू करने के लिए, नोटबुक कोड सेल में यह कोड चलाएं.
- ब्राउज़र: Notebook Authenticator
- पुष्टि करें कि सूची में सही उपयोगकर्ता खाता शामिल है.
- पुष्टि करने के लिए, Google Cloud प्रोजेक्ट चुनें. अगर आपको कोई नया प्रोजेक्ट बनाना है, तो हमारा सुझाव है कि आप प्रोजेक्ट का नाम "ee-xyz" रखें. यहां xyz आपका सामान्य Earth Engine उपयोगकर्ता नाम है. (अगर आपको क्लाउड प्रोजेक्ट चुनने या बनाने में समस्या आ रही है, तो नीचे दिया गया समस्या हल करने वाला सेक्शन देखें.)
- 'टोकन जनरेट करें' पर क्लिक करें.
- ब्राउज़र: खाता चुनना
- आपको खाता चुनने का पेज दिखेगा. उस उपयोगकर्ता खाते पर क्लिक करें जिसे आपको नोटबुक का ऐक्सेस देना है.
- ब्राउज़र: चेतावनी वाला पेज
- आपको एक चेतावनी वाला पेज दिखेगा. इसमें बताया जाएगा कि Google ने ऐप्लिकेशन (यानी, नोटबुक में मौजूद कोड) नहीं बनाया है. स्वीकार करने के लिए, 'जारी रखें' पर क्लिक करें.
- ब्राउज़र: सहमति वाली स्क्रीन
- बताएं कि क्या आपको अनुरोध किए गए स्कोप देने हैं. इसके बाद, जारी रखें पर क्लिक करें.
- ब्राउज़र: ऑथराइज़ेशन कोड स्क्रीन
- पुष्टि करने के लिए ऑथराइज़ेशन कोड कॉपी करना
- ब्राउज़र: Notebook
- नोटबुक टैब पर वापस जाएं और पुष्टि करने वाला कोड, नोटबुक सेल के आउटपुट में चिपकाएं.
- सेल के आउटपुट में यह जानकारी दिखनी चाहिए कि "अनुमति टोकन सेव हो गया."
- शुरू करने की प्रोसेस शुरू करें.
नोटबुक मोड में, quiet
पैरामीटर का इस्तेमाल बहुत कम किया जाता है: अगर इसे सेट किया जाता है, तो यह "बिना इंटरैक्शन के" चलता है. साथ ही, यह पुष्टि करने के लिए कोड डालने के लिए न तो प्रॉम्प्ट करता है और न ही इंतज़ार करता है.
इसके बजाय, यह कोड सेव करने के लिए, चलाने का निर्देश देता है.
पुष्टि करने वाले प्रोजेक्ट
नोटबुक मोड में इस्तेमाल किए जाने वाले पुष्टि करने वाले प्रोजेक्ट में, आपके पास मालिक, एडिटर या OAuth कॉन्फ़िगरेशन एडिटर की भूमिका होनी चाहिए. कई मामलों में, खास तौर पर छोटी टीमों में, Notebook Authenticator पेज पर इस्तेमाल किया जाने वाला पुष्टि करने वाला प्रोजेक्ट, वही हो सकता है जिसका इस्तेमाल अन्य काम के लिए किया जाता है.
सुरक्षा से जुड़ी चिंताओं की वजह से, पुष्टि करने वाले प्रोजेक्ट पर "OAuth क्लाइंट कॉन्फ़िगरेशन" को सिर्फ़ एक बार सेट अप किया जाता है. अगर आपने या अन्य उपयोगकर्ताओं ने किसी और वजह से प्रोजेक्ट पर OAuth क्लाइंट सेट अप किया है, तो उसे हटाया नहीं जा सकता. साथ ही, आपको "OAuth2 क्लाइंट कॉन्फ़िगरेशन काम नहीं कर रहा है" वाला गड़बड़ी का मैसेज दिखेगा. पुष्टि करने के लिए, आपको किसी दूसरे प्रोजेक्ट का इस्तेमाल करना होगा. इसके अलावा, ऊपर दिए गए colab, localhost या gcloud मोड का इस्तेमाल भी किया जा सकता है.
समस्या का हल
अगर मैं क्लाउड प्रोजेक्ट नहीं बना पा रहा/रही हूं, तो क्या होगा?
कुछ संगठन यह कंट्रोल करते हैं कि कौन Cloud प्रोजेक्ट बना सकता है. अगर प्रोजेक्ट बनाते समय, आपको Notebook Authenticator पेज पर कोई गड़बड़ी का मैसेज मिलता है, तो ये काम आज़माएं:
- सीधे तौर पर कोई प्रोजेक्ट बनाएं और देखें कि आपके पास ज़रूरी अनुमतियां हैं या नहीं.
- प्रोजेक्ट बनाने के लिए उपलब्ध प्रोसेस के बारे में जानने के लिए, अपने संगठन के एडमिन से बात करें.
- किसी ऐसे खाते से प्रोजेक्ट बनाएं जो संगठन से जुड़ा न हो. साथ ही, उस खाते को प्रोजेक्ट के मालिक के तौर पर जोड़ें जिसका इस्तेमाल आपने काम के लिए किया है. ध्यान दें: कुछ संगठनों की सुरक्षा नीतियों के तहत, बाहरी प्रोजेक्ट से OAuth क्लाइंट को ऐक्सेस करने की अनुमति नहीं होती.
गड़बड़ी: "पहले कभी प्रोजेक्ट XXX में Earth Engine API का इस्तेमाल नहीं किया गया है या यह बंद है"
सबसे पहले, पक्का करें कि आपने ee.Initialize()
या कमांड लाइन में कोई प्रोजेक्ट कॉन्फ़िगर किया हो. Cloud और Colab के डिफ़ॉल्ट प्रोजेक्ट में, Earth Engine चालू नहीं होगा. दूसरा, पक्का करें कि आपके प्रोजेक्ट में Earth Engine API
चालू हो.
गड़बड़ी: "प्रोजेक्ट में OAuth2 क्लाइंट का ऐसा कॉन्फ़िगरेशन है जो काम नहीं करता"
क्लाउड प्रोजेक्ट में सिर्फ़ एक OAuth2 क्लाइंट कॉन्फ़िगरेशन हो सकता है. क्रेडेंशियल पेज पर OAuth 2.0 क्लाइंट आईडी देखकर, यह पता लगाया जा सकता है कि किसी Cloud प्रोजेक्ट में OAuth2 क्लाइंट कॉन्फ़िगरेशन सेट है या नहीं. आपको कोई ऐसा Cloud प्रोजेक्ट चुनना होगा जिसमें Notebook Authenticator ने पहले से ही काम करने वाला कॉन्फ़िगरेशन सेट अप किया हो या कोई ऐसा Cloud प्रोजेक्ट चुनना होगा या बनाना होगा जिसमें कोई OAuth2 क्लाइंट न हो. पुष्टि करने वाला टूल, इस प्रोजेक्ट को अपने-आप कॉन्फ़िगर कर देगा. माफ़ करें, OAuth सिस्टम में उपयोगकर्ताओं को कॉन्फ़िगरेशन मिटाने की अनुमति नहीं है. इसलिए, किसी दूसरे प्रोजेक्ट का इस्तेमाल करना होगा. यह ज़रूरी नहीं है कि यह वही प्रोजेक्ट हो जिसका इस्तेमाल Earth Engine के अन्य कामों के लिए किया जाता है. ध्यान दें कि यह गड़बड़ी, Colab मोड में नहीं होती.
गड़बड़ी: "gcloud काम नहीं कर रहा है. कृपया ऊपर दी गई गड़बड़ियों की जांच करें और ज़रूरत पड़ने पर gcloud इंस्टॉल करें."
यह गड़बड़ी तब हो सकती है, जब gcloud इंस्टॉल न हो या आपके PATH में न हो. यह तब भी हो सकता है, जब आपने नोटबुक कोड सेल में ee.Authenticate(auth_mode='gcloud')
को कॉल किया हो. इसके बजाय, ee.Authenticate()
का इस्तेमाल करें. इससे डिफ़ॉल्ट रूप से, नोटबुक मोड में पुष्टि करने की सुविधा का इस्तेमाल किया जाएगा. अगर आपको प्रोजेक्ट बनाने में समस्या आ रही है, तो ऊपर दिया गया समाधान देखें.
अगर मेरे पास gcloud इंस्टॉल करने के लिए, लोकल मशीन का ऐक्सेस नहीं है, तो क्या होगा?
अगर आपके पास स्थानीय टर्मिनल का ऐक्सेस नहीं है और आपको सिर्फ़ वेब पर काम करना है, फिर भी आपको रिमोट टर्मिनल का इस्तेमाल करना है, तो earthengine
authenticate --auth_mode=notebook
कमांड चलाकर नोटबुक मोड को ट्रिगर करके, कमांड लाइन टूल को शुरू किया जा सकता है.
गड़बड़ी 400: redirect_uri_mismatch
अगर किसी वेब ब्राउज़र के ऐक्सेस के बिना, किसी रिमोट मशीन पर पुष्टि की जा रही है, तो आपको यह गड़बड़ी दिख सकती है. अगर कमांड लाइन से earthengine authenticate
को चलाया जा रहा है, तो --quiet
जोड़ें. अगर Python क्लाइंट का इस्तेमाल किया जा रहा है, तो ee.Authenticate(quiet=True)
जोड़ें. इसके लिए, आपको उस मशीन से gcloud
की पुष्टि करनी होगी जिसके पास वेब ब्राउज़र का ऐक्सेस है.
गड़बड़ी: "आपका ऐप्लिकेशन, स्थानीय ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके पुष्टि कर रहा है. earthengine.googleapis.com API के लिए, कोटा प्रोजेक्ट की ज़रूरत होती है. यह प्रोजेक्ट डिफ़ॉल्ट रूप से सेट नहीं होता."
यह गड़बड़ी तब हो सकती है, जब Earth Engine आपके प्रोजेक्ट आईडी का पता न लगा पाए. अगर Google Cloud के समस्या हल करने के विकल्प काम नहीं करते हैं, तो earthengine set_project YOUR_PROJECT_ID
या gcloud
auth application-default set-quota-project YOUR_PROJECT_ID
को चलाकर देखें.
तकनीकी जानकारी
तकनीकी जानकारी के बारे में जानने वाले लोगों के लिए: क्रेडेंशियल बनाने के इन अलग-अलग तरीकों की ज़रूरत इसलिए पड़ती है, ताकि क्रेडेंशियल को किसी ऐसे माहौल में भेजा जा सके जिस पर भरोसा किया जा सकता हो. यहां ऊपर दिए गए अलग-अलग मामलों के बारे में खास जानकारी दी गई है.
- पहले
paste
मोड था, जिसमें आपको कहीं भी चिपकाने के लिए टोकन मिलता था. इसे बहुत जोखिम भरा माना गया और अब यह मोड उपलब्ध नहीं है. colab
:auth.authenticate_user()
आपको "Colab" के पुष्टि करने वाले क्लाइंट, यानी नोटबुक एनवायरमेंट के साथ क्रेडेंशियल शेयर करने के लिए कहेगा. इसके बाद, येgoogle.auth.default()
के ज़रिए उपलब्ध होते हैं औरee.Initialize()
का इस्तेमाल करते हैं.localhost
: क्रेडेंशियल, ब्राउज़र से आपकी लोकल मशीन के पोर्ट पर भेजे जाते हैं. इस स्थिति में, एंड-टू-एंड सुरक्षा इस बात पर निर्भर करती है कि आपकी लोकल मशीन में कोई छेड़छाड़ तो नहीं की गई है. आपको "Earth Engine Authenticator" ऑथराइज़ेशन क्लाइंट दिखेगा.gcloud
: यह gcloud रेफ़रंस में बताए गए--launch-browser
फ़्लो का इस्तेमाल करता है. अगर यह किसी रिमोट मशीन पर है, तो--no-launch-browser
का इस्तेमाल किया जाता है. पुष्टि करने वाले क्लाइंट के तौर पर, "Google Auth लाइब्रेरी" का इस्तेमाल किया जाता है.notebook
: हम खास तौर पर आपके काम के लिए एक नया ऑथेंटिकेशन क्लाइंट बनाते हैं - आपको सहमति वाले पेज पर अपना ईमेल पता दिखेगा. यह क्लाइंट "डेवलपमेंट" मोड में सेट है. यह एक खास मामला है, जिसमें चिपकाने के पुराने मोड के टोकन इस्तेमाल किए जा सकते हैं. इसके लिए, हमें आपके प्रोजेक्ट का इस्तेमाल करना होगा. ऐसा इसलिए, क्योंकि ऐसे क्लाइंट को ज़्यादा उपयोगकर्ताओं के साथ शेयर नहीं किया जा सकता.