Komputasi menggunakan Gambar

Setelah mengetahui cara memuat dan menampilkan gambar, kini saatnya menerapkan komputasi padanya. Misalnya, Anda dapat menghitung kemiringan medan dengan meneruskan gambar elevasi SRTM ke metode slope dari paket ee.Terrain.

Code Editor (JavaScript)

// Load the SRTM image.
var srtm = ee.Image('CGIAR/SRTM90_V4');

// Apply an algorithm to an image.
var slope = ee.Terrain.slope(srtm);

// Display the result.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.
Map.addLayer(slope, {min: 0, max :60}, 'slope');

Perhatikan bahwa dalam kode ee.Terrain.slope(srtm), gambar srtm disediakan sebagai argumen untuk algoritma kemiringan. Hasilnya akan terlihat seperti Gambar 3.

Tutorial_api_03_slope.png
Gambar 3. Gambar kemiringan.

Matematika gambar

Ada juga metode di class ee.Image yang dapat dipanggil pada objek gambar. Misalnya, Anda ingin melakukan perhitungan matematika menggunakan band gambar (terkadang disebut band math atau map algebra). Misalnya, Anda mungkin tertarik dengan operasi trigonometri pada gambar aspek. Untuk melakukannya, konversi terlebih dahulu gambar aspek ke radian, lalu panggil sin() di gambar tersebut. Menggunakan kembali gambar srtm kami,

Code Editor (JavaScript)

// Get the aspect (in degrees).
var aspect = ee.Terrain.aspect(srtm);

// Convert to radians, compute the sin of the aspect.
var sinImage = aspect.divide(180).multiply(Math.PI).sin();

// Display the result.
Map.addLayer(sinImage, {min: -1, max: 1}, 'sin');

Hasilnya akan terlihat seperti Gambar 4. Ada baiknya kita mempelajari kode aspect.divide(180).multiply(Math.PI).sin() lebih lanjut. Dengan menggabungkan beberapa metode seperti ini, kode mengatakan, 'bagi aspek dengan 180, kalikan hasilnya dengan π, dan terakhir ambil sin'. Anda dapat melakukan operasi matematika yang kompleks pada gambar dengan menggabungkan metode dengan cara ini. Lihat dokumen Image untuk mengetahui daftar lengkap operasi matematika, add(), subtract(), multiply(), dll.

Tutorial_api_04_sin.png
Gambar 4. Dosa aspek medan.

Statistik gambar

Kelas operasi lain yang berguna pada gambar melibatkan penghitungan statistik piksel di area gambar, atau overlay raster-vektor. Untuk menghitung statistik di Earth Engine, gunakan reducer seperti yang diwakili oleh class dalam paket ee.Reducer. Misalnya, Anda tertarik dengan rata-rata ketinggian di suatu wilayah. Anda dapat menentukan region dengan menggambar poligon menggunakan alat gambar geometri. Untuk menggambar wilayah secara interaktif, dapatkan alat gambar poligon (), lalu digitalkan poligon di atas area yang diinginkan dan klik Keluar setelah selesai. Perhatikan bahwa objek ee.Geometry yang dihasilkan otomatis diberi nama geometry dan ditambahkan sebagai impor di bagian atas skrip Anda. Ganti nama variabel tersebut menjadi 'polygon' dengan mengklik nama variabel dalam impor dan mengetik nama baru.

Selanjutnya, dapatkan nilai piksel rata-rata dalam poligon menggunakan kode berikut:

Code Editor (JavaScript)

// Compute the mean elevation in the polygon.
var meanDict = srtm.reduceRegion({
  reducer: ee.Reducer.mean(),
  geometry: polygon,
  scale: 90
});

// Get the mean from the dictionary and print it.
var mean = meanDict.get('elevation');
print('Mean elevation', mean);

Ada beberapa hal yang perlu diperhatikan di sini. Pertama, perhatikan bahwa reduceRegion() adalah metode yang tersedia untuk objek Image (pelajari lebih lanjut cara mengurangi wilayah di sini). Kedua, argumen metode disediakan dalam objek JavaScript yang diteruskan sebagai satu argumen. (Secara khusus, kunci objek adalah nama parameter metode. Nilainya adalah argumen untuk metode). Ketiga, parameter reducer menentukan jenis statistik yang akan dihitung dan parameter geometry menentukan region tempat statistik akan dihitung. Parameter scale adalah ukuran piksel dalam meter yang akan digunakan. Untuk menghindari ambiguitas, Anda harus selalu menentukan skala saat melakukan pengurangan karena Earth Engine mungkin tidak dapat menentukan skala yang sesuai secara otomatis dari input. (Pelajari skala di Earth Engine lebih lanjut).

Terakhir, nilai yang ditampilkan oleh reduceRegion() adalah kamus yang kuncinya adalah nama band dan nilainya adalah statistik piksel untuk band. Metode get() pada kamus menampilkan nilai yang sesuai dengan kunci yang diberikan sebagai argumen. Dalam hal ini, gambar srtm memiliki satu band, 'elevation', sehingga kode contoh mendapatkan statistik tersebut dari kamus dan mencetaknya.

Saat menjalankan kode ini, jika Anda mendapatkan error yang terlihat seperti:

Jangan khawatir! Ada beberapa hal yang dapat Anda lakukan untuk mengatasi error tersebut. Metode reduceRegion() memiliki pemeriksaan untuk memastikan Anda mempertimbangkan apakah Anda benar-benar ingin menyertakan begitu banyak piksel dalam komputasi Anda. Tindakan ini dimaksudkan untuk mencegah Anda melakukan sesuatu yang tidak masuk akal secara tidak sengaja, seperti mencoba menghitung rata-rata setiap piksel satu meter di dunia (jangan lakukan itu). Untuk mengatasi error, tetapkan parameter bestEffort ke true dengan menambahkan bestEffort: true ke kamus parameter, atau tetapkan parameter maxPixels ke nilai yang lebih tinggi dari default 10 juta piksel, atau keduanya. Jika bestEffort adalah benar (true), Earth Engine akan otomatis menghitung ulang skala sehingga maxPixels tidak terlampaui.

Penyimpangan: Skala di Earth Engine

Pada contoh sebelumnya, scale ditetapkan ke sekitar resolusi native gambar SRTM. Anda dapat menemukan resolusi asli gambar dengan:

Code Editor (JavaScript)

var scale = srtm.projection().nominalScale();
print('SRTM scale in meters', scale);

Jika Anda menentukan skala yang lebih kecil dari resolusi asli, Earth Engine akan dengan senang hati melakukan pengambilan sampel ulang gambar input menggunakan tetangga terdekat, lalu menyertakan semua piksel yang lebih kecil tersebut dalam penghitungan. Jika Anda menyetel skala menjadi lebih besar, Earth Engine akan menggunakan piksel input dari versi input yang diagregasi (yaitu, mendapatkan piksel dari tingkat piramida gambar yang lebih tinggi). Pelajari lebih lanjut cara Earth Engine menangani skala dalam dokumen ini.

Sejauh ini, Anda telah bekerja dengan satu gambar dengan satu band. Di halaman berikutnya, Anda akan mempelajari gambar multi-band dan kumpulan gambar.