ImageCollection Azaltmaları

ImageCollection ile temsil edilen bir resim zaman serisi üzerinde medyanı almanız gereken örneği düşünün. ImageCollection değerini azaltmak için imageCollection.reduce() değerini kullanın. Bu işlem, resim koleksiyonunu Şekil 1'de gösterildiği gibi tek bir resme indirger. Daha açık belirtmek gerekirse, çıkış piksel bazında hesaplanır. Böylece, çıkıştaki her piksel, koleksiyondaki tüm resimlerin söz konusu konumdaki medyan değerinden oluşur. Ortalama, toplam, varyans, rastgele yüzdelik dilim vb. gibi diğer istatistikleri elde etmek için uygun azaltıcı seçilmeli ve uygulanmalıdır. (Şu anda kullanılabilen tüm azaltıcıların listesi için Kod Düzenleyici'deki Dokümanlar sekmesine bakın). Minimum, maksimum, ortalama gibi temel istatistikler için ImageCollection, min(), max(), mean() gibi kısayol yöntemlerine sahiptir. Bu yöntemler, reduce() çağrılmasıyla tamamen aynı şekilde çalışır. Bunun tek istisnası, elde edilen bant adlarına azaltıcının adının eklenmemesidir.

imageCollection.reduce şeması
Şekil 1. Bir ImageCollection'a uygulanan ee.Reducer'ı gösteren görsel.

ImageCollection küçültme örneği olarak, yola ve satıra göre filtrelenmiş bir Landsat 5 görüntü koleksiyonu düşünün. Aşağıdaki kod, koleksiyonu bir Image değerine indirmek için reduce() değerini kullanır (burada orta değer azaltıcı, yalnızca açıklama amacıyla kullanılmıştır):

Kod Düzenleyici (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 kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Bu işlem, her pikseli ImageCollection'taki ilgili piksel konumundaki tüm maskesiz piksellerin ortanca değeri olan çok bantlı bir Image döndürür. Daha açık belirtmek gerekirse, azaltıcı, giriş görüntüsünün her bandı için tekrarlanmıştır. Yani medyan her bantta bağımsız olarak hesaplanır. Bant adlarına, azaltıcının adının eklendiğini unutmayın: 'B1_median', 'B2_median' vb. Çıkış, Şekil 2'ye benzer şekilde görünmelidir.

Resim koleksiyonlarını azaltma hakkında daha fazla bilgi için ImageCollection belgelerinin azaltma bölümüne bakın. Özellikle, ImageCollection'nin küçültülmesiyle oluşturulan resimlerin projeksiyon içermediğini unutmayın. Bu, hesaplanan görüntü çıktılarını içeren tüm hesaplamalarda ölçeği ImageCollection azaltarak açıkça ayarlamanız gerektiği anlamına gelir.

ImageCollection.reduce çıkışı
Şekil 2. 2008'deki Landsat 5 görüntülerinin medyan değerinin yanlış renk kompozit resmi.