कमांड-लाइन टूल

earthengine टूल एक यूटिलिटी प्रोग्राम है. इसकी मदद से, कमांड लाइन से Earth Engine की ऐसेट और टास्क मैनेज किए जा सकते हैं. Python API इंस्टॉल करने पर, यह टूल अपने-आप इंस्टॉल हो जाता है. यह देखने के लिए कि टूल इंस्टॉल हो गया है और ठीक से काम कर रहा है या नहीं, कमांड लाइन पर यह टाइप करें:

    earthengine

अगर टूल सही तरीके से इंस्टॉल हो गया है, तो यह उपलब्ध कमांड की खास जानकारी प्रिंट करता है. किसी खास कमांड के बारे में मदद पाने के लिए, इसका इस्तेमाल करें:

    earthengine command -h

Python API को पहली बार इंस्टॉल करने पर, आपको नीचे बताई गई authenticate कमांड का इस्तेमाल करके साइन इन करना होगा. यहां दिए गए सेक्शन में, उपलब्ध कमांड के बारे में ज़्यादा जानकारी दी गई है.

सेवा खाते के क्रेडेंशियल

सेवा खाते के क्रेडेंशियल के साथ सीएलआई का इस्तेमाल करने के लिए, service_account_file फ़्लैग का इस्तेमाल करें. इससे, सेवा खाते की कुंजी वाली JSON फ़ाइल की ओर इशारा किया जा सकेगा.

    earthengine --service_account_file=service_account_creds.json

Colab में इस्तेमाल करना

Earth Engine कमांड लाइन टूल, Google Colab में पहले से इंस्टॉल होता है. इसलिए, इसका इस्तेमाल तुरंत किया जा सकता है.

पुष्टि करना

हर नए Colab सेशन के लिए पुष्टि करें. इसके अलावा, अगर वर्चुअल मशीन का इस्तेमाल न करने की वजह से, क्रेडेंशियल की समयसीमा खत्म हो जाती है, तब भी पुष्टि करें. ऐसा इसलिए, क्योंकि क्रेडेंशियल को सेशन के बीच सेव नहीं किया जाता.

पुष्टि करने की प्रोसेस शुरू करने के लिए, Python क्लाइंट लाइब्रेरी इंपोर्ट करें और ee.Authenticate() को कॉल करें. पुष्टि की प्रोसेस पूरी करने के लिए, निर्देशों का पालन करें. Colab में डिफ़ॉल्ट auth_mode वैल्यू colab होती है. अन्य विकल्पों के लिए, पुष्टि करने की गाइड देखें.

import ee
ee.Authenticate()

कमांड एक्ज़ीक्यूशन

Earth Engine सीएलआई जैसे कमांड लाइन यूटिलिटी को चलाने के लिए, आपको कमांड कॉल से पहले विस्मयादिबोधक चिह्न लगाना होगा.

!earthengine -h

कोई Cloud प्रोजेक्ट सेट करना

earthengine की हर कमांड के लिए, कोई Cloud प्रोजेक्ट सेट करने के लिए --project विकल्प का इस्तेमाल करें.

!earthengine --project my-project <command>

इसके अलावा, कोई डिफ़ॉल्ट प्रोजेक्ट सेट करें. इसका इस्तेमाल सभी earthengine कॉल के लिए किया जाएगा. इसके लिए set_project कमांड का इस्तेमाल करें. प्रोजेक्ट को क्रेडेंशियल फ़ाइल (~/.config/earthengine/credentials) में जोड़ा जाएगा. साथ ही, इसका इस्तेमाल बाद की कमांड के लिए किया जाएगा. हालांकि, --project विकल्प का इस्तेमाल करके, इसे बदला जा सकता है. हर नए Colab सेशन के लिए, कोई डिफ़ॉल्ट प्रोजेक्ट सेट करें. इसके अलावा, अगर वर्चुअल मशीन का इस्तेमाल न करने की वजह से, क्रेडेंशियल की समयसीमा खत्म हो जाती है, तब भी डिफ़ॉल्ट प्रोजेक्ट सेट करें. ऐसा इसलिए, क्योंकि क्रेडेंशियल को सेशन के बीच सेव नहीं किया जाता.

!earthengine set_project my-project

कमांड रेफ़रंस

पुष्टि करें

यह कमांड लाइन टूल और Python क्लाइंट लाइब्रेरी की Earth Engine से पुष्टि करता है. उदाहरण:

    earthengine authenticate

Earth Engine, क्लाइंट की पुष्टि करने के लिए OAuth 2.0 प्रोटोकॉल का इस्तेमाल करता है. earthengine authenticate कमांड, वेब ब्राउज़र का इस्तेमाल करके पुष्टि करने की प्रोसेस के बारे में आपको निर्देश देगा.

gcloud के डिफ़ॉल्ट पुष्टि करने के मोड का इस्तेमाल करने पर, आपको gcloud इंस्टॉल करना होगा. पुष्टि करने की गाइड में, auth_mode पैरामीटर की मदद से उपलब्ध पुष्टि करने के अन्य मोड देखें.

acl

यह Earth Engine की किसी ऐसेट की ऐक्सेस कंट्रोल लिस्ट (एसीएल) को प्रिंट या अपडेट करता है. एसीएल से यह कंट्रोल होता है कि कोई ऐसेट कौन पढ़ सकता है या उसमें बदलाव कर सकता है. उदाहरण:

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

get सब-कमांड, एसीएल का JSON फ़ॉर्मैट में ब्यौरा प्रिंट करता है. set सब-कमांड, उसी JSON फ़ॉर्मैट में किसी फ़ाइल में दी गई एसीएल को सेट करता है. get से मिले आउटपुट को सेव करके और उसे set में डालकर, किसी एसीएल को एक ऐसेट से दूसरी ऐसेट में कॉपी किया जा सकता है.

सेट सब-कमांड, एसीएल के दो खास नाम भी स्वीकार करता है:

  • private: इससे, मालिक के अलावा सभी लोगों की अनुमतियां हट जाती हैं.
  • public: इससे, सभी उपयोगकर्ताओं को पढ़ने की अनुमति मिल जाती है.

ch सब-कमांड की मदद से, एसीएल में अलग-अलग बदलाव किए जा सकते हैं. पढ़ने की अनुमति देने के लिए, -u username@gmail.com:R डालें. बदलाव करने की अनुमति देने के लिए -u username@gmail.com:W डालें. किसी उपयोगकर्ता की अनुमतियां हटाने के लिए, -d username@gmail.com डालें. सभी उपयोगकर्ताओं को पढ़ने की अनुमति देने या उनसे यह अनुमति वापस लेने के लिए, खास उपयोगकर्ता आइडेंटिफ़ायर AllUsers का इस्तेमाल किया जा सकता है. (ध्यान दें कि AllUsers की अनुमतियां वापस लेने से, अलग-अलग उपयोगकर्ताओं को दी गई अन्य अनुमतियां वापस नहीं ली जाती हैं.)

ऐसेट

यह Earth Engine की किसी ऐसेट से जुड़े मेटाडेटा को प्रिंट या अपडेट करता है. उदाहरण:

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id
    earthengine asset setbands projects/my-project/assets/asset_id band1 band2

info सब-कमांड, ऐसेट के बारे में पूरी जानकारी JSON फ़ॉर्मैट में प्रिंट करता है. इसमें उसका मेटाडेटा भी शामिल होता है. set सब-कमांड, किसी ऐसेट पर मेटाडेटा की अलग-अलग प्रॉपर्टी सेट करता है. setbands सब-कमांड, किसी ऐसेट के बैंड के नाम अपडेट करता है.

मेटाडेटा की प्रॉपर्टी की वैल्यू, संख्याएं या स्ट्रिंग हो सकती हैं. --property या -p फ़्लैग का इस्तेमाल करके, प्रॉपर्टी के नाम सेट करते समय, प्रॉपर्टी के नाम और वैल्यू को बराबर के चिह्न से अलग करें. डेटा टाइप अपने-आप पता चल जाता है. हालांकि, प्रॉपर्टी के नाम से पहले (string), (number) या (date) लगाकर, इसे साफ़ तौर पर बताया जा सकता है. उदाहरण के लिए, इससे स्ट्रिंग वैल्यू वाली प्रॉपर्टी, "42" वैल्यू के साथ सेट हो जाती है:

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

(इस उदाहरण में, कोटेशन मार्क की वजह से शेल, ब्रैकेट को इंटरप्रेट नहीं कर पाता. आपके शेल और प्लैटफ़ॉर्म के हिसाब से, इनकी ज़रूरत हो भी सकती है और नहीं भी.)

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

    earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
    earthengine asset set -p 'landcover_class_values=1,2,3' projects/my-project/assets/asset_id

किसी प्रॉपर्टी को मिटाने के लिए, उसे बिना टाइप के null पर सेट करें:

    earthengine asset set -p name=null projects/my-project/assets/asset_id

तारीख की प्रॉपर्टी सिर्फ़ संख्याएं होती हैं.ये संख्याएं, Unix epoch (यानी, 1 जनवरी, 1970 की आधी रात) से लेकर अब तक के मिलीसेकंड की संख्या को दिखाती हैं.इन्हें सीधे तौर पर किसी संख्या के तौर पर या इनमें से किसी फ़ॉर्मैट में बताया जा सकता है:

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

टाइम ज़ोन को यूटीसी माना जाता है. --time_start और --time_end फ़्लैग का इस्तेमाल करके, शुरू और खत्म होने के समय की खास प्रॉपर्टी सेट की जा सकती हैं:

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

यह किसी ऐसेट को कॉपी करता है. उदाहरण:

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

बनाएं

इससे नए फ़ोल्डर और इमेज कलेक्शन बनाए जा सकते हैं. उदाहरण:

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

फ़ोल्डर बनाने के लिए folder सब-कमांड और इमेज कलेक्शन बनाने के लिए collection सब-कमांड का इस्तेमाल करें. ज़रूरत के हिसाब से, पैरंट फ़ोल्डर को बार-बार बनाने के लिए, -p विकल्प का इस्तेमाल किया जा सकता है. नए बनाए गए फ़ोल्डर और इमेज में, डिफ़ॉल्ट रूप से निजी एसीएल होती हैं.

ls

इससे एक या उससे ज़्यादा फ़ोल्डर या कलेक्शन का कॉन्टेंट दिखता है. उदाहरण:

    earthengine ls users/username

-l विकल्प, हर ऐसेट के बारे में ज़्यादा जानकारी (फ़िलहाल, सिर्फ़ उसका टाइप) के साथ, लंबे फ़ॉर्मैट का अनुरोध करता है. दिखाए जाने वाले हर फ़ोल्डर या कलेक्शन के आइटम की संख्या सीमित करने के लिए, --max_items number (या -m शॉर्टकट के तौर पर) का इस्तेमाल किया जा सकता है:

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

बिना किसी आर्ग्युमेंट के ls कमांड चलाने पर, आपके मालिकाना हक वाले टॉप-लेवल के फ़ोल्डर दिखेंगे.

मॉडल

यह टूल, TensorFlow के सेव किए गए मॉडल को मैनेज करने के लिए इस्तेमाल किया जाता है.

model prepare

सेव किए गए मॉडल को Earth Engine में दिखाने के लिए तैयार करें. खास तौर पर, इससे आपके SavedModel को ऐसे फ़ॉर्म में बदला जाता है जो Earth Engine से मिले अनुरोधों को प्रोसेस करने के लिए सही हो. (के बारे में ज़्यादा जानें SavedModel.)

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

AI Platform मॉडल के बारे में ज़्यादा जानने के लिए, यहां जाएं. ज़्यादा जानने के लिए यह लेख यहाँ देखें.

mv

इससे किसी ऐसेट को दूसरी जगह ले जाया जा सकता है या उसका नाम बदला जा सकता है. उदाहरण:

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

इससे प्रोजेक्ट के कॉन्फ़िगरेशन की वैल्यू सेट की जाती हैं. इस कमांड का इस्तेमाल करने से पहले, set_project का इस्तेमाल करके कोई प्रोजेक्ट सेट करना न भूलें.

सदस्यता लें

प्रोजेक्ट का कॉन्फ़िगरेशन देखने के लिए, get सब-कमांड का इस्तेमाल करें:

    earthengine alpha project_config get

अगर आपके पास प्रोजेक्ट की बैच टास्क सेटिंग देखने की अनुमति है, तो आउटपुट में यह जानकारी शामिल होती है:

  • maxConcurrentExports: यह एक संख्या है. इससे पता चलता है कि दिए गए प्रोजेक्ट के लिए, सभी उपयोगकर्ताओं के लिए एक साथ कितने बैच टास्क चलाए जा सकते हैं. डिफ़ॉल्ट रूप से, इसे लिंक किए गए बिलिंग खाते के सदस्यता प्लानके हिसाब से, ज़्यादा से ज़्यादा संख्या पर सेट किया जाता है.

इसके अलावा, अगर आपके पास प्लान का कॉन्फ़िगरेशन देखने की अनुमति है, तो आउटपुट में यह जानकारी शामिल होती है:

  • planMaxConcurrentExports: यह एक संख्या है. इससे पता चलता है कि बिलिंग खाते का इस्तेमाल करने वाले सभी उपयोगकर्ताओं और प्रोजेक्ट के लिए, एक साथ कितने बैच टास्क चलाए जा सकते हैं.

सेट करो

प्रोजेक्ट का कॉन्फ़िगरेशन अपडेट करने के लिए, set सब-कमांड का इस्तेमाल करें. इन सेटिंग को कॉन्फ़िगर किया जा सकता है:

उदाहरण के लिए, किसी प्रोजेक्ट को इस तरह कॉन्फ़िगर करने के लिए कि दिए गए प्रोजेक्ट के लिए, एक साथ सिर्फ़ 10 टास्क चलाए जा सकें:

    earthengine alpha project_config set --max_concurrent_exports=10

आउटपुट में, अपडेट किया गया प्रोजेक्ट कॉन्फ़िगरेशन दिखता है. यह get से मिलने वाले आउटपुट जैसा ही होता है.

एक साथ चलाए जा सकने वाले बैच टास्क की संख्या के बारे में ज़्यादा जानने के लिए, Earth Engine कोटा वाला पेज देखें.

rm

इससे एक या उससे ज़्यादा ऐसेट मिटाई जा सकती हैं. उदाहरण:

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

किसी फ़ोल्डर या कलेक्शन का कॉन्टेंट बार-बार मिटाने के लिए, -r फ़्लैग का इस्तेमाल किया जा सकता है. एक साथ कई ऐसेट मिटाते समय, सुरक्षा के लिए --dry_run फ़्लैग का इस्तेमाल किया जा सकता है. इससे यह पुष्टि की जा सकती है कि असल में कुछ भी मिटाए बिना, क्या मिटाया जाएगा.

set_project

इससे Google Cloud प्रोजेक्ट सेट किया जाता है. इसी प्रोजेक्ट के ज़रिए, कंप्यूटेशन के अनुरोध भेजे जाते हैं.

    earthengine set_project foo-project

Cloud की सुविधा का इस्तेमाल करने वाली कमांड चलाने से पहले, यह कमांड ज़रूरी है. उदाहरण के लिए, model कमांड.

टास्क

इससे लंबे समय तक चलने वाले टास्क के बारे में जानकारी मिलती है या उन्हें मैनेज किया जा सकता है. उदाहरण:

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

list सब-कमांड, हाल ही में सबमिट किए गए टास्क के बारे में बुनियादी जानकारी दिखाता है. -l विकल्प, हर टास्क के बारे में ज़्यादा जानकारी के साथ, लंबे फ़ॉर्मैट का अनुरोध करता है. info सब-कमांड, अलग-अलग टास्क के बारे में पूरी जानकारी प्रिंट करता है. cancel सब-कमांड, एक या उससे ज़्यादा चल रहे टास्क को रद्द करता है.

अपलोड करें

इससे Google Cloud Storage से इमेज या टेबल को Earth Engine में अपलोड किया जा सकता है. इसके अलावा, बाहरी इमेज की मदद से ऐसेट बनाई जा सकती हैं.

इमेज

डिफ़ॉल्ट सेटिंग का इस्तेमाल करके, इमेज ऐसेट अपलोड करने के लिए:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

एक से ज़्यादा इनपुट इमेज फ़ाइलें बताने पर, उन्हें एक ही इमेज ऐसेट की टाइल के तौर पर इंटरप्रेट किया जाएगा. Earth Engine में इमेज अपलोड करने के विकल्पों के बारे में ज़्यादा जानने के लिए, इमेज ऐसेट अपलोड करना: ऐडवांस विकल्प देखें.

--pyramiding_policy फ़्लैग का इस्तेमाल करके, पिरामिड रिडक्शन की नीति तय की जा सकती है. इसे mean (डिफ़ॉल्ट), sample, mode, min या max में से किसी एक पर सेट किया जा सकता है. इससे यह कंट्रोल होगा कि Earth Engine, आपकी इमेज के कम रिज़ॉल्यूशन वाले वर्शन का पिरामिड कैसे जनरेट करता है:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

--last_band_alpha का इस्तेमाल करके, यह बताया जा सकता है कि इमेज के लिए मास्क, आखिरी बैंड में मौजूद अल्फ़ा चैनल से लिया जाना चाहिए:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

--nodata_value फ़्लैग का इस्तेमाल करके, कोई नो-डेटा वैल्यू तय की जा सकती है. इससे इमेज में मौजूद, उस वैल्यू वाले सभी पिक्सल मास्क हो जाएंगे:

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

मेटाडेटा की प्रॉपर्टी भी तय की जा सकती हैं, ताकि उन्हें ऐसेट पर सेट किया जा सके. इसके लिए, ऊपर बताई गई asset set कमांड described above में इस्तेमाल किए जाने वाले फ़्लैग का इस्तेमाल करें. इन विकल्पों के बारे में, इमेज मेनिफ़ेस्ट गाइड में भी बताया गया है.

टेबल

Google Cloud Storage से Shapefile, CSV या TFRecord को Earth Engine की टेबल ऐसेट में अपलोड करने के लिए, इनमें से किसी भी कमांड का इस्तेमाल किया जा सकता है:

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord

CSV और TFRecord फ़ाइलों को इंटरप्रेट करने के तरीके से जुड़े कई विकल्प हैं. टेबल अपलोड करने के विकल्पों की पूरी सूची देखने के लिए, टेबल मेनिफ़ेस्ट गाइड पर जाएं या यह कमांड चलाएं:

    earthengine upload table -h

external_image

बाहरी इमेज की मदद से ऐसेट बनाने के लिए, मेनिफ़ेस्ट के साथ upload_image कमांड चलाएं:

earthengine upload external_image --manifest /tmp/foo.json

मेनिफ़ेस्ट का एक उदाहरण यहां दिया गया है:

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

मेनिफ़ेस्ट बनाने के बारे में ज़्यादा जानने के लिए, Cloud GeoTIFF गाइड और इमेज मेनिफ़ेस्ट गाइड देखें.