earthengine টুল হলো একটি ইউটিলিটি প্রোগ্রাম যা আপনাকে কমান্ড লাইন থেকে আর্থ ইঞ্জিন অ্যাসেট এবং টাস্ক পরিচালনা করতে দেয়। আপনি যখন পাইথন এপিআই ইনস্টল করেন , তখন এটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়। টুলটি ইনস্টল হয়েছে এবং সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে, কমান্ড লাইনে নিম্নলিখিতটি টাইপ করুন:
earthengine
টুলটি সঠিকভাবে ইনস্টল করা থাকলে, এটি উপলব্ধ কমান্ডগুলির একটি সংক্ষিপ্ত সারাংশ প্রিন্ট করে। কোনো নির্দিষ্ট কমান্ড সম্পর্কে সাহায্য পেতে, ব্যবহার করুন:
earthengine command -h
প্রথমবার পাইথন এপিআই ইনস্টল করার সময়, আপনাকে নিচে বর্ণিত authenticate কমান্ডটি ব্যবহার করে সাইন ইন করতে হবে। পরবর্তী বিভাগগুলিতে উপলব্ধ কমান্ডগুলি আরও বিশদভাবে বর্ণনা করা হয়েছে।
পরিষেবা অ্যাকাউন্টের পরিচয়পত্র
সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল সহ CLI ব্যবহার করতে, সার্ভিস অ্যাকাউন্টের কী (key) ধারণকারী একটি JSON ফাইল নির্দেশ করার জন্য service_account_file ফ্ল্যাগটি ব্যবহার করুন।
earthengine --service_account_file=service_account_creds.json
কোলাবে ব্যবহার
আর্থ ইঞ্জিন কমান্ড লাইন টুলটি গুগল কোলাবে আগে থেকেই ইনস্টল করা আছে এবং ব্যবহারের জন্য প্রস্তুত।
প্রমাণীকরণ
প্রতিটি নতুন কোলাব সেশনের জন্য অথবা নিষ্ক্রিয়তার কারণে ভার্চুয়াল মেশিনের মেয়াদ শেষ হয়ে গেলে প্রমাণীকরণ করুন (প্রত্যয়নপত্র একাধিক সেশন জুড়ে সংরক্ষিত থাকে না)।
পাইথন ক্লায়েন্ট লাইব্রেরি ইম্পোর্ট করুন এবং অথেনটিকেশন প্রক্রিয়াটি চালু করতে ee.Authenticate() কল করুন। অথেনটিকেশন সম্পন্ন করতে নির্দেশাবলী অনুসরণ করুন। কোলাবে ডিফল্ট auth_mode হলো colab , অন্যান্য বিকল্পের জন্য অথেনটিকেশন গাইড দেখুন।
import ee
ee.Authenticate()
কমান্ড কার্যকরীকরণ
আর্থ ইঞ্জিন সিএলআই-এর মতো কমান্ড লাইন ইউটিলিটিগুলো চালানোর জন্য, কমান্ড কলের শুরুতে একটি বিস্ময়সূচক চিহ্ন (exclamation point) যোগ করতে হবে।
!earthengine -h
একটি ক্লাউড প্রজেক্ট সেট করুন
প্রতিটি earthengine কমান্ডের জন্য একটি ক্লাউড প্রজেক্ট সেট করতে --project অপশনটি ব্যবহার করুন।
!earthengine --project my-project <command>
বিকল্পভাবে, set_project কমান্ড ব্যবহার করে সমস্ত earthengine কলের জন্য একটি ডিফল্ট প্রজেক্ট সেট করুন। প্রজেক্টটি একটি ক্রেডেনশিয়াল ফাইলে (~/.config/earthengine/credentials) যুক্ত হবে এবং পরবর্তী কমান্ডগুলির জন্য ব্যবহৃত হবে, যদি না এটি অন্য কোনোভাবে পরিবর্তন করা হয়।--project অপশন। প্রতিটি নতুন কোলাব সেশনের জন্য অথবা নিষ্ক্রিয়তার কারণে ভার্চুয়াল মেশিনের মেয়াদ শেষ হয়ে গেলে একটি ডিফল্ট প্রজেক্ট সেট করুন (সেশন জুড়ে ক্রেডেনশিয়াল সংরক্ষিত থাকে না)।
!earthengine set_project my-project
কমান্ড রেফারেন্স
প্রমাণীকরণ
আর্থ ইঞ্জিনে কমান্ড লাইন টুল এবং পাইথন ক্লায়েন্ট লাইব্রেরিকে প্রমাণীকরণ করে। উদাহরণ:
earthengine authenticate
আর্থ ইঞ্জিন ক্লায়েন্টদের প্রমাণীকরণের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে। `earthengine authenticate` কমান্ডটি আপনার ওয়েব ব্রাউজার ব্যবহার করে আপনাকে প্রমাণীকরণ প্রক্রিয়ার মধ্য দিয়ে নিয়ে যাবে।
ডিফল্ট gcloud অথেনটিকেশন মোড ব্যবহার করলে আপনাকে gcloud ইনস্টল করতে হবে। অথেনটিকেশন গাইডে auth_mode প্যারামিটারের মাধ্যমে উপলব্ধ অন্যান্য অথেনটিকেশন মোডগুলো দেখুন।
এসিএল
একটি আর্থ ইঞ্জিন অ্যাসেটের অ্যাক্সেস কন্ট্রোল লিস্ট (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 পারমিশন বাতিল করলে স্বতন্ত্র ব্যবহারকারীদের দেওয়া আপনার অন্য কোনো অতিরিক্ত পারমিশন বাতিল হবে না ।)
সম্পদ
একটি আর্থ ইঞ্জিন অ্যাসেটের সাথে সম্পর্কিত মেটাডেটা প্রিন্ট বা আপডেট করে। উদাহরণ:
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 ফ্ল্যাগ ব্যবহার করে প্রপার্টির নাম সেট করার সময়, প্রপার্টির নাম এবং মানকে একটি সমান চিহ্ন (equals sign) দিয়ে আলাদা করুন। ডেটা টাইপ স্বয়ংক্রিয়ভাবে শনাক্ত করা হয়, অথবা আপনি প্রপার্টির নামের আগে (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
তারিখের প্রোপার্টিগুলো হলো এমন কিছু সংখ্যা যা ইউনিক্স ইপক ( অর্থাৎ , ১লা জানুয়ারী, ১৯৭০-এর মধ্যরাত) থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যাকে প্রকাশ করে এবং এগুলোকে সরাসরি সংখ্যা হিসেবে অথবা নিম্নলিখিত ফর্ম্যাটগুলোর যেকোনো একটিতে নির্দিষ্ট করা যেতে পারে:
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
সিপি
একটি সম্পদের অনুলিপি তৈরি করে। উদাহরণ:
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 থাকে।
এলএস
এক বা একাধিক ফোল্ডার বা সংগ্রহের বিষয়বস্তু তালিকাভুক্ত করে। উদাহরণ:
earthengine ls users/username
-l অপশনটি প্রতিটি অ্যাসেট সম্পর্কে আরও তথ্যসহ একটি বিস্তারিত ফরম্যাটের অনুরোধ করে (বর্তমানে শুধু এর ধরন দেখানো হয়)। আপনি তালিকাভুক্ত প্রতিটি ফোল্ডার বা কালেকশন থেকে আইটেমের সংখ্যা সীমিত করতে --max_items number (বা সংক্ষেপে -m ) নির্দিষ্ট করতে পারেন:
earthengine ls -m 10 projects/my-project/assets/my_large_collection
কোনো আর্গুমেন্ট ছাড়া ls কমান্ড চালালে আপনার মালিকানাধীন শীর্ষ-স্তরের ফোল্ডারগুলোর তালিকা দেখা যাবে।
মডেল
TensorFlow-তে সংরক্ষিত মডেলগুলো পরিবর্তন করার একটি টুল।
model prepare
আর্থ ইঞ্জিনে ব্যবহারের জন্য একটি সংরক্ষিত মডেল প্রস্তুত করুন। বিশেষত, এটি আপনার SavedModel আর্থ ইঞ্জিনের অনুরোধ প্রক্রিয়াকরণের জন্য উপযুক্ত একটি রূপে রূপান্তরিত করে। ( SavedModel সম্পর্কে আরও জানুন ।)
earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'
এআই প্ল্যাটফর্ম মডেলগুলো সম্পর্কে এখানে আরও জানুন। এখানে একটি সম্পূর্ণ উদাহরণ দেখুন।
এমভি
কোনো অ্যাসেট স্থানান্তর বা পুনঃনামকরণ করে। উদাহরণ:
earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id
প্রজেক্ট_কনফিগ
প্রজেক্টের কনফিগারেশন মান নির্ধারণ করে। এই কমান্ডটি ব্যবহার করার আগে, set_project ব্যবহার করে একটি প্রজেক্ট সেট করে নিতে ভুলবেন না।
পেতে
প্রজেক্ট কনফিগারেশন দেখতে, get সাব-কমান্ডটি ব্যবহার করুন:
earthengine alpha project_config get
প্রকল্পের ব্যাচ টাস্ক সেটিংস দেখার অনুমতি আপনার থাকলে, আউটপুটে নিম্নলিখিত বিষয়গুলো থাকবে:
-
maxConcurrentExports: একটি সংখ্যা যা নির্দেশ করে যে প্রদত্ত প্রোজেক্টের জন্য সকল ব্যবহারকারী সর্বোচ্চ কতগুলো ব্যাচ টাস্ক সমান্তরালভাবে চালাতে পারবে। ডিফল্টরূপে, এটি সংশ্লিষ্ট বিলিং অ্যাকাউন্টের সাবস্ক্রিপশন প্ল্যান দ্বারা অনুমোদিত সর্বোচ্চ সংখ্যায় সেট করা থাকে।
এছাড়াও, আপনার যদি প্ল্যান কনফিগারেশন দেখার অনুমতি থাকে, তাহলে আউটপুটে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত থাকবে:
-
planMaxConcurrentExports, একটি সংখ্যা যা নির্দেশ করে যে বিলিং অ্যাকাউন্ট ব্যবহারকারী সমস্ত ব্যবহারকারী এবং প্রোজেক্ট জুড়ে সর্বাধিক কতগুলি ব্যাচ টাস্ক সমান্তরালভাবে চলতে পারে।
সেট
প্রজেক্টের কনফিগারেশন আপডেট করতে, set সাব-কমান্ডটি ব্যবহার করুন। নিম্নলিখিত সেটিংস কনফিগার করা যেতে পারে:
-
max_concurrent_exports, যা প্রোজেক্টের সর্বোচ্চ ব্যাচ টাস্ক প্যারালালিজম নিয়ন্ত্রণ করে।- সঠিক অনুমতির প্রয়োজন
উদাহরণস্বরূপ, কোনো নির্দিষ্ট প্রজেক্টের জন্য শুধুমাত্র ১০টি টাস্ককে সমান্তরালভাবে চালানোর অনুমতি দিতে প্রজেক্টটি কনফিগার করতে:
earthengine alpha project_config set --max_concurrent_exports=10
আউটপুটে আপডেট করা প্রজেক্ট কনফিগারেশন প্রদর্শিত হয়, যা get আউটপুটের অনুরূপ।
ব্যাচ টাস্ক প্যারালালিজম সম্পর্কে আরও তথ্যের জন্য, আর্থ ইঞ্জিন কোটা পৃষ্ঠাটি দেখুন।
আরএম
এক বা একাধিক অ্যাসেট মুছে ফেলে। উদাহরণ:
earthengine rm projects/my-project/assets/asset_id
earthengine rm -r projects/my-project/assets/folder_id
আপনি কোনো ফোল্ডার বা কালেকশনের সমস্ত কন্টেন্ট রিকার্সিভলি ডিলিট করতে -r ফ্ল্যাগটি ব্যবহার করতে পারেন। একাধিক অ্যাসেট ডিলিট করার সময় সুরক্ষার জন্য, আপনি --dry_run ফ্ল্যাগটি ব্যবহার করে আসলে কিছুই ডিলিট না করে, ঠিক কী কী ডিলিট হবে তা যাচাই করতে পারেন।
সেট_প্রজেক্ট
গুগল ক্লাউড প্রজেক্টটি নির্ধারণ করে, যার মাধ্যমে কম্পিউটেশন অনুরোধগুলো পাঠানো হয়।
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 সাব-কমান্ডটি এক বা একাধিক চলমান টাস্ক বাতিল করে।
আপলোড
গুগল ক্লাউড স্টোরেজ থেকে আর্থ ইঞ্জিনে ছবি বা টেবিল আপলোড করে, অথবা বাহ্যিক ছবির ওপর ভিত্তি করে অ্যাসেট তৈরি করে।
ছবি
ডিফল্ট সেটিংস ব্যবহার করে একটি ইমেজ অ্যাসেট আপলোড করতে:
earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif
আপনি যদি একাধিক ইনপুট ইমেজ ফাইল নির্দিষ্ট করেন, তাহলে সেগুলোকে একটি একক ইমেজ অ্যাসেটের টাইল হিসেবে গণ্য করা হবে। আর্থ ইঞ্জিনে ইমেজ আপলোড করার বিকল্পগুলো সম্পর্কে আপনি "ইমেজ অ্যাসেট আপলোড করা: উন্নত বিকল্পসমূহ" অংশে আরও জানতে পারবেন।
আপনি --pyramiding_policy ফ্ল্যাগ ব্যবহার করে পিরামিড হ্রাস নীতি নির্দিষ্ট করতে পারেন, যা mean (ডিফল্ট), sample , mode , min , বা max এর যেকোনো একটিতে সেট করা যেতে পারে। এটি নিয়ন্ত্রণ করবে যে আর্থ ইঞ্জিন কীভাবে আপনার ছবির নিম্ন-রেজোলিউশনের সংস্করণগুলির পিরামিড তৈরি করবে:
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 কমান্ড দ্বারা গৃহীত ফ্ল্যাগগুলো ব্যবহার করে আপনি অ্যাসেটে সেট করার জন্য মেটাডেটা প্রোপার্টিগুলোও নির্দিষ্ট করতে পারেন। এই অপশনগুলো ইমেজ ম্যানিফেস্ট গাইডেও বর্ণনা করা আছে।
টেবিল
গুগল ক্লাউড স্টোরেজ থেকে আর্থ ইঞ্জিন টেবিল অ্যাসেটে একটি শেপফাইল, 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
বাহ্যিক_ছবি
বাহ্যিক ইমেজ দ্বারা সমর্থিত একটি অ্যাসেট তৈরি করতে, একটি ম্যানিফেস্ট সহ 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"
}
ম্যানিফেস্ট তৈরির বিষয়ে আরও বিস্তারিত জানতে ক্লাউড জিওটিফ গাইড এবং ইমেজ ম্যানিফেস্ট গাইড দেখুন।