কমান্ড লাইন টুল

earthengine টুল হল একটি ইউটিলিটি প্রোগ্রাম যা আপনাকে কমান্ড লাইন থেকে Earth Engine অ্যাসেট ও টাস্ক ম্যানেজ করতে দেয়। আপনি Python API ইনস্টল করলে এটি অটোমেটিক ইনস্টল হয়ে যায়। টুলটি ইনস্টল করা আছে কিনা এবং সঠিকভাবে কাজ করছে কিনা তা চেক করতে, কমান্ড লাইনে নিম্নলিখিত কমান্ডটি টাইপ করুন:

    earthengine

টুলটি সঠিকভাবে ইনস্টল করা হলে, এটি উপলভ্য কমান্ডের একটি সংক্ষিপ্ত সারসংক্ষেপ প্রিন্ট করে। কোনও নির্দিষ্ট কমান্ডের ব্যাপারে সাহায্য পেতে, এটি ব্যবহার করুন:

    earthengine command -h

আপনি প্রথমবার Python API ইনস্টল করার সময়, নিচে উল্লেখ করা authenticate কমান্ড ব্যবহার করে আপনাকে সাইন-ইন করতে হবে। নিম্নলিখিত বিভাগগুলিতে উপলভ্য কমান্ডের ব্যাপারে আরও বিস্তারিত বিবরণ দেওয়া হয়েছে।

পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল

পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল সহ CLI ব্যবহার করতে, পরিষেবা অ্যাকাউন্টের কী সহ JSON ফাইলকে পয়েন্ট করতে service_account_file ফ্ল্যাগ ব্যবহার করুন।

    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 বিকল্পের মাধ্যমে ওভাররাইড না করা পর্যন্ত পরবর্তী কমান্ডের জন্য ব্যবহার করা হবে। প্রতিটি নতুন 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 অ্যাসেটের অ্যাক্সেস কন্ট্রোল লিস্ট (ACL) প্রিন্ট বা আপডেট করে। ACL নিয়ন্ত্রণ করে যে কোনও অ্যাসেট কে পড়তে বা লিখতে পারবে। উদাহরণ:

    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 সাব-কমান্ড ACL-এর JSON বিবরণ প্রিন্ট করে। set সাব-কমান্ড একই JSON ফর্ম্যাটে ফাইলে দেওয়া ACL সেট করে। আপনি get থেকে আউটপুট সেভ করে এবং set-এ প্রদান করে একটি অ্যাসেট থেকে অন্য অ্যাসেটে ACL কপি করতে পারেন।

সেট সাব-কমান্ড দুটি বিশেষ ACL নামও গ্রহণ করে:

  • private: মালিক ছাড়া বাকি সকলের অনুমতি সরিয়ে দেয়।
  • public: সব ব্যবহারকারীকে পড়ার অনুমতি দেয়।

ch সাব-কমান্ড আপনাকে ACL-এ আলাদা আলাদা পরিবর্তন করতে দেয়। রিড পার্মিশন দিতে -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 (অর্থাৎ ১ জানুয়ারি, ১৯৭০-এর মধ্যরাত) থেকে মিলিসেকেন্ডের সংখ্যা দেখায় এবং সরাসরি সংখ্যা হিসেবে বা নিম্নলিখিত ফর্ম্যাটের কোনও একটিতে নির্দিষ্ট করা হতে পারে:

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

টাইম জোন UTC হিসেবে ধরে নেওয়া হয়েছে। আপনি --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 বিকল্পটি নির্দিষ্ট করতে পারেন। নতুন তৈরি করা ফোল্ডার ও ছবিতে ডিফল্ট হিসেবে ব্যক্তিগত ACL থাকে।

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 প্ল্যাটফর্ম মডেল সম্পর্কে এখান থেকে আরও জানুন। সম্পূর্ণ উদাহরণ এখানে দেখুন।

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 সাব-কমান্ড ব্যবহার করুন। নিম্নলিখিত সেটিংস কনফিগার করা যেতে পারে:

যেমন, কোনও প্রোজেক্টের জন্য একসাথে সর্বাধিক ১০টি টাস্ক চালানোর অনুমতি দিতে, প্রোজেক্টটি কনফিগার করতে:

    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 টেবিল অ্যাসেটে 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-এ COG-ব্যাকড অ্যাসেট (API-তে এক্সটার্নাল ইমেজ বলা হয়) হিসেবে ক্লাউড অপ্টিমাইজড GeoTIFF (COG) রেজিস্টার করতে, ম্যানিফেস্ট সহ upload external_image কমান্ড রান করুন:

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

আগে থেকে থাকা অ্যাসেট ওভাররাইট করতে --force যোগ করুন, যেমন, ফাইলের নতুন ভার্সনে এটি পয়েন্ট করতে (COG-ব্যাকড অ্যাসেট আপডেট করা দেখুন)।

একটি ম্যানিফেস্টের উদাহরণ হল:

{
  "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"
}

ম্যানিফেস্ট তৈরি করার ব্যাপারে আরও জানতে COG রেজিস্ট্রেশন গাইড এবং ইমেজ ম্যানিফেস্ট গাইড দেখুন।