Setelah Anda merasa nyaman dengan 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:
Code Editor (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 penampung untuk sesuatu yang ada di server. Dalam
contoh ini, string ditentukan terlebih dahulu, lalu dimasukkan ke dalam penampung. Anda juga dapat
menentukan penampung dan isinya sekaligus. Contoh:
Code Editor (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 ke 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 konstanta di server:
Code Editor (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 penampung, dan menampilkan penampung serta isinya sebagai objek
Earth Engine yang dapat Anda manipulasi dalam kode Anda. Konstruktor apa pun yang dimulai dengan ee
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 yang setara yang ditentukan untuk
ee.Number
:
Code Editor (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:
Code Editor (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 mendapatkan sesuatu dari daftar,
gunakan metode get()
dari objek ee.List
:
Code Editor (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 suatu 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 jenis objek Earth Engine. Untuk memperbaikinya, gunakan konstruktor ee.Number
untuk
meng-cast hasilnya:
Code Editor (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
string, angka, dan daftar. Pada waktu konstruksi, Anda dapat menggunakan fungsi JavaScript untuk
menginisialisasi objek Earth Engine. Dalam kasus ini, ee.Dictionary
dibuat langsung dari objek literal JavaScript:
Code Editor (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()
dapat berupa apa saja, jika Anda akan melakukan sesuatu 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,
kita harus 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 Tanggal di
tab Dokumen untuk
detailnya). Contoh ini mengilustrasikan pembuatan tanggal dari string atau tanggal JavaScript yang mewakili milidetik sejak tengah malam pada 1 Januari 1970:
Code Editor (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
ini di halaman Memulai untuk mengetahui informasi selengkapnya tentang mengurutkan koleksi.
Digresi: meneruskan parameter menurut nama
Argumen ke 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:
Code Editor (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 lebih banyak kode, hal ini dapat meningkatkan keterbacaan dan penggunaan kembali. Untuk meneruskan parameter menurut nama, teruskan objek JavaScript yang kuncinya adalah nama parameter metode dan nilainya adalah argumen ke metode. Contoh:
Code Editor (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.
Sekarang Anda telah cukup memahami JavaScript 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.