Pengurangan ImageCollection

Pertimbangkan contoh perlunya mengambil median selama deret waktu gambar yang direpresentasikan oleh ImageCollection. Untuk mengurangi ImageCollection, gunakan imageCollection.reduce(). Hal ini akan mengurangi pengumpulan gambar menjadi gambar individual seperti yang diilustrasikan dalam Gambar 1. Secara khusus, output dihitung per piksel, sehingga setiap piksel dalam output terdiri dari nilai median dari semua gambar dalam koleksi di lokasi tersebut. Untuk mendapatkan statistik lainnya, seperti rata-rata, jumlah, varians, persentil arbitrer, dsb., pengurangan yang sesuai harus dipilih dan diterapkan. (Lihat tab Dokumen di Editor Kode untuk mengetahui daftar semua pengurangan yang saat ini tersedia). Untuk statistik dasar seperti min, maks, mean, dll., ImageCollection memiliki metode pintasan seperti min(), max(), mean(), dll. Metode ini berfungsi dengan cara yang sama seperti memanggil reduce(), kecuali nama band yang dihasilkan tidak akan memiliki nama pengurangan yang ditambahkan.

Diagram imageCollection.reduce
Gambar 1. Ilustrasi ee.Reducer yang diterapkan ke ImageCollection.

Untuk contoh pengurangan ImageCollection, pertimbangkan kumpulan gambar Landsat 5, yang difilter menurut jalur dan baris. Kode berikut menggunakan reduce() untuk mengurangi koleksi menjadi satu Image (di sini pengurangan median digunakan hanya untuk tujuan ilustrasi):

Editor Kode (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);

Penyiapan Python

Lihat halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

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

Tindakan ini akan menampilkan Image multi-band, yang setiap pikselnya adalah median dari semua piksel yang tidak disamarkan dalam ImageCollection di lokasi piksel tersebut. Secara khusus, pengurangan telah diulang untuk setiap band gambar input, yang berarti median dihitung secara independen di setiap band. Perhatikan bahwa nama band memiliki nama pengurangan yang ditambahkan: 'B1_median', 'B2_median', dll. Output akan terlihat seperti Gambar 2.

Untuk informasi selengkapnya tentang cara mengurangi koleksi gambar, lihat bagian pengurangan dalam dokumen ImageCollection. Secara khusus, perhatikan bahwa gambar yang dihasilkan dengan mengurangi ImageCollection tidak memiliki proyeksi. Artinya, Anda harus menetapkan skala secara eksplisit pada komputasi apa pun yang melibatkan output gambar yang dikomputasi dengan pengurangan ImageCollection.

Output ImageCollection.reduce
Gambar 2. Komposisi warna palsu dari median scene Landsat 5 pada tahun 2008.