Earth Engine-এ Hansen et al. (2013)
Global
Forest Change ডেটাসেট ২০০০ থেকে ২০১৪ সালের মধ্যে বিশ্বব্যাপী ৩০ মিটার রেজোলিউশনে
বনভূমির পরিবর্তন দেখায়। ম্যাপে Hansen et al. ডেটা যোগ করে
শুরু করা যাক। "Hansen forest" সার্চ করে এবং ইম্পোর্টের নাম gfc2014 দিয়ে
গ্লোবাল ফরেস্ট চেঞ্জ ডেটা ইম্পোর্ট করুন
(ডেটাসেট সার্চ ও ইম্পোর্ট করা সম্পর্কে আরও জানুন) অথবা কোড এডিটরে
নিম্নলিখিত কোড কপি করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
কোড এডিটরের উপরে রান করুন বোতামে ক্লিক করুন এবং আপনি ছবি ১-এর মতো কিছু দেখতে পাবেন।
চিন্তা করবেন না, আপনি শীঘ্রই এটি আরও ভালো করে তুলতে পারবেন। (Earth Engine-এ ডিফল্ট ইমেজ ভিজ্যুয়ালাইজেশন সম্পর্কে আরও জানুন)। এই বিভাগের শেষে, আপনার কাছে এমন একটি ছবি থাকবে যা দেখতে চিত্র ২-এর মতো হবে, যেখানে সবুজ রঙ ২০০০ সালে স্টাডিতে শনাক্ত করা বনকে উপস্থাপন করে, লাল রঙ স্টাডির সময়কালে আনুমানিক বন ধ্বংসকে উপস্থাপন করে, নীল রঙ সেই সময়কালে বন বৃদ্ধিকে উপস্থাপন করে, ম্যাজেন্টা রঙ এমন এলাকাকে উপস্থাপন করে যেখানে বন ধ্বংস এবং বৃদ্ধি উভয়ই হয়েছে এবং বনহীন এলাকাগুলি মাস্ক করা হয়েছে।
মনে রাখবেন যে কোনও ম্যাপে মাল্টি-ব্যান্ড ছবি যোগ করা হলে, ছবির প্রথম তিনটি ব্যান্ড
যথাক্রমে লাল, সবুজ ও নীল হিসেবে বেছে নেওয়া হয় এবং প্রতিটি ব্যান্ডের ডেটার ধরন অনুযায়ী
স্ট্রেচ করা হয়। ছবিটি লাল দেখানোর কারণ হল প্রথম তিনটি ব্যান্ড হল
treecover2000, loss এবং gain। treecover2000
ব্যান্ড শতাংশ হিসেবে প্রকাশ করা হয় এবং এর ভ্যালু loss (সবুজ) ও gain (নীল) ব্যান্ডের থেকে অনেক বেশি, যা বাইনারি ({0, 1}) হিসেবে প্রকাশ করা হয়। তাই,
ছবিটি অত্যন্ত লাল দেখায়।
গ্লোবাল ফরেস্ট চেঞ্জ ডেটার ব্যান্ডগুলি হল:
| ব্যান্ডের নাম | বিবরণ | ব্যাপ্তি |
|---|---|---|
| treecover2000 | পিক্সেলে গাছের ছায়ার শতাংশ। | ০ - ১০০ |
| পরাজয় | স্টাডির সময়কালে কখনও ক্ষতি হলে ১। | 0 বা 1 |
| গেন | স্টাডির সময়সীমার মধ্যে কখনও লাভ হলে ১। | 0 বা 1 |
| lossyear | যে বছরে ক্ষতি হয়েছে, ২০০১ সাল থেকে শুরু করে এক-ইনডেক্স করা, অথবা কোনও ক্ষতি না হলে শূন্য। | ০ - ১২ |
| first_b30 | ২০০০ সালে প্রথম সঠিক পিক্সেল থেকে তৈরি Landsat 7 রেড ব্যান্ড (অথবা ২০০০ সালে কোনও সঠিক পিক্সেল না থাকলে তার থেকে পুরনো)। | ০ - ২৫৫ |
| first_b40 | ২০০০ সালে প্রথম সঠিক পিক্সেল থেকে তৈরি করা Landsat 7-এর ইনফ্রারেড ব্যান্ডের কাছাকাছি। | ০ - ২৫৫ |
| first_b50 | ২০০০ সালে প্রথম সঠিক পিক্সেল থেকে তৈরি প্রথম Landsat 7 শর্ট ওয়েভ ইনফ্রারেড ব্যান্ড। | ০ - ২৫৫ |
| first_b70 | ২০০০ সালে প্রথম সঠিক পিক্সেল থেকে তৈরি করা দ্বিতীয় Landsat 7 শর্ট ওয়েভ ইনফ্রারেড ব্যান্ড। | ০ - ২৫৫ |
| last_b30 | ২০১২ সালে লেটেস্ট সঠিক পিক্সেল থেকে Landsat 7 লাল ব্যান্ড তৈরি করা হয়েছে। | ০ - ২৫৫ |
| last_b40 | ২০১২ সালে লেটেস্ট সঠিক পিক্সেল থেকে তৈরি করা Landsat 7 ইনফ্রারেড ব্যান্ডের কাছাকাছি। | ০ - ২৫৫ |
| last_b50 | সর্বশেষ বৈধ পিক্সেল ২০১২ থেকে তৈরি প্রথম Landsat 7 শর্ট ওয়েভ ইনফ্রারেড ব্যান্ড। | ০ - ২৫৫ |
| last_b70 | দ্বিতীয় Landsat 7 শর্ট ওয়েভ ইনফ্রারেড ব্যান্ড যা ২০১২ সালের লেটেস্ট বৈধ পিক্সেল থেকে তৈরি করা হয়েছে। | ০ - ২৫৫ |
| datamask | কোনও ডেটা নেই (0), ম্যাপ করা ল্যান্ড সারফেস (1) এবং স্থায়ী জলাশয় (2)। | ০, ১, ২ |
২০০০ সালে বনাঞ্চলের আচ্ছাদনকে গ্রেস্কেল ছবি হিসেবে দেখাতে, আপনি
treecover2000 ব্যান্ড ব্যবহার করতে পারেন, যা
Map.addLayer()-এর দ্বিতীয় আর্গুমেন্টে উল্লেখ করা হয়েছে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
এর ফলে যে ছবি তৈরি হবে তা দেখতে অনেকটা ছবি ৩-এর মতো হবে।
এখানে একটি ছবি আছে যা ২০১৫ সালের জন্য ৩টি ব্যান্ড, ল্যান্ডস্যাট ব্যান্ড ৫, ৪ এবং ৩ ব্যবহার করে। এই ব্যান্ড কম্বিনেশন সুস্থ গাছপালাকে সবুজ এবং মাটিকে হালকা বেগুনি রঙে দেখায়::
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
ফলাফলটি ছবি ৪-এর মতো দেখতে হবে।
গ্লোবাল ফরেস্ট চেঞ্জ ডেটাসেটের একটি সুন্দর ভিজ্যুয়ালাইজেশন ২০০০ সালে বনের পরিমাণ সবুজ,
বনের ক্ষতি লাল এবং বনের বৃদ্ধি নীল হিসাবে দেখায়। বিশেষ করে,
loss প্রথম ব্যান্ড (লাল), treecover2000 দ্বিতীয় ব্যান্ড (সবুজ)
এবং gain তৃতীয় ব্যান্ড (নীল) হিসেবে সেট করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
লস ও গেন ব্যান্ডের ভ্যালু বাইনারি, তাই ছবিতে সেগুলি খুব কমই দেখা যাবে, যা ৫ নম্বর ছবির মতো দেখতে হবে।
আমরা চাই যে বনভূমি ধ্বংসের ঘটনা উজ্জ্বল লাল রঙে এবং বনভূমি বৃদ্ধির ঘটনা উজ্জ্বল নীল রঙে
দেখানো হোক। এই সমস্যার সমাধান করতে, আমরা ভিজ্যুয়ালাইজেশন প্যারামিটার max ব্যবহার করে
ইমেজ ডেটা যে রেঞ্জ পর্যন্ত স্ট্রেচ করা হয়েছে তা সেট করতে পারি। মনে রাখবেন যে max ভিজ্যুয়ালাইজেশন
প্যারামিটার প্রতিটি ব্যান্ডের জন্য সর্বাধিক মানের সাথে সম্পর্কিত মানগুলির একটি তালিকা নেয়:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
ফলাফলটি ছবি ৬-এর মতো দেখতে হবে।
এর ফলে এমন একটি ছবি তৈরি হয় যেখানে বনভূমি আছে সেখানে সবুজ, যেখানে বনভূমি কমেছে সেখানে লাল, যেখানে বনভূমি বেড়েছে সেখানে নীল এবং যেখানে বনভূমি বেড়েছে ও কমেছে সেখানে ম্যাজেন্টা রঙে দেখানো হয়। তবে, আরও ভালভাবে পরীক্ষা করে দেখা গেছে যে এটি সম্পূর্ণ সঠিক নয়। লোকসান লাল রঙের পরিবর্তে কমলা রঙে দেখানো হয়েছে। এর কারণ হল উজ্জ্বল লাল পিক্সেলগুলি অন্তর্নিহিত সবুজ পিক্সেলের সাথে মিশে যায়, যার ফলে কমলা পিক্সেল তৈরি হয়। একইভাবে, যেসব পিক্সেলে বন, ক্ষতি ও লাভ আছে সেগুলি গোলাপি - সবুজ, উজ্জ্বল লাল ও উজ্জ্বল নীলের সংমিশ্রণ। একটি উদাহরণের জন্য চিত্র ৭ দেখুন।
টিউটোরিয়ালের শুরুতে যে ছবি দেখানোর কথা বলা হয়েছিল, সেটি পেতে আপনি বন, ক্ষতি, লাভ এবং ক্ষতি ও লাভ উভয়ের জন্য আলাদা আলাদা ছবি তৈরি করতে পারেন। এইসব ছবির প্রত্যেকটি ম্যাপে এমন ক্রমে যোগ করুন যা দেখানোর জন্য সবচেয়ে ভাল।
প্যালেট
প্রতিটি ছবি আলাদা রঙে দেখাতে, আপনি সিঙ্গেল ব্যান্ড ছবির জন্য Map.addLayer()-এর palette
প্যারামিটার ব্যবহার করতে পারেন। প্যালেট আপনাকে সেই রঙের স্কিম সেট করতে দেয়
যার মাধ্যমে ছবি দেখানো হয়
(প্যালেট সম্পর্কে আরও জানুন)। Earth Engine API টিউটোরিয়াল থেকে
মনে করুন যে প্যালেটের রঙ
min ও max-এ লিনিয়ারলি স্ট্রেচ করা হয়।
যেমন, বনের পরিধি সংক্রান্ত ছবি দেখানোর জন্য সবুজ প্যালেট ব্যবহার করতে, আপনি এটি ব্যবহার করতে পারেন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
ফলাফলটি চিত্র ৮-এর মতো দেখতে হবে।
জুম-ইন করলে ছবির রেজোলিউশন আরও ভালোভাবে বোঝা যায়। ছবি ৯-এ প্যারাগুয়ের মারিস্কাল এস্টিগারিবিয়া এলাকা দেখানো হয়েছে।
ছবি ৩-এ দেখানো ছবিটি একটু অন্ধকার। সমস্যা হল,
treecover2000 ব্যান্ডে বাইট ডেটা টাইপ ([0, 255]) আছে, যদিও আসলে
ভ্যালুগুলি শতাংশে ([0, 100]) আছে। ছবি উজ্জ্বল করতে, আপনি সেই অনুযায়ী min
এবং/অথবা max প্যারামিটার সেট করতে পারেন। তারপর প্যালেটটি সেই এক্সট্রিমাগুলির মধ্যে
প্রসারিত হয়।
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
ফলাফলটি ছবি ৯-এর মতো দেখতে হওয়া উচিত। মনে রাখবেন যে এই উদাহরণে, শুধুমাত্র
max সেট করা আছে। ডিফল্ট হিসেবে min শূন্য থাকে।
মাস্কিং
এখনও পর্যন্ত দেখানো সব ছবিতে বড় কালো অংশ আছে যেখানে ডেটা শূন্য। যেমন, সমুদ্রে কোনও গাছ নেই। এইসব এরিয়া স্বচ্ছ করতে, আপনি সেগুলির ভ্যালু মাস্ক করতে পারেন। Earth Engine-এর প্রতিটি পিক্সেলের একটি ভ্যালু ও একটি মাস্ক থাকে। ছবিটি মাস্ক দ্বারা সেট করা ট্রান্সপারেন্সি সহ রেন্ডার করা হয়, যেখানে শূন্য সম্পূর্ণ ট্রান্সপারেন্ট এবং এক সম্পূর্ণ অস্বচ্ছ।
আপনি কোনও ছবিকে সেই ছবি দিয়েই মাস্ক করতে পারবেন। যেমন, আপনি যদি treecover2000
ব্যান্ডকে নিজের সাথে মাস্ক করেন, তাহলে যেসব এলাকায় বনাঞ্চল শূন্য, সেগুলি স্বচ্ছ হয়ে যাবে:
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
ফলাফলটি ছবি ১০-এর মতো দেখতে হওয়া উচিত।
উদাহরণ
টিউটোরিয়ালের শুরুতে যেমন দেখানো হয়েছে, ঠিক তেমনভাবেই হ্যানসেন ডেটার ভিজ্যুয়ালাইজেশন তৈরি করা
সম্ভব। এই উদাহরণে, আমরা একটি ছোট পার্থক্য সহ সবকিছু একসাথে রাখছি। Map.addLayer কলে bands প্যারামিটার উল্লেখ করার পরিবর্তে, আমরা select() ব্যবহার করে নতুন ছবি তৈরি করছি:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var treeCover = gfc2014.select(['treecover2000']); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Add the tree cover layer in green. Map.addLayer(treeCover.updateMask(treeCover), {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover'); // Add the loss layer in red. Map.addLayer(lossImage.updateMask(lossImage), {palette: ['FF0000']}, 'Loss'); // Add the gain layer in blue. Map.addLayer(gainImage.updateMask(gainImage), {palette: ['0000FF']}, 'Gain');
ফলাফলটি ছবি ১১-এর মতো দেখতে হওয়া উচিত।
লক্ষ্য করুন যে তিনটি addLayer() কল আছে। প্রতিটি
addLayer() কল ম্যাপে একটি লেয়ার যোগ করে। ম্যাপের উপরে ডানদিকে
লেয়ার বোতামের উপর মাউস নিয়ে গেলে এইসব
লেয়ার দেখা যায়। প্রতিটি লেয়ারের পাশে থাকা চেকবক্স ব্যবহার করে সেটি চালু বা বন্ধ করা যেতে পারে এবং
লেয়ারের নামের পাশে থাকা স্লাইডার ব্যবহার করে লেয়ারের অস্বচ্ছতা প্রভাবিত করা যেতে পারে।
টিউটোরিয়ালের শুরুতে দেখানো ছবিটি আমরা প্রায় তৈরি করে ফেলেছি। তবে, ক্ষতি ও লাভ, দু'টিই হয়েছে এমন পিক্সেল দেখানো লেয়ারটি নেই। এটি নেই কারণ কোন পিক্সেল ক্ষতি এবং লাভ উভয়ই দেখায় তা গণনা করার আগে আমাদের জানতে হবে কীভাবে ইমেজ ব্যান্ডে কিছু গণনা করতে হয়। এটি হল পরবর্তী বিভাগের বিষয়।