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

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 CLI जैसी कमांड-लाइन सुविधाओं को चलाने के लिए, आपको कमांड कॉल के पहले विस्मयादिबोधक चिह्न का इस्तेमाल करना होगा.

!earthengine -h

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

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

!earthengine --project my-project <command>

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

!earthengine set_project my-project

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

पुष्टि करें

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

    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 को उपलब्ध कराकर, किसी ऐसेट से दूसरी ऐसेट में एसीएल कॉपी किया जा सकता है.

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

  • 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

जिन कमांड के लिए 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 कमांड के साथ काम करते हैं. इन विकल्पों के बारे में, इमेज मेनिफ़ेस्ट की गाइड में भी बताया गया है.

टेबल

Google Cloud Storage से Earth Engine टेबल ऐसेट में शेपफ़ाइल, 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 alpha 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 गाइड और इमेज मेनिफ़ेस्ट गाइड देखें.