ছবির সংগ্রহ বলতে Earth Engine-এর ছবির সেটকে বোঝায়। যেমন, Landsat 8-এর সব ছবির
কালেকশন হল একটি ee.ImageCollection। আপনি যে SRTM ছবি নিয়ে কাজ করছেন, সেটির মতো ছবির সংগ্রহেরও একটি আইডি থাকে। সিঙ্গেল ইমেজের মতো,
আপনি কোড এডিটর থেকে Earth Engine ডেটা ক্যাটালগ
সার্চ করে এবং ডেটাসেটের বিবরণ পৃষ্ঠা দেখে
ইমেজ কালেকশনের আইডি খুঁজে পেতে পারেন। যেমন,
'landsat 8 toa' সার্চ করে প্রথম ফলাফলে ক্লিক করুন, এটি
USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance ডেটাসেটের সাথে সম্পর্কিত হওয়া উচিত।
ইমপোর্ট করুন বোতাম ব্যবহার করে সেই ডেটাসেট ইমপোর্ট করুন এবং সেটির নাম পরিবর্তন করে l8 করুন অথবা আইডিটি
ইমেজ কালেকশন কনস্ট্রাক্টরে কপি করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
ছবির সংগ্রহ ফিল্টার করা
মনে রাখবেন, এই সংগ্রহে সারা পৃথিবীর প্রতিটি Landsat 8 দৃশ্য
সংগ্রহ করা হয়েছে। প্রায়শই, অ্যালগরিদম পরীক্ষা করার জন্য একটি ছবি বা ছবির সাবসেট এক্সট্র্যাক্ট করা
উপযোগী হয়। সময় বা স্পেস অনুযায়ী সংগ্রহ সীমিত করার উপায় হল
এটি ফিল্টার করা। যেমন, কোনও নির্দিষ্ট লোকেশন কভার করে এমন ছবি দিয়ে কালেকশন ফিল্টার করতে, প্রথমে জিওমেট্রি ড্রয়িং টুল ব্যবহার করে একটি পয়েন্ট (বা লাইন বা পলিগন) দিয়ে
আপনার আগ্রহের জায়গাটি নির্দিষ্ট করুন। আপনার আগ্রহের এলাকায় প্যান করুন, জিওমেট্রি ইমপোর্ট (আপনার কাছে আগে থেকেই এক বা একাধিক জিওমেট্রি সংজ্ঞায়িত থাকলে) বিকল্পের উপর মাউস নিয়ে যান এবং +নতুন লেয়ার (আপনার কাছে কোনও ইমপোর্ট না থাকলে, পরবর্তী ধাপে যান) বিকল্পে ক্লিক করুন। পয়েন্ট ড্রয়িং টুল (
)
ব্যবহার করে আপনার আগ্রহের জায়গায়
একটি পয়েন্ট তৈরি করুন। ইমপোর্ট point-এর নাম দিন। এখন, l8 সংগ্রহ ফিল্টার করুন
যাতে শুধুমাত্র সেইসব ছবি পাওয়া যায় যেগুলি পয়েন্টকে ছেদ করে, তারপর দ্বিতীয় ফিল্টার যোগ করুন
যাতে সংগ্রহ শুধুমাত্র ২০১৫ সালে তোলা ছবির মধ্যে সীমিত থাকে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var spatialFiltered = l8.filterBounds(point); print('spatialFiltered', spatialFiltered); var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31'); print('temporalFiltered', temporalFiltered);
এখানে, filterBounds() এবং filterDate() হল ইমেজ সংগ্রহের আরও সাধারণ filter() পদ্ধতির শর্টকাট পদ্ধতি, যা একটি ee.Filter()-কে এর আর্গুমেন্ট হিসেবে গ্রহণ করে। এইসব পদ্ধতি সম্পর্কে আরও জানতে কোড এডিটরের Docs ট্যাব
এক্সপ্লোর করুন। filterBounds()-এর আর্গুমেন্ট
হল আপনার ডিজিটাইজ করা পয়েন্ট এবং filterDate()-এর আর্গুমেন্ট হল দুটি তারিখ,
যা স্ট্রিং হিসেবে প্রকাশ করা হয়।
মনে রাখবেন যে আপনি ফিল্টার করা সংগ্রহ print() করতে পারবেন। আপনি একসাথে ৫০০০-এর বেশি আইটেম প্রিন্ট করতে পারবেন না, তাই আপনি, উদাহরণস্বরূপ, সম্পূর্ণ l8
কালেকশন প্রিন্ট করতে পারবেন না। print() পদ্ধতি প্রয়োগ করার পরে, আপনি কনসোলে প্রিন্ট করা কালেকশন
পরীক্ষা করতে পারবেন। মনে রাখবেন যে আপনি যখন জিপি
() ব্যবহার করে
ImageCollection
বড় করেন, তারপর features-এর
তালিকা বড় করেন, তখন আপনি ছবির একটি তালিকা দেখতে পাবেন, যার প্রতিটিও
বড় করে দেখা ও পরীক্ষা করা যেতে পারে। এটি কোনও একটি ছবির আইডি খুঁজে পাওয়ার একটি উপায়। বিশ্লেষণের জন্য স্বতন্ত্র ছবি পাওয়ার আরেকটি,
আরও প্রোগ্রাম্যাটিক উপায় হল, কোনও মেটাডেটা প্রপার্টির সাপেক্ষে সবচেয়ে সাম্প্রতিক, সবচেয়ে পুরনো বা সবচেয়ে উপযুক্ত ছবি পাওয়ার জন্য
কালেকশন সাজানো। যেমন, প্রিন্ট করা ছবির সংগ্রহে ছবির অবজেক্টগুলি পরীক্ষা করে,
আপনি হয়ত CLOUD_COVER নামে একটি মেটাডেটা প্রপার্টি লক্ষ্য করেছেন। আপনি
সেই প্রপার্টি ব্যবহার করে আপনার আগ্রহের এলাকায় ২০১৫ সালে সবচেয়ে কম মেঘাচ্ছন্ন ছবি পেতে পারেন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// This will sort from least to most cloudy. var sorted = temporalFiltered.sort('CLOUD_COVER'); // Get the first (least cloudy) image. var scene = sorted.first();
আপনি এখন ছবি দেখানোর জন্য প্রস্তুত!
ডিগ্রেশন: RGB ছবি দেখানো হচ্ছে
কোনও ম্যাপে মাল্টি-ব্যান্ড ছবি যোগ করা হলে, Earth Engine ছবির প্রথম তিনটি ব্যান্ড বেছে নেয় এবং
সেগুলিকে ডিফল্ট হিসেবে লাল, সবুজ ও নীল রঙে দেখায়, ডেটার ধরন অনুযায়ী সেগুলিকে স্ট্রেচ করে, যেমন আগে
বর্ণনা করা হয়েছে। সাধারণত, এটি কাজ করবে না। যেমন, আপনি যদি ম্যাপে Landsat ছবি
(আগের উদাহরণের scene) যোগ করেন, তাহলে ফলাফল সন্তোষজনক হবে না:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.centerObject(scene, 9); Map.addLayer(scene, {}, 'default RGB');
মনে রাখবেন, প্রথমে ম্যাপটি ৯ জুম স্কেলে ছবির কেন্দ্রে থাকে। তারপর, visParams প্যারামিটারের জন্য
ছবিটি খালি অবজেক্ট ({}) সহ দেখানো হয়
(বিস্তারিত জানতে Map.addLayer() ডকুমেন্ট দেখুন)। এর ফলে, ছবিটি
ডিফল্ট ভিজ্যুয়ালাইজেশনের সাথে দেখানো হয়: প্রথম তিনটি ব্যান্ড যথাক্রমে R, G, B-তে ম্যাপ করা হয়,
এবং [0, 1]-এ প্রসারিত করা হয় কারণ ব্যান্ডগুলি হল float ডেটা টাইপ। এর অর্থ হল, উপকূলবর্তী অ্যারোসল ব্যান্ড ('B1') লাল রঙে, নীল ব্যান্ড ('B2') সবুজ রঙে
এবং সবুজ ব্যান্ড ('B3') নীল রঙে রেন্ডার করা হয়। ছবিটিকে ট্রু-কালার কম্পোজিট হিসেবে রেন্ডার করতে,
আপনাকে Earth Engine-কে বলতে হবে যাতে R, G এবং B-এর জন্য যথাক্রমে Landsat 8 ব্যান্ড 'B4', 'B3'
এবং 'B2' ব্যবহার করে। visParams অবজেক্টের bands প্রপার্টির সাথে কোন ব্যান্ড ব্যবহার করতে হবে তা নির্দিষ্ট করুন। Landsat ব্যান্ড সম্পর্কে আরও জানুন
এই
রেফারেন্স থেকে।
এছাড়াও, আপনাকে min এবং max-এর এমন মান দিতে হবে যা
পৃথিবীর পৃষ্ঠের সাধারণ টার্গেট থেকে প্রতিফলন দেখানোর জন্য উপযুক্ত। যদিও প্রতিটি ব্যান্ডের জন্য আলাদা আলাদা মান নির্দিষ্ট করতে তালিকা ব্যবহার করা যেতে পারে, এখানে 0.3-কে max হিসেবে নির্দিষ্ট করা এবং min প্যারামিটারের জন্য
ডিফল্ট মান শূন্য ব্যবহার করাই যথেষ্ট। ভিজ্যুয়ালাইজেশন প্যারামিটারগুলিকে একটি অবজেক্টে একত্রিত করা এবং
প্রদর্শন করা:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(scene, visParams, 'true-color composite');
ফলাফলটি ৫ নম্বর ছবির মতো দেখতে হবে। মনে রাখবেন যে এই কোডটি ভবিষ্যতে সম্ভাব্য ব্যবহারের জন্য একটি ভেরিয়েবলে ভিজ্যুয়ালাইজেশন প্যারামিটারের অবজেক্ট অ্যাসাইন করে। আপনি শীঘ্রই দেখতে পাবেন যে, ছবির কালেকশন ভিজ্যুয়ালাইজ করার সময় সেই অবজেক্টটি কাজে লাগবে!
বিভিন্ন ব্যান্ড ভিজ্যুয়ালাইজ করে দেখুন। আরেকটি পছন্দের কম্বিনেশন হল 'B5', 'B4' এবং 'B3' যাকে ফলস-কালার কম্পোজিট বলা হয়। অন্য কিছু আকর্ষণীয় ফলস-কালার কম্পোজিট সম্পর্কে এখানে বর্ণনা করা হয়েছে।
Earth Engine-কে বড় স্কেলে বিশ্লেষণ করার জন্য ডিজাইন করা হয়েছে, তাই আপনি শুধু একটি দৃশ্য নিয়ে কাজ করার মধ্যে সীমাবদ্ধ নন। এবার RGB কম্পোজিট হিসেবে সম্পূর্ণ সংগ্রহ দেখানোর সময় এসেছে!
ছবির সংগ্রহ দেখানো হচ্ছে
ম্যাপে ছবি যোগ করার মতোই ম্যাপে ছবির সংগ্রহ যোগ করা হয়। যেমন, l8 সংগ্রহে ২০১৬ সালের ছবি এবং আগে থেকে সংজ্ঞায়িত visParams
অবজেক্ট ব্যবহার করে,
কোড এডিটর (জাভাস্ক্রিপ্ট)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31'); Map.addLayer(landsat2016, visParams, 'l8 collection');
মনে রাখবেন যে এখন আপনি জুম আউট করতে এবং একটি অবিচ্ছিন্ন মোজাইক দেখতে পারবেন যেখানে Landsat ছবি সংগ্রহ করা হয় (অর্থাৎ, জমির উপর)। এছাড়াও মনে রাখবেন যে আপনি Inspector ট্যাব ব্যবহার করে ছবিতে ক্লিক করলে, ইন্সপেক্টরের Pixels বিভাগে পিক্সেল ভ্যালুর তালিকা (বা চার্ট) এবং Objects বিভাগে ছবির অবজেক্টের তালিকা দেখতে পাবেন।
আপনি যদি যথেষ্ট জুম আউট করেন, তাহলে সম্ভবত মোজাইকে কিছু মেঘ লক্ষ্য করেছেন। আপনি
ম্যাপে ImageCollection যোগ করলে, এটি সাম্প্রতিক-ভ্যালু কম্পোজিট হিসেবে দেখানো হয়, যার অর্থ হল শুধুমাত্র সবচেয়ে সাম্প্রতিক পিক্সেল দেখানো হয় (যেমন,
কালেকশনে mosaic() কল করা)। সেই কারণে, আপনি বিভিন্ন সময়ে ক্যাপচার করা
পাথ-এর মধ্যে
অসম্পূর্ণতা দেখতে পেতে পারেন। এছাড়াও, এই কারণে অনেক এলাকা মেঘাচ্ছন্ন দেখাতে পারে। পরবর্তী পৃষ্ঠায়, কীভাবে
ছবি কম্পোজিট করার পদ্ধতি পরিবর্তন করে বিরক্তিকর মেঘের ছবি এড়ানো যায় তা জানুন!