Google Earth Engine আপনাকে নিজের Google Cloud Storage (GCS) বাকেটে সেভ করা রাস্টার ডেটা নিয়ে কাজ করতে দেয়। ক্লাউড অপ্টিমাইজড GeoTIFF (COG) ব্যবহার করে, আপনি Earth Engine-এ সরাসরি ডেটা অ্যাক্সেস ও বিশ্লেষণ করতে পারবেন। এর জন্য Earth Engine-এর অ্যাসেট স্টোরে পিক্সেল ইনজেস্ট করতে হবে না।
এই প্রাথমিকভাবে ক্লাউড প্রযুক্তির উপর নির্ভরশীল পদ্ধতিটি বেশ কিছু সুবিধা প্রদান করে, বিশেষ করে বড় ডেটাসেট ম্যানেজ করা বা Earth Engine-কে আরও বিস্তৃত Google Cloud ওয়ার্কফ্লো বা এক্সটার্নাল টুল এবং প্ল্যাটফর্মে ইন্টিগ্রেট করার জন্য।
Cloud Storage এবং COG কেন ব্যবহার করবেন?
- ফ্লেক্সিবিলিটি ও ইন্টারঅপারেবিলিটি: আপনার ডেটা স্ট্যান্ডার্ড Cloud Storage বাকেটে রাখুন, যেখানে অন্যান্য টুল ও পরিষেবা এটি অ্যাক্সেস করতে পারবে। আপনি সরাসরি ডেটা আপলোড করুন বা Earth Engine থেকে এক্সপোর্ট করুন, Cloud Storage, Earth Engine এবং এক্সটার্নাল ওয়ার্কফ্লো, দু'টির জন্যই একটিমাত্র সোর্স অফ ট্রুথ হিসেবে কাজ করে।
- ডেটা কন্ট্রোল ও ইগ্রেস: Cloud Storage-এ ডেটা সেভ করা হলে, স্ট্যান্ডার্ড অবজেক্ট স্টোরেজ ম্যানেজমেন্ট সংক্রান্ত সুবিধা পাওয়া যায়। এর ফলে আপনি Cloud Storage ফিচার যেমন রিকোয়েস্ট পেমেন্ট বা সর্বজনীন বাকেট ব্যবহার করে আপনার ডেটা ডাউনলোড, মাইগ্রেট বা শেয়ার করতে পারবেন এবং স্ট্যান্ডার্ড Cloud IAM ব্যবহার করে অ্যাক্সেস ম্যানেজ করতে পারবেন।
- ফ্লেক্সিবল স্কেলিং: Earth Engine-এর স্টোরেজ সীমা এড়িয়ে চলুন। ক্লাউড স্টোরেজ, পেটা বাইট স্কেলে ভার্চুয়ালি আনলিমিটেড, সেল্ফ-সার্ভিস স্টোরেজ স্কেলিং প্রদান করে।
- ইনজেশনের জন্য অপেক্ষা করতে হয় না: COG রেজিস্টার করার প্রসেস দ্রুত সম্পন্ন হয় কারণ Earth Engine, ইন্ডেক্সিং ও যাচাইকরণের জন্য শুধুমাত্র ফাইল হেডার থেকে মেটাডেটা (যেমন, প্রজেকশন ও ডাইমেনশন) পড়ে। আসল পিক্সেল ডেটা Cloud Storage-এ থাকে এবং কম্পিউটেশনের সময় অন-ডিমান্ড পড়া হয়, যার ফলে আলাদা করে ইনজেশন টাস্কের প্রয়োজন হয় না।
Earth Engine-এ COG ওয়ার্কফ্লো
Earth Engine, Cloud Storage-এ COG-এর সাথে দ্বিমুখী ওয়ার্কফ্লো সাপোর্ট করে: আপনি সরাসরি GCS থেকে Earth Engine-এ COG পড়তে পারবেন এবং Earth Engine থেকে সরাসরি GCS-এ COG হিসেবে কম্পিউটেশন ফলাফল লিখতে পারবেন।
Cloud Storage থেকে COG পড়া
GCS-হোস্ট করা COG-কে Earth Engine-এ নিয়ে আসতে, আপনার কাছে দুটি বিকল্প আছে:
সরাসরি লোড করা (
ee.Image.loadGeoTIFF): GCS URI ব্যবহার করে সরাসরি একটি ছবি লোড করুন। দ্রুত পরীক্ষা, অ্যাড-হক বিশ্লেষণ বা সাময়িক ডেটার জন্য এটি সবচেয়ে ভালো:জাভাস্ক্রিপ্ট
var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');Python
image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')সম্পূর্ণ উদাহরণের জন্য, Cloud GeoTIFFs থেকে ছবি দেখুন।
রেজিস্টার করা অ্যাসেট: আপলোড ম্যানিফেস্ট ব্যবহার করে এক বা একাধিক COG-কে Earth Engine অ্যাসেট হিসেবে রেজিস্টার করুন (COG রেজিস্ট্রেশন গাইড দেখুন)। প্রোডাকশন ওয়ার্কফ্লোর জন্য এটিই সাজেস্ট করা পাথ, বিশেষ করে ছবি সংগ্রহ তৈরি করার সময়।
| ফিচার | সরাসরি লোড করা (loadGeoTIFF) |
রেজিস্টার করা অ্যাসেট (ম্যানিফেস্ট) |
|---|---|---|
| সেট-আপ | কিছুই না (শুধু GCS URI) | মেনিফেস্ট (Python ক্লায়েন্ট, CLI বা REST) |
| পারফর্ম্যান্স | স্ট্যান্ডার্ড (পড়ার সময় হেডার পড়ে) | অপ্টিমাইজ করা (তৈরি করার সময় ইন্ডেক্স করা হয়েছে) |
| ম্যানেজমেন্ট | কোনও অ্যাসেট তৈরি করা হয়নি | অ্যাসেট গণনা কোটার উপর প্রভাব ফেলে, স্টোরেজের উপর নয়। |
| ব্যবহারের ক্ষেত্র | প্রোটোটাইপিং, অ্যাড-হক বিশ্লেষণ | দ্রুত রিড করার প্রয়োজন হয় এমন প্রোডাকশন ওয়ার্কফ্লো। |
Cloud Storage-এ COG লেখা হচ্ছে
আপনার Cloud Storage বাকেটে COG হিসেবে Earth Engine কম্পিউটেশন ফলাফল সেভ করতে,
Export.image.toCloudStorage
ব্যাচ এক্সপোর্ট ফাংশন ব্যবহার করুন (ছবি
এক্সপোর্ট করা দেখুন) এবং
formatOptions-এ cloudOptimized প্যারামিটার true-এ সেট করুন। এটি Earth Engine-কে ছবি কম্পাইল করতে এবং সম্পূর্ণভাবে COG-এর সাথে মানানসই হিসেবে আপনার GCS বাকেটে সরাসরি লিখতে বলে।
Cloud Storage বাকেটের যেসব লোকেশনে কাজ করে
Earth Engine যাতে আপনার Cloud Storage বাকেট অ্যাক্সেস করতে পারে, তার জন্য বাকেটটি অবশ্যই নিম্নলিখিত ডেটা সেন্টার অঞ্চল বা মাল্টি-অঞ্চলের মধ্যে কোনও একটিতে অবস্থিত হতে হবে:
usমাল্টি-রিজিয়নus-central1অন্তর্ভুক্ত আছে এমন যেকোনও মার্কিন যুক্তরাষ্ট্রের দ্বৈত অঞ্চলus-central1অঞ্চল
আপনার বাকেট অন্য কোনও আঞ্চলিক ডেটা সেন্টারে থাকলে, Earth Engine রেজিস্ট্রেশন ও পড়ার অনুরোধ বাতিল করে দেবে। Earth Engine শুধুমাত্র Google Cloud Storage বাকেটে সেভ করা COG অ্যাক্সেস করে। এক্সটার্নাল ক্লাউড স্টোরেজ প্রদানকারী এবং জেনেরিক HTTP URL কাজ করে না।
Earth Engine COG এক্সপোর্ট স্পেসিফিকেশন
Earth Engine থেকে
Export.image.toCloudStorage
ব্যবহার করে cloudOptimized: true সহ formatOptions-এ অ্যানালিটিক ফলাফল এক্সপোর্ট করার সময়, Earth Engine-এর বিল্ট-ইন এক্সপোর্টার
নিম্নলিখিত স্ট্যান্ডার্ড অটোমেটিক প্রয়োগ করে:
- ফাইল স্ট্রাকচার: ইন্টার্নাল টাইলিং (
TILED=YES) সহ BigTIFF (BIGTIFF=YES) তৈরি করে এবং সব ওভারভিউ ফাইলের শুরুতে কপি করে। - অটোমেটিক ওভারভিউ: আউটপুট র্যাস্টার ডাইমেনশন ৫১২x৫১২ পিক্সেল
বা তার চেয়ে বড় হলে, Earth Engine অটোমেটিক পাওয়ার-অফ-টু
ওভারভিউয়ের (
[2, 4, 8, 16, 32]) পাঁচটি লেভেল তৈরি করে। Earth Engine আউটপুট পিক্সেল ডেটা টাইপের উপর ভিত্তি করে ডায়নামিক ওভারভিউ রিস্যাম্পলিং পদ্ধতি বেছে নেয়: ফ্লোটিং-পয়েন্ট ছবির জন্য কিউবিক রিস্যাম্পলিং এবং অন্যান্য সব পূর্ণসংখ্যা বা ডিসক্রিট ছবির জন্য নিয়ারেস্ট-নেইবার রিস্যাম্পলিং। - ডিফল্ট কম্প্রেশন ও টাইলিং: Earth Engine ২৫৬x২৫৬
পিক্সেল ব্লক টাইলিং ও LZW কম্প্রেশন (
COMPRESS=LZW) সহ COG এক্সপোর্ট করে। কম্প্রেশন ও টাইলের ডাইমেনশনformatOptions-এ কাস্টমাইজ করা যায় না। - অটোমেটিক শার্ডিং: এক্সপোর্ট করা রাস্টার বড় হলে (৪ GiB-এর বেশি
কম্প্রেস করা হয়নি), Earth Engine অটোমেটিক এক্সপোর্ট করা ডেটাকে একাধিক
স্পেশিয়াল টাইলে ভেঙে দেয়, যেগুলির নাম
baseFilename-yMin-xMin(দেখুন বড় ফাইল এক্সপোর্ট করা)। - শার্ডিং সংক্রান্ত সীমা ওভাররাইড করা: বড় রাস্টার (সর্বাধিক হার্ড সিলিং
১৬ জিবি আনকমপ্রেসড এবং প্রতি এজে ১৩১,০৭২ পিক্সেল) শ্ডিং না করেই
সিঙ্গেল ফাইল হিসেবে এক্সপোর্ট করতে,
formatOptions-এর মধ্যেfileDimensionsনির্দিষ্ট করুন। প্রতিটি ডাইমেনশন অবশ্যই টাইলের সাইজের পজিটিভ পূর্ণ সংখ্যায় গুণিতক হতে হবে (যেমন, ডিফল্ট হিসেবে ২৫৬[65536, 65536])। কারণ,fileDimensionsআউটপুট বাউন্ডিং বক্সের পরিবর্তে সর্বাধিক ফাইল ডাইমেনশন সেট করে, তাই বড় সিলিং পাস করলে এক্সপোর্টকে একটি ফাইলে বাধ্য করা হয় এবং এর জন্য সঠিক গ্রিড ক্যালকুলেশনের প্রয়োজন হয় না। এছাড়াও, আপনিskipEmptyFiles: trueপাস করতে পারেন যাতে খালি ব্যাকগ্রাউন্ড টাইল তৈরি না হয়। - অপ্টিমাইজেশন ট্রেড-অফ: বড় এক্সপোর্ট কনফিগার করার সময়, ফাইলের সংখ্যা ও এক্সপোর্ট স্পিডের মধ্যে
ট্রেড-অফ মূল্যায়ন করুন। ছোট সাইজ নির্দিষ্ট করলে
fileDimensionsবাshardSizeআরও বেশি ফাইল ফ্র্যাগমেন্ট তৈরি হয়, কিন্তু ব্যাকএন্ড ওয়ার্কারদের মধ্যে প্যারালাল প্রসেসিং সর্বাধিক হয়, এর ফলে এক্সপোর্ট কমপ্লিট হওয়ার সময় কমে যায়। বিপরীতভাবে, একটি বড় ফাইল তৈরি করার জন্য সীমা ওভাররাইড করলে ফাইল ম্যানেজমেন্ট এবং ডেটা শেয়ারিং সহজ হয়, কিন্তু একক-ফাইল অ্যাসেম্বলি এবং I/O বাধার কারণে এক্সপোর্ট এক্সিকিউশন টাইম বাড়তে পারে। খুব বড় সিঙ্গেল-ফাইল COG এক্সপোর্ট ১৬ GiB আনকমপ্রেসড সীমার কাছাকাছি পৌঁছে গেলে (বিশেষ করে যেসব ছবি ভালভাবে কমপ্রেস করা যায় না) ওভারভিউ ও COG অ্যাসেম্বলি চলাকালীন অস্থায়ী স্টোরেজ ক্ষমতাও অতিক্রম করে যেতে পারে; এক্সপোর্ট করা না গেলে, ছোট ফাইলে শার্ডিং করার কথা অথবা বাইরে থেকে স্ট্যান্ডার্ড GeoTIFF এক্সপোর্টে কনভার্ট করার কথা বিবেচনা করুন।
Earth Engine-এর বাইরে COG তৈরি করা কাস্টমাইজ করা
বেশিরভাগ ওয়ার্কফ্লোর জন্য ব্যবহার করার জন্য প্রস্তুত COG তৈরি করার সবচেয়ে সহজ উপায় হল cloudOptimized: true-এর মাধ্যমে সরাসরি এক্সপোর্ট করা, এছাড়াও আপনি স্ট্যান্ডার্ড GeoTIFF (cloudOptimized: false, ডিফল্ট) এক্সপোর্ট করতে পারেন এবং
GDAL-এর মতো এক্সটার্নাল টুল ব্যবহার করে নিজেই এটিকে COG-এ কনভার্ট করতে পারেন। দুটি ধাপে এক্সপোর্ট ও কনভার্সন ওয়ার্কফ্লো
প্রয়োজন হতে পারে যখন আপনাকে:
- কম্প্রেশন ও লেআউট কাস্টমাইজ করা: আপনার ডেটাসেটের জন্য ব্লক সাইজ (যেমন
512x512), প্রেডিক্টর, ওভারভিউ রিস্যাম্পলিং পদ্ধতি বা কম্প্রেশন কোডেক (যেমনZSTD) কাস্টমাইজ করুন (আপনার COG প্রস্তুত করুন দেখুন)। - বিশাল আকারের সিঙ্গল-ফাইল এক্সপোর্ট করার সময় ক্যাপাসিটি সংক্রান্ত সমস্যা এড়ানো: এক্সপোর্ট করার সময় ওভারভিউ তৈরি করা এবং COG লেআউট রিরাইট করা এড়িয়ে গেলে মেমরি এবং অস্থায়ী স্টোরেজ ওভারহেড কমে যায়, যার ফলে খুব বড় আকারের সিঙ্গল-ফাইল এক্সপোর্ট করার সময় ক্যাপাসিটি সংক্রান্ত সমস্যা হওয়ার সম্ভাবনা কমে যায়।
- Earth Engine এক্সপোর্ট এক্সিকিউশন টাইম কমানো: আপনার নিজস্ব কম্পিউট এনভায়রনমেন্টে ওভারভিউ বিল্ডিং ও COG ফর্ম্যাটিং অফলোড করলে Earth Engine এক্সপোর্ট ফেজ ছোট হয়ে যায়।
খরচ সংক্রান্ত বিবেচনা ও স্টোরেজ ক্লাস
রেজিস্টার করা COG অ্যাসেট বিশ্লেষণ করার সময়, Earth Engine থেকে রিড করলে আপনার Google Cloud প্রোজেক্টে Cloud Storage রিড অপারেশন বা ডেটা রিট্রিভালের চার্জ লাগে না।
Cloud Storage-এর মাধ্যমে আপনাকে মূলত স্ট্যান্ডার্ড মাসিক অ্যাট-রেস্ট ডেটা স্টোরেজ (জিবি/মাস) এবং যেকোনও এক্সটার্নাল ক্লায়েন্ট ডেটা ট্রান্সফার বা নেটওয়ার্ক ইগ্রেস ফি (আপনার বাকেট লোকেশন ও ক্লায়েন্ট নেটওয়ার্কিং কনফিগারেশনের উপর নির্ভর করে) অনুযায়ী বিল করা হয়।
স্টোরেজ ক্লাস সংক্রান্ত সাজেশন
- স্ট্যান্ডার্ড স্টোরেজ (সাজেস্ট করা): অ্যাক্টিভ Earth Engine ওয়ার্কফ্লোর জন্য স্ট্যান্ডার্ড স্টোরেজ সবচেয়ে উপযুক্ত। কারণ এতে কোনও ন্যূনতম স্টোরেজ সময়কালের নিয়ম নেই, আপনি তাড়াতাড়ি মুছে ফেলার জরিমানা ছাড়াই অস্থায়ী COG অবাধে ওভাররাইট, আপডেট বা মুছে ফেলতে পারেন। এছাড়াও, আপনি বা আপনার সহযোগীরা যদি Earth Engine-এর বাইরে ডেস্কটপ GIS সফ্টওয়্যার, GDAL স্ক্রিপ্ট বা মেশিন লার্নিং নোটবুক ব্যবহার করে বাকেট অ্যাক্সেস করেন, তাহলে স্ট্যান্ডার্ড স্টোরেজের জন্য কোনও রিটেল রিট্রিভাল সারচার্জ দিতে হয় না।
- নিয়ারলাইন, কোল্ডলাইন ও আর্কাইভ স্টোরেজ: সব Cloud Storage ক্লাস স্ট্যান্ডার্ড স্টোরেজের মতো একই কম-লেটেন্সি অ্যাক্সেস ও থ্রুপুট প্রদান করে, তাই Earth Engine-এ তুলনামূলকভাবে কম অ্যাক্সেস করা স্টোরেজ টিয়ার ব্যবহার করার সময় রিড পারফর্ম্যান্সের ক্ষেত্রে কোনও সমস্যা হয় না। Earth Engine কম্পিউটেশন রিটেল ডেটা রিট্রিভালের ফি মূল্যায়ন না করেই এইসব টিয়ার পড়তে পারে, Cloud Storage রিটেল নিয়ম স্টোরেজের কঠোর ন্যূনতম সময়সীমা (Nearline-এর জন্য ৩০ দিন, Coldline-এর জন্য ৯০ দিন, Archive-এর জন্য ৩৬৫ দিন) প্রয়োগ করে। ফাইল ন্যূনতম সময়সীমার আগে পরিবর্তন বা মুছে দিলে আগে মুছে দেওয়ার জন্য সারচার্জ দিতে হয়। এছাড়াও, যেকোনও এক্সটার্নাল ক্লায়েন্ট টুল থেকে কোল্ড অবজেক্ট অ্যাক্সেস করলে, ডেটা ফিরিয়ে আনার জন্য অতিরিক্ত চার্জ দিতে হয়।
রিটেল প্রাইসিং ও ন্যূনতম সময়সীমা সংক্রান্ত নীতি সম্পর্কে বিস্তারিত জানতে, Google Cloud Storage-এর প্রাইসিং গাইড দেখুন।
হাই-লেভেল ওয়ার্কফ্লো
Earth Engine-এ COG ব্যবহার করার সাধারণ ওয়ার্কফ্লোতে নিম্নলিখিত ধাপগুলি অন্তর্ভুক্ত থাকে:
এক্সটার্নাল ডেটা ইমপোর্ট করার জন্য:
- অপ্টিমাইজ করা: এক্সটার্নাল টুল (যেমন, GDAL, লোকাল ওয়ার্কস্টেশন স্ক্রিপ্ট বা ক্লাউড প্রসেসিং পাইপলাইন) ব্যবহার করে আপনার র্যাস্টার ফাইলকে COG ফর্ম্যাটে কনভার্ট করুন ।
- আপলোড: COGs-কে
us-central1-এ অবস্থিত কাজ করে এমন Cloud Storage বা মার্কিন যুক্তরাষ্ট্রের মাল্টি-রিজিয়ন বাকেটে আপলোড করুন। - অনুমতি: আপনার এবং প্রোজেক্টের যেকোনও কোলাবরেটরের কাছে ফাইলে Cloud Storage রিড অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন (COG অনুমতি দেখুন)।
- রেজিস্টার করা: COG-কে Earth Engine অ্যাসেট হিসেবে রেজিস্টার করতে Python ক্লায়েন্ট লাইব্রেরি,
earthengineকমান্ড-লাইন টুল বা REST API ব্যবহার করুন (COG রেজিস্ট্রেশন দেখুন)।
ফলাফল এক্সপোর্ট করার জন্য:
- এক্সপোর্ট করা: Earth Engine থেকে Cloud Storage-এ
cloudOptimizedtrueহিসেবে সেট করা একটি ব্যাচ এক্সপোর্ট রান করান (ছবি এক্সপোর্ট করা দেখুন)। - রেজিস্টার (ঐচ্ছিক): আরও বিশ্লেষণের জন্য এক্সপোর্ট করা COG আবার Earth Engine-এ নতুন অ্যাসেট হিসেবে রেজিস্টার করুন (COG রেজিস্ট্রেশন দেখুন)।
শুরু করার জন্য প্রস্তুত? আপনার প্রথম অ্যাসেট রেজিস্টার করতে, বিস্তারিত COG রেজিস্ট্রেশন গাইড অনুসরণ করুন।