জল সংঘটন পরিবর্তন তীব্রতা

জল সংঘটন পরিবর্তন তীব্রতা ডেটা স্তর দুটি যুগের মধ্যে পৃষ্ঠের জল কীভাবে পরিবর্তিত হয়েছে তার একটি পরিমাপ প্রদান করে: 1984-1999 এবং 2000-2015। স্তরটি দুটি যুগ থেকে নেওয়া সমজাতীয় জোড়া মাসের পরিবর্তনের গড় করে। এই স্তরের অতিরিক্ত বিবরণের জন্য ডেটা ব্যবহারকারীর নির্দেশিকা (v2) দেখুন।

টিউটোরিয়ালের এই বিভাগটি করবে:

  1. জল সংঘটন পরিবর্তন তীব্রতা কল্পনা করার জন্য একটি শৈলী মানচিত্র স্তর যোগ করুন, এবং
  2. একটি হিস্টোগ্রাম ব্যবহার করে একটি নির্দিষ্ট অঞ্চলের আগ্রহের পরিবর্তনের তীব্রতা সংক্ষিপ্ত করুন।

ভিজ্যুয়ালাইজেশন

জলের সংঘটন স্তরের মতো, আমরা মানচিত্রে সংঘটন পরিবর্তনের তীব্রতার একটি প্রাথমিক ভিজ্যুয়ালাইজেশন যুক্ত করে শুরু করব এবং তারপরে এটিতে উন্নতি করব। সংঘটন পরিবর্তনের তীব্রতা দুটি উপায়ে প্রদান করা হয়, উভয় পরম এবং স্বাভাবিক মান হিসাবে। আমরা এই টিউটোরিয়ালে পরম মান ব্যবহার করব। 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'
});
তীব্রতা পরিবর্তন
চিত্র 6. পূর্ব পেরুর আমাজনীয় রেইনফরেস্টের একটি শহর পুকাল্পার কাছে উকায়ালি নদীর জন্য পৃষ্ঠের জল পরিবর্তনের তীব্রতার স্ক্রিনশট। লাল/সবুজ যুগের মধ্যে ভূপৃষ্ঠের পানির সংঘটনের হ্রাস/বৃদ্ধি নির্দেশ করে।

আগ্রহের একটি অঞ্চলের মধ্যে পরিবর্তনের সারসংক্ষেপ

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

স্তরের নাম পরিবর্তন করুন roi (অঞ্চলের-আগ্রহের জন্য বা ROI)। তারপরে আমরা আগ্রহের একটি বহুভুজ অঞ্চল সংজ্ঞায়িত করতে মানচিত্রের পয়েন্টগুলির একটি সিরিজে ক্লিক করতে পারি।

আগ্রহের অঞ্চল
চিত্র 7. বহুভুজ অঙ্কন সরঞ্জাম ব্যবহার করে তৈরি করা আগ্রহের অঞ্চলের সাথে পেরুর পুকাল্পার কাছে উকায়ালি নদীর স্ক্রিনশট।

এখন যেহেতু আমাদের আগ্রহের অঞ্চল সংজ্ঞায়িত করা হয়েছে এবং একটি ভেরিয়েবলের মধ্যে সংরক্ষণ করা হয়েছে, আমরা 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-এর মধ্যে সংঘটন পরিবর্তনের তীব্রতার মানগুলির একটি হিস্টোগ্রাম গণনা করে, একটি 30m স্কেলে নমুনা। দ্বিতীয়টি কোড এডিটর কনসোল ট্যাবে ফলস্বরূপ বস্তুটি প্রিন্ট করে। হিস্টোগ্রাম বাকেটের মান দেখতে আপনি অবজেক্ট ট্রিটি প্রসারিত করতে পারেন। সংখ্যাসূচক তথ্য আছে, কিন্তু ফলাফল কল্পনা করার আরও ভাল উপায় আছে।

হিস্টোগ্রাম মান
চিত্র 8. কনসোল ট্যাবের ফলাফল, ভূপৃষ্ঠের জল পরিবর্তনের তীব্রতার হিস্টোগ্রাম মান দেখাচ্ছে।

এটির উন্নতি করতে, আমরা পরিবর্তে একটি হিস্টোগ্রাম চার্ট তৈরি করতে পারি। নিম্নলিখিত বিবৃতি দিয়ে হিস্টোগ্রাম অবজেক্টকে সংজ্ঞায়িত করে এমন বিবৃতিটি প্রতিস্থাপন করুন:

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

// 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 যা হিস্টোগ্রাম বালতিগুলির প্রস্থ নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

হিস্টোগ্রাম চার্ট
চিত্র 9. কনসোল ট্যাবের ফলাফল, ভূপৃষ্ঠের জল পরিবর্তনের তীব্রতার একটি হিস্টোগ্রাম চার্ট দেখাচ্ছে।

আপনি হিস্টোগ্রাম বারের উপর আপনার কার্সার রেখে ইন্টারেক্টিভভাবে চার্টের মানগুলি অন্বেষণ করতে পারেন।

চূড়ান্ত স্ক্রিপ্ট

এই বিভাগের জন্য সম্পূর্ণ স্ক্রিপ্ট নীচে তালিকাভুক্ত করা হয়েছে. মনে রাখবেন যে স্ক্রিপ্টে একটি বহুভুজ জ্যামিতি ( 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'
});

পরবর্তী বিভাগে , আপনি আরও অন্বেষণ করবেন কিভাবে জল শ্রেণী পরিবর্তন স্তরের সাথে কাজ করে সময়ের সাথে সাথে জল পরিবর্তিত হয়।