NDVI, একটি সংগ্রহের উপর একটি ফাংশন ম্যাপিং, গুণমান মোজাইকিং

পূর্বে, আপনি এইরকম কিছু করার মাধ্যমে কীভাবে পৃথক ল্যান্ডস্যাট দৃশ্যগুলি পেতে হয় তা শিখেছিলেন, যেখানে l8 এবং point হল ল্যান্ডস্যাট 8 TOA সংগ্রহ এবং একটি ক্ষেত্র-অনুগ্রহের জ্যামিতির প্রতিনিধিত্বকারী আমদানি:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Define a point of interest. Use the UI Drawing Tools to import a point
// geometry and name it "point" or set the point coordinates with the
// ee.Geometry.Point() function as demonstrated here.
var point = ee.Geometry.Point([-122.292, 37.9018]);

// Import the Landsat 8 TOA image collection.
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');

// Get the least cloudy image in 2015.
var image = ee.Image(
  l8.filterBounds(point)
    .filterDate('2015-01-01', '2015-12-31')
    .sort('CLOUD_COVER')
    .first()
);

এখন ধরুন যে আপনি ল্যান্ডস্যাট ইমেজ থেকে একটি নরমালাইজড ডিফারেন্স ভেজিটেশন ইনডেক্স (NDVI) ইমেজ গণনা করতে চান। গাছপালা ইলেক্ট্রোম্যাগনেটিক স্পেকট্রামের কাছাকাছি-ইনফ্রারেড (NIR) অংশে আলো প্রতিফলিত করে এবং লাল অংশে আলো শোষণ করে ( উদ্ভিদ থেকে NIR প্রতিফলন সম্পর্কে আরও জানুন )। এনডিভিআই এটি ব্যবহার করে একটি পিক্সেলে সংঘটিত সালোকসংশ্লেষণ কার্যকলাপকে মোটামুটিভাবে প্রতিফলিত করে একটি একক মান তৈরি করতে। হিসাবটি হল (NIR - লাল) / (NIR + লাল)। এর ফলে 1 এবং -1 এর মধ্যে একটি সংখ্যা দেখা যায়, যেখানে উচ্চ সালোকসংশ্লেষিত ক্রিয়াকলাপ সহ পিক্সেলগুলির উচ্চ এনডিভিআই থাকে। এটি আর্থ ইঞ্জিনে এনডিভিআই গণনা করার একটি উপায়:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Compute the Normalized Difference Vegetation Index (NDVI).
var nir = image.select('B5');
var red = image.select('B4');
var ndvi = nir.subtract(red).divide(nir.add(red)).rename('NDVI');

// Display the result.
Map.centerObject(image, 9);
var ndviParams = {min: -1, max: 1, palette: ['blue', 'white', 'green']};
Map.addLayer(ndvi, ndviParams, 'NDVI image');

ফলাফলটি চিত্র 8 এর মতো দেখতে হবে। মনে রাখবেন যে NIR এবং লাল ব্যান্ডগুলি পেতে আমরা মাস্কিংয়ের পূর্ববর্তী বিভাগে যে select() ফাংশনটি শিখেছি তা ব্যবহার করি, তারপর ইমেজ গাণিতিক অপারেটর ব্যবহার করে NDVI গণনা করি যা আপনি Image গণিত বিভাগে আগেও দেখেছেন । অবশেষে, একটি প্যালেট সহ চিত্রটি প্রদর্শন করুন। এখানে আমরা প্যালেটে হেক্স স্ট্রিং এর পরিবর্তে রঙের নাম ব্যবহার করেছি। (বিশদ বিবরণের জন্য CSS রঙ সম্পর্কে এই বাহ্যিক রেফারেন্সটি দেখুন।)

Tutorial_api_08_ndvi.png
চিত্র 8. একটি একক Landsat দৃশ্যের জন্য NDVI। নীল কম এবং সবুজ উচ্চ NDVI.

রিমোট সেন্সিং-এ স্বাভাবিক পার্থক্য অপারেশনটি এতই সর্বব্যাপী, একটি ee.Image এ একটি শর্টকাট ফাংশন রয়েছে

কোড এডিটর (জাভাস্ক্রিপ্ট)

var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');

একটি সংগ্রহের উপর একটি ফাংশন ম্যাপিং

এখন ধরুন যে আপনি একটি চিত্র সংগ্রহের প্রতিটি ছবিতে NDVI যোগ করতে চান। আর্থ ইঞ্জিনে এটি করার উপায় হল সংগ্রহের উপর একটি ফাংশন map() করা। Map অবজেক্টের সাথে map() বিভ্রান্ত করবেন না। পূর্ববর্তীটি একটি সংগ্রহের একটি পদ্ধতি, এবং সমান্তরাল কম্পিউটিং অর্থে একটি সংগ্রহের প্রতিটি উপাদানে একটি ফাংশন প্রয়োগ করার জন্য মানচিত্র ব্যবহার করে। ফাংশনটি ক্রিয়াকলাপগুলিকে সংজ্ঞায়িত করে যা সংগ্রহের প্রতিটি উপাদানে প্রয়োগ করা হবে। আপনি JavaScript টিউটোরিয়ালে একটি সাধারণ ফাংশন দেখেছেন, কিন্তু এখন আমরা একটি ফাংশন তৈরি করতে যাচ্ছি যাতে আর্থ ইঞ্জিন কার্যকারিতা অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, পূর্ববর্তী NDVI কোডটি একটি ফাংশনে অনুলিপি করুন যা একটি NDVI ব্যান্ডের সাথে ইনপুট চিত্র প্রদান করে:

কোড এডিটর (জাভাস্ক্রিপ্ট)

var addNDVI = function(image) {
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
  return image.addBands(ndvi);
};

// Test the addNDVI function on a single image.
var ndvi = addNDVI(image).select('NDVI');

এই কোডটি একটি একক চিত্রের জন্য এনডিভিআই কম্পিউট করার জন্য ততটা দক্ষ নাও হতে পারে, তবে সংগ্রহের প্রতিটি ছবিতে একটি এনডিভিআই ব্যান্ড যুক্ত করার জন্য এই ফাংশনটি map() এর যুক্তি হিসাবে ব্যবহার করা যেতে পারে। ফাংশনটি আপনার প্রত্যাশা অনুযায়ী আচরণ করছে তা নিশ্চিত করতে একটি একক চিত্রে একটি ফাংশন পরীক্ষা করা প্রায়শই দরকারী। একবার আপনি একটি পৃথক চিত্রে ফাংশনটি পরীক্ষা করে নিলে এবং আপনি যা চান তা করে তা নির্ধারণ করেছেন, আপনি সংগ্রহে এটি ম্যাপ করতে পারেন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

var withNDVI = l8.map(addNDVI);

এই সংগ্রহের প্রতিটি ছবিতে এটি প্রকৃতপক্ষে একটি এনডিভিআই ব্যান্ড রাখছে তা যাচাই করতে, আপনি ম্যাপে withNDVI সংগ্রহ যোগ করতে পারেন এবং ইন্সপেক্টর ট্যাবের মাধ্যমে একটি এলোমেলো অবস্থান জিজ্ঞাসা করতে পারেন। আপনার লক্ষ্য করা উচিত যে সংগ্রহের প্রতিটি ছবিতে এখন NDVI নামে একটি ব্যান্ড রয়েছে।

একটি সবুজতম পিক্সেল কম্পোজিট তৈরি করুন

এখন যেহেতু আপনি একটি চিত্র সংগ্রহ করেছেন যেখানে প্রতিটি ছবিতে একটি NDVI ব্যান্ড রয়েছে, আমরা কম্পোজিট তৈরি করার একটি নতুন উপায় অন্বেষণ করতে পারি: qualityMosaic() ৷ আপনি হয়তো ল্যান্ডস্যাট পাথগুলির মধ্যে বিচ্ছিন্নতা লক্ষ্য করেছেন, এমনকি মিডিয়ান পিক্সেল কম্পোজিটেও। এর একটি কারণ হতে পারে বিভিন্ন সময়ে সংলগ্ন পাথের ছবি সংগ্রহ করার ফলে (বিশেষত, 8 দিনের ব্যবধানে) ফিনলজির পার্থক্যের কারণে। এটি কমানোর একটি উপায় হল মোটামুটি একই ফেনোলজিকাল পর্যায় থেকে কম্পোজিটে পিক্সেল মান সেট করার চেষ্টা করা, উদাহরণস্বরূপ গাছের সর্বাধিক সবুজ হওয়ার সময় (যখন পাতাগুলি চালু থাকে এবং সালোকসংশ্লেষকভাবে সক্রিয় থাকে)। যদি আমরা সর্বাধিক সবুজতাকে সর্বাধিক NDVI দ্বারা সংজ্ঞায়িত করতে দেই, তাহলে আমরা একটি কম্পোজিট তৈরি করতে qualityMosaic() ব্যবহার করতে পারি যাতে প্রতিটি পিক্সেল সংগ্রহ থেকে সর্বাধিক এনডিভিআই পিক্সেল ধারণ করে। এখন আপনি আপনার withNDVI সংগ্রহে যোগ করা NDVI ব্যান্ড ব্যবহার করতে পারেন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

// Make a "greenest" pixel composite.
var greenest = withNDVI.qualityMosaic('NDVI');

// Display the result.
var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3};
Map.addLayer(greenest, visParams, 'Greenest pixel composite');

এই কোডের ফলাফলটি চিত্র 9 এর মত দেখতে হবে। চিত্র 6- এ দেখানো মধ্যক যৌগটির সাথে চিত্র 9-এর তুলনা করলে, লক্ষ্য করুন যে সবুজতম পিক্সেল যৌগটি প্রকৃতপক্ষে অনেক বেশি সবুজ। যাইহোক, জলাশয়ের নিবিড় পরীক্ষা একটি ভিন্ন সমস্যা স্পষ্ট করা উচিত। বিশেষত, জলাশয়গুলি এখন মেঘলা দেখায়। qualityMosaic() পদ্ধতিটি যেভাবে কাজ করে তার কারণে এটি হয়েছে: প্রতিটি অবস্থানে, সম্পূর্ণ টাইম সিরিজ পরীক্ষা করা হয় এবং এনডিভিআই ব্যান্ডে সর্বাধিক মান সহ পিক্সেলটি যৌগিক মান হিসাবে সেট করা হয়। যেহেতু এনডিভিআই মেঘের উপরে জলের চেয়ে বেশি, জলের অঞ্চলগুলি মেঘলা পিক্সেল পায়, যখন গাছপালা অঞ্চলগুলি সবুজ দেখায় কারণ পিক্সেলের গাছপালা যখন সালোকসংশ্লেষকভাবে সক্রিয় থাকে তখন এনডিভিআই সর্বোচ্চ হয়।

Tutorial_api_09_greenest.png
চিত্র 9. ল্যান্ডস্যাট 8 গ্রিনেস্ট পিক্সেল কম্পোজিট।

এখন আপনি আর্থ ইঞ্জিনে কম্পোজিট এবং মোজাইক ইমেজ করার বিভিন্ন উপায় দেখেছেন। আপনি সময় এবং স্থান দ্বারা ফিল্টার করা ছবিগুলি বা সংগ্রহের সমস্ত ছবি থেকে সাম্প্রতিক-মান, মধ্যম, বা সবুজতম-পিক্সেল কম্পোজিট তৈরি করতে পারেন। আপনি শিখেছেন কিভাবে চিত্রের উপর গণনা করতে হয় এবং তথ্য বের করতে হয়। পরবর্তী পৃষ্ঠাটি আর্থ ইঞ্জিন থেকে তথ্য পাওয়ার উপায়গুলি কভার করে, উদাহরণস্বরূপ একটি চার্ট বা আপনার Google ড্রাইভ ফোল্ডারে রপ্তানি করা ডেটাসেট।