Memahami cara Earth Engine menangani skala sangat penting untuk menafsirkan hasil ilmiah yang diperoleh dari Earth Engine. Di sini, skala berarti resolusi piksel. Tidak seperti platform GIS dan pemrosesan gambar lainnya, skala analisis ditentukan dari output, bukan input. Secara khusus, saat Anda membuat permintaan untuk hasil, gambar yang akan ditampilkan, atau statistik, misalnya, Anda menentukan skala input data ke analisis. Konsep ini diilustrasikan dalam Gambar 1.
Piramida Gambar
Aset gambar di Earth Engine ada dalam beberapa skala, dalam piramida gambar. Kebijakan piramida (diwakili oleh garis putus-putus pada Gambar 1) menentukan cara setiap piksel pada tingkat piramida tertentu dihitung dari agregasi blok piksel 2x2 di tingkat yang lebih rendah berikutnya. Untuk gambar bernilai kontinu, nilai piksel dari tingkat atas piramida adalah nilai rata-rata piksel di tingkat yang lebih rendah berikutnya. Untuk gambar bernilai diskret, nilai piksel dari tingkat atas piramida adalah sampel (biasanya piksel kiri atas) piksel di tingkat yang lebih rendah berikutnya.
Tingkat terendah piramida gambar mewakili data gambar pada resolusi native, saat ditransfer ke Earth Engine. Selama proses transfer, data digabungkan (sesuai dengan kebijakan piramida) untuk membuat tingkat piramida yang lebih tinggi. Data digabungkan hingga seluruh gambar muat dalam ubin 256x256 piksel. Saat Anda menggunakan gambar dalam kode, Earth Engine memilih tingkat piramida dengan skala terdekat yang kurang dari atau sama dengan skala yang ditentukan oleh analisis Anda dan mengambil sampel ulang (menggunakan tetangga terdekat secara default) sesuai kebutuhan.
Skala analisis
Skala analisis di Earth Engine ditentukan berdasarkan "pull". Skala untuk
meminta input ke komputasi ditentukan dari output. Misalnya, jika Anda
menambahkan gambar ke Editor Kode atau elemen peta geemap, tingkat zoom peta akan menentukan
skala saat input diminta dari piramida gambar. Untuk komputasi lainnya, Anda
menentukan scale
sebagai argumen. Misalnya, menggunakan band NIR dari gambar Landsat, yang memiliki resolusi native 30 meter:
Editor Kode (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4'); var printAtScale = function(scale) { print('Pixel value at '+scale+' meters scale', image.reduceRegion({ reducer: ee.Reducer.first(), geometry: image.geometry().centroid(), // The scale determines the pyramid level from which to pull the input scale: scale }).get('B4')); }; printAtScale(10); // 0.10394100844860077 printAtScale(30); // 0.10394100844860077 printAtScale(50); // 0.09130698442459106 printAtScale(70); // 0.1150854229927063 printAtScale(200); // 0.102478988468647 printAtScale(500); // 0.09072770178318024
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4') def print_at_scale(scale): display( f'Pixel value at {scale} meters scale', image.reduceRegion( reducer=ee.Reducer.first(), geometry=image.geometry().centroid(), # The scale determines the pyramid level from which to pull the input scale=scale, ).get('B4'), ) print_at_scale(10) # 0.10394100844860077 print_at_scale(30) # 0.10394100844860077 print_at_scale(50) # 0.09130698442459106 print_at_scale(70) # 0.1150854229927063 print_at_scale(200) # 0.102478988468647 print_at_scale(500) # 0.09072770178318024
Dalam contoh ini, perhatikan bahwa nilai piksel di lokasi konstan (centroid gambar) bervariasi berdasarkan skala. Hal ini disebabkan karena berbagai tingkat piramida dipilih untuk skala yang berbeda. Untuk skala yang serupa, pengambilan sampel tetangga terdekat akan menghasilkan nilai piksel yang sama. Hal yang penting adalah dengan memvariasikan skala, input gambar yang berbeda akan diminta.
Saat Anda memvisualisasikan gambar dengan menambahkannya ke peta, Earth Engine akan menentukan skala dari tingkat zoom. Pertimbangkan contoh sederhana berikut, yang hanya menampilkan gambar Landsat:
Editor Kode (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); Map.centerObject(image, 17); Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.35}, 'image');
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') m = geemap.Map() m.center_object(image, 17) m.add_layer(image, {'bands': ['B4', 'B3', 'B2'], 'max': 0.35}, 'image') m
Peta mulai diperbesar sepenuhnya, sehingga piksel resolusi native terlihat dengan jelas. Memperkecil cukup jauh tidak akan menampilkan piksel yang sama, tetapi akan menampilkan tingkat piramida gambar yang lebih tinggi. Perlu juga diperhatikan bahwa peta Editor Kode dan peta geemap menggunakan proyeksi maps mercator (EPSG:3857), sehingga tingkat piramida gambar yang sesuai juga perlu diproyeksikan ulang sebelum ditampilkan. Pelajari lebih lanjut cara Earth Engine menangani proyeksi dari dokumen proyeksi.