ImageCollection কমানো

ImageCollection-এ কম্পোজিট ছবি তৈরি করতে, imageCollection.reduce() ব্যবহার করুন। এটি কালেকশনের সব ছবিকে একটি ছবিতে কম্পোজিট করবে, যা ছবির ন্যূনতম, সর্বাধিক, গড় বা স্ট্যান্ডার্ড ডেভিয়েশনকে দেখাবে। (রিডিউসার সম্পর্কে আরও তথ্যের জন্য রিডিউসার বিভাগ দেখুন)। যেমন, কোনও কালেকশন থেকে মধ্যক ভ্যালু সহ ছবি তৈরি করতে:

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

// Load a Landsat 8 collection for a single path-row.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01');

// Compute a median image and display.
var median = collection.median();
Map.setCenter(-122.3578, 37.7726, 12);
Map.addLayer(median, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Median');

Python সেট-আপ

Python API এবং ইন্টার‍্যাক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করা সম্পর্কে তথ্যের জন্য Python এনভায়রনমেন্ট পৃষ্ঠা দেখুন।

import ee
import geemap.core as geemap

Colab (Python)

# Load a Landsat 8 collection for a single path-row.
collection = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01')
)

# Compute a median image and display.
median = collection.median()
m = geemap.Map()
m.set_center(-122.3578, 37.7726, 12)
m.add_layer(median, {'bands': ['B4', 'B3', 'B2'], 'max': 0.3}, 'Median')
m

আউটপুট ছবির প্রতিটি লোকেশনে, প্রতিটি ব্যান্ডে, পিক্সেল ভ্যালু হল ইনপুট ছবির (সংগ্রহে থাকা ছবি) সব আনমাস্কড পিক্সেলের মধ্যক। আগের উদাহরণে, নিম্নলিখিত কলের জন্য median() হল একটি সুবিধাজনক পদ্ধতি:

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

// Reduce the collection with a median reducer.
var median = collection.reduce(ee.Reducer.median());

// Display the median image.
Map.addLayer(median,
             {bands: ['B4_median', 'B3_median', 'B2_median'], max: 0.3},
             'Also median');

Python সেট-আপ

Python API এবং ইন্টার‍্যাক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করা সম্পর্কে তথ্যের জন্য Python এনভায়রনমেন্ট পৃষ্ঠা দেখুন।

import ee
import geemap.core as geemap

Colab (Python)

# Reduce the collection with a median reducer.
median = collection.reduce(ee.Reducer.median())

# Display the median image.
m.add_layer(
    median,
    {'bands': ['B4_median', 'B3_median', 'B2_median'], 'max': 0.3},
    'Also median',
)
m

মনে রাখবেন যে, সুবিধাজনক পদ্ধতির পরিবর্তে reduce() ব্যবহার করার ফলে ব্যান্ডের নাম আলাদা হয়। বিশেষ করে, রিডিউসারের নাম ব্যান্ড নামের সাথে যোগ করা হয়েছে।

reduce() ব্যবহার করে আরও জটিল রিডাকশনও করা সম্ভব। যেমন, কোনও কালেকশনের উপর দীর্ঘমেয়াদী লিনিয়ার ট্রেন্ড গণনা করতে, লিনিয়ার রিগ্রেশন রিডিউসারগুলির মধ্যে একটি ব্যবহার করুন। নিম্নলিখিত কোডটি MODIS এনহ্যান্সড ভেজিটেশন ইনডেক্সের (EVI) লিনিয়ার ট্রেন্ড গণনা করে:

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

// This function adds a band representing the image timestamp.
var addTime = function(image) {
  return image.addBands(image.metadata('system:time_start')
    // Convert milliseconds from epoch to years to aid in
    // interpretation of the following trend calculation.
    .divide(1000 * 60 * 60 * 24 * 365));
};

// Load a MODIS collection, filter to several years of 16 day mosaics,
// and map the time band function over it.
var collection = ee.ImageCollection('MODIS/061/MYD13A1')
  .filterDate('2004-01-01', '2010-10-31')
  .map(addTime);

// Select the bands to model with the independent variable first.
var trend = collection.select(['system:time_start', 'EVI'])
  // Compute the linear trend over time.
  .reduce(ee.Reducer.linearFit());

// Display the trend with increasing slopes in green, decreasing in red.
Map.setCenter(-96.943, 39.436, 5);
Map.addLayer(
    trend,
    {min: 0, max: [-100, 100, 10000], bands: ['scale', 'scale', 'offset']},
    'EVI trend');

Python সেট-আপ

Python API এবং ইন্টার‍্যাক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করা সম্পর্কে তথ্যের জন্য Python এনভায়রনমেন্ট পৃষ্ঠা দেখুন।

import ee
import geemap.core as geemap

Colab (Python)

# This function adds a band representing the image timestamp.
def add_time(image):
  return image.addBands(
      image.metadata('system:time_start')
      # Convert milliseconds from epoch to years to aid in
      # interpretation of the following trend calculation.
      .divide(1000 * 60 * 60 * 24 * 365)
  )


# Load a MODIS collection, filter to several years of 16 day mosaics,
# and map the time band function over it.
collection = (
    ee.ImageCollection('MODIS/061/MYD13A1')
    .filterDate('2004-01-01', '2010-10-31')
    .map(add_time)
)

# Select the bands to model with the independent variable first.
trend = collection.select(['system:time_start', 'EVI']).reduce(
    # Compute the linear trend over time.
    ee.Reducer.linearFit()
)

# Display the trend with increasing slopes in green, decreasing in red.
m.set_center(-96.943, 39.436, 5)
m = geemap.Map()
m.add_layer(
    trend,
    {
        'min': 0,
        'max': [-100, 100, 10000],
        'bands': ['scale', 'scale', 'offset'],
    },
    'EVI trend',
)
m

মনে রাখবেন যে এই উদাহরণে রিডাকশনের আউটপুট হল একটি দুই ব্যান্ড বিশিষ্ট ছবি যার একটি ব্যান্ড লিনিয়ার রিগ্রেশনের (scale) স্লোপের জন্য এবং একটি ব্যান্ড ইন্টারসেপ্টের (offset) জন্য। একটি ImageCollection-কে একটি Image-এ রিডিউস করার জন্য উপলভ্য রিডিউসারের তালিকা দেখতে API ডকুমেন্টেশন এক্সপ্লোর করুন।

কম্পোজিটের কোনও প্রোজেকশন নেই

ইমেজ কালেকশন কমিয়ে তৈরি করা কম্পোজিট ইমেজ যেকোনও অনুরোধ করা প্রোজেকশনে পিক্সেল তৈরি করতে পারে এবং তাই এটির কোনও নির্দিষ্ট আউটপুট প্রোজেকশন নেই। পরিবর্তে, কম্পোজিটে ডিফল্ট প্রোজেকশন হিসেবে ১-ডিগ্রি রেজোলিউশন পিক্সেল সহ WGS-84 থাকে। ডিফল্ট প্রজেকশন সহ কম্পোজিট আউটপুট প্রজেকশনের জন্য যা অনুরোধ করা হয়েছে তাতেই গণনা করা হবে। কোড এডিটরে কম্পোজিট দেখানোর মাধ্যমে অনুরোধ করা হয় (কোড এডিটর কীভাবে স্কেল এবং প্রোজেকশন সেট করে সেই সম্পর্কে জানুন) অথবা ReduceRegion বা Export-এর মতো অ্যাগ্রিগেশনে প্রোজেকশন/স্কেল স্পষ্টভাবে উল্লেখ করার মাধ্যমে অনুরোধ করা হয়।