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
कोई क्लाउड प्रोजेक्ट सेट करना
हर earthengine कमांड के लिए क्लाउड प्रोजेक्ट सेट करने के लिए, --project विकल्प का इस्तेमाल करें.
!earthengine --project my-project <command>
इसके अलावा, set_project कमांड का इस्तेमाल करके, सभी earthengine कॉल के लिए इस्तेमाल किया जाने वाला डिफ़ॉल्ट प्रोजेक्ट सेट करें. प्रोजेक्ट को क्रेडेंशियल फ़ाइल (~/.config/earthengine/credentials) में जोड़ दिया जाएगा. साथ ही, इसका इस्तेमाल बाद के निर्देशों के लिए किया जाएगा. हालांकि, अगर --project
!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"}'
एआई प्लैटफ़ॉर्म के मॉडल के बारे में ज़्यादा जानने के लिए, यहां जाएं. इसका पूरा उदाहरण यहां देखें.
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 सब-कमांड का इस्तेमाल करें. इन सेटिंग को कॉन्फ़िगर किया जा सकता है:
max_concurrent_exports, ताकि प्रोजेक्ट के लिए, एक साथ किए जाने वाले बैच टास्क की ज़्यादा से ज़्यादा संख्या को कंट्रोल किया जा सके- अनुमतियां होनी चाहिए
उदाहरण के लिए, किसी प्रोजेक्ट को इस तरह कॉन्फ़िगर करना कि उसमें एक साथ सिर्फ़ 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
Cloud Storage में Cloud Optimized GeoTIFF (सीओजी) को सीओजी-बैक्ड ऐसेट (एपीआई में बाहरी इमेज कहा जाता है) के तौर पर रजिस्टर करने के लिए, मेनिफ़ेस्ट के साथ upload external_image कमांड चलाएं:
earthengine upload external_image --manifest /tmp/foo.json
किसी मौजूदा ऐसेट को ओवरराइट करने के लिए, --force जोड़ें. उदाहरण के लिए, इसे अपनी फ़ाइल के नए वर्शन पर ले जाने के लिए, सीओजी-आधारित ऐसेट अपडेट करना देखें.
मेनिफ़ेस्ट का एक उदाहरण:
{
"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"
}
मेनिफ़ेस्ट बनाने के बारे में ज़्यादा जानने के लिए, सीओजी रजिस्ट्रेशन गाइड और इमेज मेनिफ़ेस्ट गाइड देखें.