জল ঘটার পরিবর্তন তীব্রতা ডেটা লেয়ার ভূপৃষ্ঠের জল কীভাবে পরিবর্তিত হয়েছে তার একটি পরিমাপ প্রদান করে দুটি যুগের মধ্যে: 1984-1999 এবং 2000-2015। এই লেয়ার দুটি যুগ থেকে নেওয়া মাসের সমজাতীয় জোড়া জুড়ে পরিবর্তনের গড় করে। এই লেয়ার সম্পর্কে আরও জানতে ডেটা ব্যবহারকারীর নির্দেশিকা (v2) দেখুন।
টিউটোরিয়ালের এই বিভাগ:
- জলের উপস্থিতি পরিবর্তনের তীব্রতা ভিজ্যুয়ালাইজ করার জন্য একটি স্টাইল করা ম্যাপ লেয়ার যোগ করুন এবং
- হিস্টোগ্রাম ব্যবহার করে নির্দিষ্ট আগ্রহের অঞ্চলে পরিবর্তনের তীব্রতা সংক্ষেপে বর্ণনা করো।
ভিজুয়ালাইজেশান
জলস্তর সংক্রান্ত লেয়ারের মতো, আমরা ম্যাপে জলস্তর পরিবর্তনের তীব্রতার একটি প্রাথমিক ভিজ্যুয়ালাইজেশন যোগ করে শুরু করব এবং তারপরে এটি উন্নত করব। ঘটনা পরিবর্তনের তীব্রতা দুটি উপায়ে প্রদান করা হয়, পরম এবং স্বাভাবিক মান হিসেবে। আমরা এই টিউটোরিয়ালে পরম মান ব্যবহার করব। GSW ছবি থেকে ঘটার পরম পরিবর্তন তীব্রতা লেয়ার বেছে নিয়ে শুরু করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
var change = gsw.select("change_abs");
কোডের কনস্ট্যান্ট বিভাগে, একটি স্টেটমেন্ট যোগ করুন যা একটি নতুন ভেরিয়েবল তৈরি করে যা লেয়ারটি কীভাবে স্টাইল করা হবে তা নির্ধারণ করে। এই স্টাইলিংয়ের মাধ্যমে সেইসব এলাকা দেখানো হয় যেখানে ভূপৃষ্ঠের জল কমেছে/বেড়েছে, যথাক্রমে লাল/সবুজ রঙে। যেসব এলাকায় ভূপৃষ্ঠের জলের উপস্থিতি তুলনামূলকভাবে অপরিবর্তিত থাকে, সেগুলি কালো রঙে দেখানো হয়।
কোড এডিটর (জাভাস্ক্রিপ্ট)
var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] };
কোডের ম্যাপ লেয়ার বিভাগের শেষে, একটি স্টেটমেন্ট যোগ করুন যা ম্যাপে একটি নতুন লেয়ার যোগ করে।
কোড এডিটর (জাভাস্ক্রিপ্ট)
Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
আগ্রহের অঞ্চলের মধ্যে পরিবর্তনকে সংক্ষেপিত করা
এই বিভাগে, আমরা আগ্রহের একটি নির্দিষ্ট অঞ্চলের মধ্যে পরিবর্তনের পরিমাণের সারসংক্ষেপ করব। আগ্রহের অঞ্চল নির্দিষ্ট করতে, পলিগন ড্রয়িং টুলে ক্লিক করুন, যা জিওমেট্রি টুলের মধ্যে একটি। এটি একটি নতুন জ্যামিতি ইম্পোর্ট লেয়ার তৈরি করবে, যার নাম ডিফল্ট হিসেবে "জ্যামিতি" হবে। নাম পরিবর্তন করতে, লেয়ারের নামের ডানদিকে থাকা গিয়ার আইকনে ক্লিক করুন। (মনে রাখবেন, লেয়ারের নাম দেখার জন্য আপনাকে লেয়ারের নামের উপর কার্সর রাখতে হতে পারে।)
লেয়ারের নাম পরিবর্তন করে roi (রিজিয়ন-অফ-ইন্টারেস্ট বা ROI-এর জন্য) করুন। তারপর আমরা ম্যাপে
একাধিক পয়েন্টে ক্লিক করে আগ্রহের পলিগন অঞ্চল নির্ধারণ করতে পারি।
এখন আমাদের আগ্রহের অঞ্চলটি সংজ্ঞায়িত এবং একটি ভেরিয়েবলে সংরক্ষিত হয়েছে, আমরা এটি ব্যবহার করে ROI-এর জন্য পরিবর্তনের তীব্রতার একটি হিস্টোগ্রাম গণনা করতে পারি। স্ক্রিপ্টের ক্যালকুলেশন বিভাগে নিম্নলিখিত কোড যোগ করুন।
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Calculate a change intensity for the region of interest. var histogram = change.reduceRegion({ reducer: ee.Reducer.histogram(), geometry: roi, scale: 30, bestEffort: true, }); print(histogram);
প্রথম স্টেটমেন্টটি ROI-এর মধ্যে ঘটা পরিবর্তনের তীব্রতার মানের হিস্টোগ্রাম গণনা করে, ৩০ মিটার স্কেলে স্যাম্পেলিং করে। দ্বিতীয়টি কোড এডিটর কনসোল ট্যাবে ফলাফল অবজেক্ট প্রিন্ট করে। হিস্টোগ্রাম বাকেটের ভ্যালু দেখতে আপনি অবজেক্ট ট্রি বড় করতে পারেন। সংখ্যাগত ডেটা আছে, তবে ফলাফল দেখানোর আরও ভালো উপায় আছে।
এটি উন্নত করতে, আমরা পরিবর্তে একটি হিস্টোগ্রাম চার্ট তৈরি করতে পারি। হিস্টোগ্রাম অবজেক্টকে সংজ্ঞায়িত করে এমন স্টেটমেন্টকে নিম্নলিখিত স্টেটমেন্ট দিয়ে পরিবর্তন করুন:
কোড এডিটর (জাভাস্ক্রিপ্ট)
// Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' });
এইসব স্টেটমেন্ট হিস্টোগ্রাম চার্ট অবজেক্ট তৈরি করে, যা কনসোল ট্যাবে হিস্টোগ্রাম অবজেক্ট ট্রিকে
চার্ট দিয়ে প্রতিস্থাপন করে। চার্ট পদ্ধতিতে বেশ কিছু আর্গুমেন্ট থাকে, যার মধ্যে রয়েছে
scale যা মিটারে স্পেশাল স্কেল নির্ধারণ করে, যেখানে আগ্রহের অঞ্চল'
স্যাম্পেল করা হয় এবং
minBucketWidth যা হিস্টোগ্রাম বাকেটের প্রস্থ নিয়ন্ত্রণ করতে
ব্যবহৃত হয়।
হিস্টোগ্রাম বারের উপর কার্সর রেখে আপনি চার্টের ভ্যালু ইন্টার্যাক্টিভভাবে এক্সপ্লোর করতে পারবেন।
চূড়ান্ত স্ক্রিপ্ট
এই বিভাগের জন্য সম্পূর্ণ স্ক্রিপ্ট নিচে তালিকাভুক্ত করা হয়েছে। মনে রাখবেন যে স্ক্রিপ্টে বহুভুজ জ্যামিতি (roi) সংজ্ঞায়িত করার জন্য স্টেটমেন্ট অন্তর্ভুক্ত রয়েছে, যা কোড এডিটরের জ্যামিতি টুল ব্যবহার করে আপনার তৈরি করা জ্যামিতির সাথে তুলনীয়।
কোড এডিটর (জাভাস্ক্রিপ্ট)
////////////////////////////////////////////////////////////// // Asset List ////////////////////////////////////////////////////////////// var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater'); var occurrence = gsw.select('occurrence'); var change = gsw.select("change_abs"); var roi = /* color: 0B4A8B */ee.Geometry.Polygon( [[[-74.17213, -8.65569], [-74.17419, -8.39222], [-74.38362, -8.36980], [-74.43031, -8.61293]]]); ////////////////////////////////////////////////////////////// // Constants ////////////////////////////////////////////////////////////// var VIS_OCCURRENCE = { min:0, max:100, palette: ['red', 'blue'] }; var VIS_CHANGE = { min:-50, max:50, palette: ['red', 'black', 'limegreen'] }; var VIS_WATER_MASK = { palette: ['white', 'black'] }; ////////////////////////////////////////////////////////////// // Calculations ////////////////////////////////////////////////////////////// // Create a water mask layer, and set the image mask so that non-water areas are transparent. var water_mask = occurrence.gt(90).mask(1); // Generate a histogram object and print it to the console tab. var histogram = ui.Chart.image.histogram({ image: change, region: roi, scale: 30, minBucketWidth: 10 }); histogram.setOptions({ title: 'Histogram of surface water change intensity.' }); print(histogram); ////////////////////////////////////////////////////////////// // Initialize Map Location ////////////////////////////////////////////////////////////// // Uncomment one of the following statements to center the map on // a particular location. // Map.setCenter(-90.162, 29.8597, 10); // New Orleans, USA // Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico // Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA // Map.setCenter(149.412, -35.0789, 11); // Lake George, Australia // Map.setCenter(105.26, 11.2134, 9); // Mekong River Basin, SouthEast Asia // Map.setCenter(90.6743, 22.7382, 10); // Meghna River, Bangladesh // Map.setCenter(81.2714, 16.5079, 11); // Godavari River Basin Irrigation Project, India // Map.setCenter(14.7035, 52.0985, 12); // River Oder, Germany & Poland // Map.setCenter(-59.1696, -33.8111, 9); // Buenos Aires, Argentina\ Map.setCenter(-74.4557, -8.4289, 11); // Ucayali River, Peru ////////////////////////////////////////////////////////////// // Map Layers ////////////////////////////////////////////////////////////// Map.addLayer({ eeObject: water_mask, visParams: VIS_WATER_MASK, name: '90% occurrence water mask', shown: false }); Map.addLayer({ eeObject: occurrence.updateMask(occurrence.divide(100)), name: "Water Occurrence (1984-2015)", visParams: VIS_OCCURRENCE, shown: false }); Map.addLayer({ eeObject: change, visParams: VIS_CHANGE, name: 'occurrence change intensity' });
পরবর্তী বিভাগে, আপনি আরও এক্সপ্লোর করবেন যে কীভাবে সময়ের সাথে সাথে জল পরিবর্তিত হয়েছে, ওয়াটার ক্লাস ট্রানজিশন লেয়ারের সাথে কাজ করার মাধ্যমে।