ImageCollection में डेटा कम करना

ImageCollection से दिखाए गए इमेज की टाइम सीरीज़ के लिए, मीडियन निकालने के उदाहरण पर विचार करें. ImageCollection को कम करने के लिए, imageCollection.reduce() का इस्तेमाल करें. इससे इमेज का कलेक्शन कम हो जाता है और सिर्फ़ एक इमेज दिखती है, जैसा कि पहली इमेज में दिखाया गया है. खास तौर पर, आउटपुट का हिसाब पिक्सल के हिसाब से लगाया जाता है. इस हिसाब से, आउटपुट में मौजूद हर पिक्सल, उस जगह पर मौजूद कलेक्शन की सभी इमेज की औसत वैल्यू से बना होता है. अन्य आंकड़े पाने के लिए, जैसे कि औसत, योग, वैरिएंस, मनमुताबिक प्रतिशत वगैरह, सही रिड्यूसर को चुना और लागू किया जाना चाहिए. फ़िलहाल उपलब्ध सभी रिड्यूसर की सूची देखने के लिए, कोड एडिटर में दस्तावेज़ टैब देखें. कम से कम, ज़्यादा से ज़्यादा, औसत वगैरह जैसे बुनियादी आंकड़ों के लिए, ImageCollection के पास min(), max(), mean() वगैरह जैसे शॉर्टकट तरीके हैं. ये ठीक उसी तरह काम करते हैं जैसे reduce() को कॉल करना. हालांकि, इनसे मिले बैंड के नामों में, रिड्यूसर का नाम नहीं जोड़ा जाएगा.

imageCollection.reduce diagram
पहली इमेज. ImageCollection पर लागू किए गए ee.Reducer का इलस्ट्रेशन.

ImageCollection को कम करने के उदाहरण के लिए, पाथ और पंक्ति के हिसाब से फ़िल्टर की गई, Landsat 5 इमेज का कलेक्शन देखें. नीचे दिया गया कोड, कलेक्शन को एक Image तक कम करने के लिए reduce() का इस्तेमाल करता है. यहां उदाहरण के तौर पर, मीडियन रिड्यूसर का इस्तेमाल किया गया है:

कोड एडिटर (JavaScript)

// Load an image collection, filtered so it's not too much data.
var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1')
  .filterDate('2008-01-01', '2008-12-31')
  .filter(ee.Filter.eq('WRS_PATH', 44))
  .filter(ee.Filter.eq('WRS_ROW', 34));

// Compute the median in each band, each pixel.
// Band names are B1_median, B2_median, etc.
var median = collection.reduce(ee.Reducer.median());

// The output is an Image.  Add it to the map.
var vis_param = {bands: ['B4_median', 'B3_median', 'B2_median'], gamma: 1.6};
Map.setCenter(-122.3355, 37.7924, 9);
Map.addLayer(median, vis_param);

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

import ee
import geemap.core as geemap

Colab (Python)

# Load an image collection, filtered so it's not too much data.
collection = (
    ee.ImageCollection('LANDSAT/LT05/C02/T1')
    .filterDate('2008-01-01', '2008-12-31')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
)

# Compute the median in each band, each pixel.
# Band names are B1_median, B2_median, etc.
median = collection.reduce(ee.Reducer.median())

# The output is an Image.  Add it to the map.
vis_param = {'bands': ['B4_median', 'B3_median', 'B2_median'], 'gamma': 1.6}
m = geemap.Map()
m.set_center(-122.3355, 37.7924, 9)
m.add_layer(median, vis_param)
m

इससे एक मल्टी-बैंड Image मिलता है, जिसका हर पिक्सल उस पिक्सल की जगह पर ImageCollection में मौजूद सभी बिना मास्क वाले पिक्सल का मीडियन होता है. खास तौर पर, इनपुट इमेजरी के हर बैंड के लिए, रिड्यूसर को दोहराया गया है. इसका मतलब है कि हर बैंड में, मीडियन का हिसाब अलग से लगाया जाता है. ध्यान दें कि बैंड के नामों में, रिड्यूसर का नाम जोड़ा गया है: 'B1_median', 'B2_median' वगैरह. आउटपुट, दूसरे डायग्राम की तरह दिखना चाहिए.

इमेज कलेक्शन को कम करने के बारे में ज़्यादा जानने के लिए, ImageCollection दस्तावेज़ों का कम करने वाला सेक्शन देखें. खास तौर पर, ध्यान दें कि ImageCollection को कम करके बनाई गई इमेज में कोई प्रोजेक्शन नहीं होता. इसका मतलब है कि आपको ImageCollection की कमी के हिसाब से, कैलकुलेट की गई इमेज के आउटपुट से जुड़े किसी भी कैलकुलेशन के लिए, स्केल को साफ़ तौर पर सेट करना चाहिए.

ImageCollection.reduce का आउटपुट
दूसरी इमेज. साल 2008 में Landsat 5 से ली गई तस्वीरों के मीडियन का फ़ॉल्स कलर कंपोजिट.