চলুন শুরু করা যাক একটি ব্যান্ড তৈরি করার জন্য প্রয়োজনীয় গণনা যা পিক্সেল দেখায় যেখানে হ্যানসেন এট আল। ডেটা ক্ষতি এবং লাভ উভয়ই দেখায়।
হ্যানসেন এট আল। ডেটাসেটের একটি ব্যান্ড রয়েছে যার পিক্সেল হল 1 যেখানে ক্ষতি হয়েছে এবং 0 অন্যথায় ( loss
) এবং একটি ব্যান্ড যা 1 যেখানে লাভ হয়েছে এবং একটি 0 অন্যথায় ( gain
)। একটি ব্যান্ড তৈরি করতে যেখানে loss
এবং gain
উভয় ব্যান্ডে পিক্সেলের একটি 1 থাকে, আপনি ইমেজে and()
লজিক্যাল পদ্ধতি ব্যবহার করতে পারেন। and()
পদ্ধতিটিকে image1.and(image2)
মত বলা হয় এবং একটি চিত্র প্রদান করে যেখানে পিক্সেল 1 হয় যেখানে image1 এবং image2 উভয়ই 1, এবং অন্য কোথাও 0:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load the data and select the bands of interest. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Use the and() method to create the lossAndGain image. var gainAndLoss = gainImage.and(lossImage); // Show the loss and gain image. Map.addLayer(gainAndLoss.updateMask(gainAndLoss), {palette: 'FF00FF'}, 'Gain and Loss');
স্যাটেলাইট ভিউ সহ আরকানসাসে জুম করা ফলাফলটি চিত্র 1 এর মতো দেখতে হবে।

পূর্ববর্তী বিভাগের ফলাফলের সাথে এই উদাহরণটি একত্রিত করে, টিউটোরিয়ালের শুরু থেকে চিত্রটি পুনরায় তৈরি করা সম্ভব:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Displaying forest, loss, gain, and pixels where both loss and gain occur. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); var treeCover = gfc2014.select(['treecover2000']); // Use the and() method to create the lossAndGain image. var gainAndLoss = gainImage.and(lossImage); // 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'); // Show the loss and gain image. Map.addLayer(gainAndLoss.updateMask(gainAndLoss), {palette: 'FF00FF'}, 'Gain and Loss');
আগ্রহের একটি অঞ্চলে বন পরিবর্তনের পরিমাণ নির্ধারণ করা
এখন আপনি হ্যানসেন এট আল-এর ব্যান্ডগুলির সাথে আরও বেশি পরিচিত৷ ডেটাসেট, আমরা আগ্রহের একটি অঞ্চলে বনের লাভ এবং ক্ষতি সম্পর্কে পরিসংখ্যান গণনা করতে এতদূর শেখা ধারণাগুলি ব্যবহার করতে পারি। এর জন্য আমাদের ভেক্টর ডেটা (বিন্দু, লাইন এবং বহুভুজ) ব্যবহার করতে হবে। একটি ভেক্টর ডেটাসেট আর্থ ইঞ্জিনে একটি FeatureCollection
হিসাবে উপস্থাপন করা হয়। ( বৈশিষ্ট্য সংগ্রহ সম্পর্কে আরও জানুন এবং কীভাবে ভেক্টর ডেটা আমদানি করতে হয়।)
এই বিভাগে, আমরা 2012 সালে কঙ্গো প্রজাতন্ত্রের মধ্যে ঘটে যাওয়া বনের ক্ষতির মোট পরিমাণের সাথে একই সময়ে দেশের সংরক্ষিত এলাকার মধ্যে যে পরিমাণ বন ক্ষতি হয়েছিল তার সাথে তুলনা করব।
আপনি আর্থ ইঞ্জিন এপিআই টিউটোরিয়ালে যেমন শিখেছেন , একটি চিত্র অঞ্চলে পরিসংখ্যান গণনার মূল পদ্ধতি হল reduceRegion()
। ( চিত্রের অঞ্চলগুলি হ্রাস করার বিষয়ে আরও জানুন ।) উদাহরণস্বরূপ, ধরুন আমরা অধ্যয়নের সময়কালে বনের ক্ষতির প্রতিনিধিত্ব করার জন্য অনুমান করা পিক্সেলের সংখ্যা গণনা করতে চাই। এই উদ্দেশ্যে, নিম্নলিখিত কোড বিবেচনা করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load country features from Large Scale International Boundary (LSIB) dataset. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Subset the Congo Republic feature from countries. var congo = countries.filter(ee.Filter.eq('country_na', 'Rep of the Congo')); // Get the forest loss image. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossImage = gfc2014.select(['loss']); // Sum the values of forest loss pixels in the Congo Republic. var stats = lossImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: congo, scale: 30 }); print(stats);
এই উদাহরণটি congo
বৈশিষ্ট্যের মধ্যে lossImage
পিক্সেলের মান যোগ করতে ee.Reducer.sum()
রিডুসার ব্যবহার করে। কারণ lossImage
এমন পিক্সেল রয়েছে যেগুলির মান 1 বা 0 (যথাক্রমে ক্ষতি বা ক্ষতি না হওয়ার জন্য), এই মানের সমষ্টি এই অঞ্চলে ক্ষতির পিক্সেল সংখ্যার সমতুল্য।
দুর্ভাগ্যবশত, স্ক্রিপ্টটি চালানোর ফলে এটির মতো একটি ত্রুটি দেখা দেয়:
reduceRegion()
-এ পিক্সেলের ডিফল্ট সর্বোচ্চ সংখ্যা হল 10 মিলিয়ন। এই ত্রুটি বার্তাটি নির্দেশ করে যে কঙ্গো প্রজাতন্ত্র প্রায় 383 মিলিয়ন ল্যান্ডস্যাট পিক্সেল কভার করে। সৌভাগ্যবশত, reduceRegion()
অনেকগুলি প্যারামিটার নেয়, যার মধ্যে একটি ( maxPixels
) আপনাকে গণনায় কতগুলি পিক্সেল ব্যবহার করা হয় তা নিয়ন্ত্রণ করতে দেয়। এই পরামিতি নির্দিষ্ট করা গণনাকে সফল হতে দেয়:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load country features from Large Scale International Boundary (LSIB) dataset. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Subset the Congo Republic feature from countries. var congo = countries.filter(ee.Filter.eq('country_na', 'Rep of the Congo')); // Get the forest loss image. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossImage = gfc2014.select(['loss']); // Sum the values of forest loss pixels in the Congo Republic. var stats = lossImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: congo, scale: 30, maxPixels: 1e9 }); print(stats);
কনসোলে প্রিন্ট করা বস্তুটিকে প্রসারিত করে, লক্ষ্য করুন যে ফলাফলটি 4897933 পিক্সেল বন হারিয়ে গেছে। আপনি আউটপুট লেবেল করে এবং reduceRegion()
দ্বারা ফেরত অভিধান থেকে আগ্রহের ফলাফল পেয়ে কনসোলে প্রিন্টআউটটি কিছুটা পরিষ্কার করতে পারেন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
print('pixels representing loss: ', stats.get('loss'));
পিক্সেল এলাকা গণনা করা হচ্ছে
কঙ্গো প্রজাতন্ত্রে কতটা এলাকা হারিয়েছে এবং কতটা সুরক্ষিত এলাকায় ছিল এই প্রশ্নের উত্তর দিতে আপনি প্রায় প্রস্তুত। বাকি অংশটি পিক্সেলকে প্রকৃত এলাকায় রূপান্তর করা। এই রূপান্তরটি গুরুত্বপূর্ণ কারণ আমরা reduceRegion()
পিক্সেল ইনপুটের আকার অগত্যা জানি না। এলাকা গণনা করতে সাহায্য করার জন্য, আর্থ ইঞ্জিনে রয়েছে ee.Image.pixelArea()
পদ্ধতি যা একটি চিত্র তৈরি করে যেখানে প্রতিটি পিক্সেলের মান বর্গ মিটারে পিক্সেলের ক্ষেত্রফল। ক্ষতির চিত্রটিকে এই এলাকার চিত্রের সাথে গুণ করা এবং তারপর ফলাফলের উপর সারসংক্ষেপ করা আমাদের ক্ষেত্রফলের একটি পরিমাপ দেয়:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load country features from Large Scale International Boundary (LSIB) dataset. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Subset the Congo Republic feature from countries. var congo = countries.filter(ee.Filter.eq('country_na', 'Rep of the Congo')); // Get the forest loss image. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossImage = gfc2014.select(['loss']); var areaImage = lossImage.multiply(ee.Image.pixelArea()); // Sum the values of forest loss pixels in the Congo Republic. var stats = areaImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: congo, scale: 30, maxPixels: 1e9 }); print('pixels representing loss: ', stats.get('loss'), 'square meters');
এখন ফলাফল হল 4,372,575,052 বর্গ মিটার অধ্যয়নের সময়কালে হারিয়ে গেছে।
আপনি এখন এই বিভাগের শুরুতে প্রশ্নের উত্তর দিতে প্রস্তুত - 2012 সালে কঙ্গো প্রজাতন্ত্রে কতটা বনভূমি হারিয়েছিল এবং কতটা সংরক্ষিত এলাকায় ছিল?
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Load country features from Large Scale International Boundary (LSIB) dataset. var countries = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017'); // Subset the Congo Republic feature from countries. var congo = ee.Feature( countries .filter(ee.Filter.eq('country_na', 'Rep of the Congo')) .first() ); // Subset protected areas to the bounds of the congo feature // and other criteria. Clip to the intersection with congo. var protectedAreas = ee.FeatureCollection('WCMC/WDPA/current/polygons') .filter(ee.Filter.and( ee.Filter.bounds(congo.geometry()), ee.Filter.neq('IUCN_CAT', 'VI'), ee.Filter.neq('STATUS', 'proposed'), ee.Filter.lt('STATUS_YR', 2010) )) .map(function(feat){ return congo.intersection(feat); }); // Get the loss image. var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); var lossIn2012 = gfc2014.select(['lossyear']).eq(12); var areaImage = lossIn2012.multiply(ee.Image.pixelArea()); // Calculate the area of loss pixels in the Congo Republic. var stats = areaImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: congo.geometry(), scale: 30, maxPixels: 1e9 }); print( 'Area lost in the Congo Republic:', stats.get('lossyear'), 'square meters' ); // Calculate the area of loss pixels in the protected areas. var stats = areaImage.reduceRegion({ reducer: ee.Reducer.sum(), geometry: protectedAreas.geometry(), scale: 30, maxPixels: 1e9 }); print( 'Area lost in protected areas:', stats.get('lossyear'), 'square meters' );
আউটপুট নির্দেশ করে যে 2012 সালে কঙ্গো প্রজাতন্ত্রে হারিয়ে যাওয়া 348,036,295 বর্গমিটার বনের মধ্যে 11,880,976টি সংরক্ষিত এলাকায় ছিল, যেমনটি বিশ্ব ডাটাবেস অন প্রটেক্টেড এরিয়াস টেবিলে উপস্থাপিত হয়েছে।
এই স্ক্রিপ্ট এবং ঠিক আগেরটির মধ্যে একমাত্র পরিবর্তনগুলি হল সুরক্ষিত এলাকার তথ্য যোগ করা এবং স্ক্রিপ্টটিকে সামগ্রিক ক্ষতির দিকে তাকানো থেকে 2012 সালে ক্ষতির দিকে তাকানো। এর জন্য দুটি পরিবর্তন প্রয়োজন। প্রথমত, একটি নতুন lossIn2012
ইমেজ আছে যার একটি 1 আছে যেখানে 2012 সালে লস রেকর্ড করা হয়েছিল, অন্যথায় 0। দ্বিতীয়ত, কারণ ব্যান্ডের নাম ভিন্ন ( loss
পরিবর্তে lossyear
) প্রিন্ট স্টেটমেন্টে সম্পত্তির নাম পরিবর্তন করতে হয়েছিল।
পরবর্তী বিভাগে , আমরা এই বিভাগে যেমন করেছিলাম শুধুমাত্র এক বছরের পরিবর্তে, প্রতি বছরের জন্য কম্পিউটিং এবং তালিকা তৈরির জন্য কিছু উন্নত পদ্ধতি অন্বেষণ করব।