reduceRegion
Untuk mendapatkan statistik nilai piksel di wilayah ee.Image
, gunakan
image.reduceRegion()
.
Tindakan ini akan mengurangi semua piksel dalam region menjadi
statistik atau representasi ringkas lainnya dari data piksel dalam region (misalnya,
histogram). Region direpresentasikan sebagai Geometry
, yang mungkin berupa
poligon, berisi banyak piksel, atau mungkin berupa satu titik, dalam hal ini hanya akan
ada satu piksel di region. Dalam kedua kasus tersebut, seperti yang diilustrasikan dalam Gambar 1, output
adalah statistik yang berasal dari piksel di region.

ee.Reducer
yang diterapkan ke gambar
dan region.Untuk contoh mendapatkan statistik piksel di wilayah gambar menggunakan reduceRegion()
, pertimbangkan untuk menemukan nilai spektral rata-rata komposit Landsat 5 tahun dalam batas Hutan Konifer Sierra Nevada (diilustrasikan oleh Gambar 2):
// Load input imagery: Landsat 7 5-year composite. var image = ee.Image('LANDSAT/LE7_TOA_5YEAR/2008_2012'); // Load an input region: Sierra Nevada. var region = ee.Feature(ee.FeatureCollection('EPA/Ecoregions/2013/L3') .filter(ee.Filter.eq('us_l3name', 'Sierra Nevada')) .first()); // Reduce the region. The region parameter is the Feature geometry. var meanDictionary = image.reduceRegion({ reducer: ee.Reducer.mean(), geometry: region.geometry(), scale: 30, maxPixels: 1e9 }); // The result is a Dictionary. Print it. print(meanDictionary);
Untuk memaksa komputasi, cukup cetak hasilnya, yang akan
ditampilkan Editor Kode sebagai Dictionary
di konsol. Outputnya akan terlihat seperti ini:
B1: 25.406029716816853 B2: 23.971497014238988 B3: 22.91059593763103 B4: 54.83164133293403 B5: 38.07655472573677 B6_VCID_2: 198.93216428012906 B7: 24.063261634961563

Perhatikan bahwa dalam contoh ini, pengurangan ditentukan dengan memberikan reducer
(ee.Reducer.mean()
), geometry
(region.geometry()
),
scale
(30 meter), dan maxPixels
untuk jumlah maksimum
piksel yang akan dimasukkan ke pengurangan. Skala harus selalu ditentukan dalam
panggilan reduceRegion()
. Hal ini karena dalam alur pemrosesan yang kompleks, yang
dapat melibatkan data dari berbagai sumber dengan skala yang berbeda, skala output
tidak akan ditentukan secara tidak ambigu dari input. Dalam hal ini, skala defaultnya adalah 1 derajat, yang umumnya menghasilkan hasil yang tidak memuaskan. Lihat halaman
ini untuk mengetahui informasi selengkapnya tentang cara Earth Engine menangani skala.
Ada dua cara untuk menetapkan skala: dengan menentukan parameter scale
, atau dengan menentukan CRS dan transformasi CRS. (Lihat glosarium untuk mengetahui informasi selengkapnya tentang CRS dan transformasi CRS). Misalnya, pengurangan meanDictionary
(di atas) setara dengan hal berikut:
// As an alternative to specifying scale, specify a CRS and a CRS transform. // Make this array by constructing a 4326 projection at 30 meters, // then copying the bounds of the composite, from composite.projection(). var affine = [0.00026949458523585647, 0, -180, 0, -0.00026949458523585647, 86.0000269494563]; // Perform the reduction, print the result. print(image.reduceRegion({ reducer: ee.Reducer.mean(), geometry: region.geometry(), crs: 'EPSG:4326', crsTransform: affine, maxPixels: 1e9 }));
Secara umum, menentukan skala sudah cukup dan menghasilkan kode yang lebih mudah dibaca. Earth Engine menentukan piksel mana yang akan dimasukkan ke pengurangan dengan merasterisasi wilayah terlebih dahulu. Jika skala ditentukan tanpa CRS, region akan dirasterisasi dalam proyeksi native gambar yang diskalakan ke resolusi yang ditentukan. Jika CRS dan skala ditentukan, wilayah akan dirasterisasi berdasarkan keduanya.
Piksel di region
Piksel ditentukan berada dalam region (dan diberi bobot) sesuai dengan aturan berikut, yang diterapkan dalam skala dan proyeksi yang ditentukan:
- Pengurang tanpa bobot (misalnya
ee.Reducer.count()
atauee.Reducer.mean().unweighted()
): piksel disertakan jika centroidnya berada dalam wilayah dan mask gambar bukan nol. - Pengurang berbobot (misalnya,
ee.Reducer.mean()
): piksel disertakan jika setidaknya (sekitar) 0,5% piksel berada dalam wilayah dan masker gambar bukan nol; bobotnya adalah minimum masker gambar dan (perkiraan) fraksi piksel yang tercakup oleh wilayah.
Parameter maxPixels
diperlukan agar komputasi berhasil. Jika parameter ini
dihilangkan dari contoh, error akan ditampilkan, yang terlihat seperti:
Ada beberapa opsi untuk mengatasi error ini: tingkatkan maxPixels
,
seperti dalam contoh, tingkatkan scale
, atau tetapkan bestEffort
ke
true, yang secara otomatis menghitung skala baru (lebih besar) sehingga maxPixels
tidak terlampaui. Jika Anda tidak menentukan maxPixels
, nilai default akan digunakan.