Setelah Anda memahami JavaScript, pelajari cara memasukkan objek dan primitif JavaScript ke dalam container Earth Engine untuk dikirim ke server dan diproses di Google.
String
Misalnya, tentukan string, lalu masukkan ke dalam penampung ee.String()
untuk dikirim ke Earth Engine:
Editor Kode (JavaScript)
// Define a string, then put it into an EE container. var aString = 'To the cloud!'; var eeString = ee.String(aString); print('Where to?', eeString);
Anggap ee.Thing sebagai container untuk sesuatu yang ada di server. Dalam
contoh ini, string ditentukan terlebih dahulu, lalu dimasukkan ke dalam penampung. Anda juga dapat
menentukan penampung dan kontennya sekaligus. Contoh:
Editor Kode (JavaScript)
// Define a string that exists on the server. var serverString = ee.String('This is on the server.'); print('String on the server:', serverString);
Meskipun argumen pertama untuk print() hanyalah string di klien, argumen kedua sebenarnya dikirim ke server untuk dievaluasi, lalu dikirim kembali.
Angka
Gunakan ee.Number() untuk membuat objek angka di server. Misalnya, gunakan
metode JavaScript Math.E untuk membuat nilai konstan di server:
Editor Kode (JavaScript)
// Define a number that exists on the server. var serverNumber = ee.Number(Math.E); print('e=', serverNumber);
Metode ee.String() dan ee.Number() adalah
konstruktor. Konstruktor mengambil argumennya (dan mungkin parameter lainnya),
menempatkannya dalam container, dan menampilkan container beserta isinya sebagai objek Earth Engine
yang dapat Anda manipulasi dalam kode. Setiap konstruktor yang dimulai dengan ee
akan menampilkan objek Earth Engine.
Metode pada objek Earth Engine
Perhatikan bahwa setelah membuat objek Earth Engine, Anda harus menggunakan metode Earth Engine untuk memprosesnya. Dalam contoh ini, Anda tidak dapat menggunakan Math.log() JavaScript untuk memproses objek Earth Engine tersebut. Anda harus menggunakan metode setara yang ditentukan untuk
ee.Number:
Editor Kode (JavaScript)
// Use a built-in function to perform an operation on the number. var logE = serverNumber.log(); print('log(e)=', logE);
Dalam contoh ini, log() adalah metode untuk objek ee.Number. (Gunakan
tab Docs di sisi kiri
editor kode untuk melihat daftar semua metode untuk setiap jenis objek Earth Engine,
misalnya ee.Number > log()). Perhatikan bahwa metode objek Earth Engine menampilkan
objek Earth Engine lainnya.
Daftar
Untuk membuat daftar JavaScript menjadi objek ee.List di server, Anda dapat
menempatkan literal JavaScript ke dalam penampung seperti halnya angka dan string. Earth Engine juga menyediakan metode praktis sisi server untuk membuat urutan angka.
Contoh:
Editor Kode (JavaScript)
// Make a sequence the hard way. var eeList = ee.List([1, 2, 3, 4, 5]); // Make a sequence the easy way! var sequence = ee.List.sequence(1, 5); print('Sequence:', sequence);
Karena objek ee.List hanya ada di server, gunakan fungsi yang disediakan Earth Engine untuk berinteraksi dengannya. Misalnya, untuk mengeluarkan sesuatu dari daftar,
gunakan metode get() dari objek ee.List:
Editor Kode (JavaScript)
// Use a method on an ee.List to extract a value. var value = sequence.get(2); print('Value at index 2:', value);
Transmisi
Terkadang, Earth Engine tidak mengetahui jenis objek yang ditampilkan dari
metode. Anda, sebagai programmer, tahu bahwa variabel value
dalam contoh sebelumnya adalah objek angka. Namun, jika Anda mencoba menggunakan metode add()
dari ee.Number, Anda akan mendapatkan error seperti:
Hal ini umum terjadi pada fungsi get(), yang dapat menampilkan berbagai objek Earth Engine. Untuk memperbaikinya, gunakan konstruktor ee.Number untuk
mentransmisikan hasilnya:
Editor Kode (JavaScript)
// Cast the return value of get() to a number. print('No error:', ee.Number(value).add(3));
Kamus
Anda dapat membuat Dictionary Earth Engine dari objek JavaScript, seperti dengan string, angka, dan daftar. Pada waktu konstruksi, Anda dapat menggunakan fungsi JavaScript untuk
melakukan inisialisasi objek Earth Engine. Dalam hal ini, ee.Dictionary
dibuat langsung dari objek literal JavaScript:
Editor Kode (JavaScript)
// Make a Dictionary on the server. var dictionary = ee.Dictionary({ e: Math.E, pi: Math.PI, phi: (1 + Math.sqrt(5)) / 2 }); // Get some values from the dictionary. print('Euler:', dictionary.get('e')); print('Pi:', dictionary.get('pi')); print('Golden ratio:', dictionary.get('phi')); // Get all the keys: print('Keys: ', dictionary.keys());
Dalam contoh ini, perhatikan bahwa setelah memiliki ee.Dictionary, Anda harus
menggunakan metode pada ee.Dictionary untuk mendapatkan nilai (tidak seperti kamus
JavaScript dalam pelajaran sebelumnya). Secara khusus, get(key) menampilkan nilai yang terkait dengan key. Karena jenis objek yang ditampilkan oleh get()
bisa apa saja, jika Anda akan melakukan apa pun pada objek selain mencetaknya,
Anda harus mentransmisikannya ke jenis yang tepat. Perhatikan juga bahwa metode keys()
menampilkan ee.List.
Tanggal
Objek tanggal adalah cara Earth Engine merepresentasikan waktu. Seperti dalam contoh sebelumnya,
penting untuk membedakan antara objek
Date
JavaScript dan objek ee.Date Earth Engine. Buat ee.Date
dari string, dari Date JavaScript, atau menggunakan metode statis yang disediakan oleh
class ee.Date. (Lihat bagian Date di tab Docs untuk mengetahui detailnya). Contoh ini mengilustrasikan pembuatan tanggal dari string atau tanggal JavaScript yang mewakili milidetik sejak tengah malam pada 1 Januari 1970:
Editor Kode (JavaScript)
// Define a date in Earth Engine. var date = ee.Date('2015-12-31'); print('Date:', date); // Get the current time using the JavaScript Date.now() method. var now = Date.now(); print('Milliseconds since January 1, 1970', now); // Initialize an ee.Date object. var eeNow = ee.Date(now); print('Now:', eeNow);
Tanggal berguna untuk memfilter koleksi, khususnya sebagai argumen untuk metode filterDate(). Lihat bagian
halaman Memulai ini untuk mengetahui informasi selengkapnya tentang cara mengurutkan koleksi.
Digresi: meneruskan parameter berdasarkan nama
Argumen untuk metode Earth Engine dapat diteruskan secara berurutan, misalnya untuk membuat
ee.Date dari tahun, bulan, dan hari, Anda dapat meneruskan parameter
metode statis fromYMD() dalam urutan tahun, bulan, hari:
Editor Kode (JavaScript)
var aDate = ee.Date.fromYMD(2017, 1, 13); print('aDate:', aDate);
Atau, Anda dapat meneruskan parameter berdasarkan nama, dalam urutan apa pun. Meskipun mungkin memerlukan lebih banyak kode, hal ini dapat meningkatkan keterbacaan dan penggunaan kembali. Untuk meneruskan parameter berdasarkan nama, teruskan objek JavaScript yang kuncinya adalah nama parameter metode dan nilainya adalah argumen untuk metode tersebut. Contoh:
Editor Kode (JavaScript)
var theDate = ee.Date.fromYMD({ day: 13, month: 1, year: 2017 }); print('theDate:', theDate);
Perhatikan bahwa nama properti objek (kunci) cocok dengan nama yang ditentukan dalam
dokumen ee.Date.fromYMD(). Perhatikan juga bahwa
objek yang diteruskan sebagai argumen dapat disimpan dalam variabel untuk digunakan kembali, seperti
yang diilustrasikan oleh contoh objek JavaScript.
Anda kini memiliki pengantar JavaScript yang cukup untuk mulai menggunakan Earth Engine. Lihat halaman Klien vs. Server untuk penjelasan yang lebih mendetail tentang objek JavaScript vs. Earth Engine.
Di bagian berikutnya, pelajari lebih lanjut Konsep pemrograman fungsional untuk menggunakan loop for, kondisi if/else, dan iterasi secara efektif di Earth Engine.