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

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 Command Line Tool, Google Colab में पहले से इंस्टॉल होता है और इस्तेमाल के लिए तैयार होता है.

पुष्टि करना

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

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

import ee
ee.Authenticate()

कमांड लागू करना

Earth Engine CLI जैसी कमांड लाइन यूटिलिटी चलाने के लिए, आपको एक्सक्लेमेशन मार्क के साथ कमांड कॉल को प्रीपेंड करना होगा.

!earthengine -h

कोई क्लाउड प्रोजेक्ट सेट करना

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

!earthengine --project my-project <command>

इसके अलावा, set_project कमांड का इस्तेमाल करके, सभी earthengine कॉल के लिए डिफ़ॉल्ट प्रोजेक्ट सेट करें. प्रोजेक्ट को क्रेडेंशियल फ़ाइल (~/.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

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

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

    earthengine asset set -p '(string)name=42' 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

क्लाउड की सुविधा का इस्तेमाल करने वाली कमांड चलाने से पहले, इस कमांड की ज़रूरत होती है. उदाहरण के लिए, 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 कमांड ऊपर बताई गई के लिए स्वीकार किए गए फ़्लैग का इस्तेमाल करके, ऐसेट पर सेट की जाने वाली मेटाडेटा प्रॉपर्टी भी तय की जा सकती हैं. इन विकल्पों के बारे में, इमेज मेनिफ़ेस्ट गाइड में भी बताया गया है.

टेबल

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

    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 गाइड और इमेज मेनिफ़ेस्ट गाइड देखें.