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

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

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

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