Wednesday, July 30, 2014

Meteo #11 - Cara Mengatasi GXSTRT Error pada OpenGrADS di Windows

Sebelumnya, mumpung masih dalam suasana lebaran, saya ingin mengucapkan Minal Aidin wal Faidzin. Mungkin pada tulisan-tulisan sebelumnya ada kata-kata yang salah atau menyinggung perasaan pembaca, mohon saya dimaafkan. Maklum, saya juga manusia yang masih terus belajar dari kesalahan :-)

Bila pada tulisan-tulisan sebelumnya saya lebih banyak mengulas teknik atau tips dalam menggunakan GrADS. Kali ini saya ingin sharing sedikit tentang troubleshooting, khususnya untuk OpenGrADS. Sekilas info bagi yang belum pernah menggunakan aplikasi ini, OpenGrADS, sesuai namanya adalah versi GrADS yang open-source. Ciri khas lainnya yang mungkin lebih menggoda : OpenGrADS bisa dijalankan di Windows (Selamat buat para Linux haters ^^). Walaupun bisa dijalankan di Windows, OpenGrADS pada dasarnya tetap membutuhkan lingkungan Linux, sehingga instalasi aplikasi ini di Windows umumnya dibarengi oleh emulator Linux seperti Cygwin dan X-ming server. Sehingga, tak jarang terjadi masalah ketika aplikasi ini dijalankan.

Masalah yang akan dibahas kali ini adalah kesalahan GXSTRT, ketika OpenGrADS tidak mau membuka jendela display pada saat mulai dijalankan. Kesalahan ini tidak terjadi ketika OpenGrADS dijalankan pada batch mode (opsi -b). Lucunya lagi, kesalahan ini terjadi pada OpenGrADS versi 2.0.1 ke atas. Saya sudah mencoba versi yang lebih rendah dan tidak menemukan kesalahan ini. Tiap kali saya memperbaharui OpenGrADS ke versi terbaru, kesalahan ini selalu terjadi.

Kurang lebih tampilan kesalahannya seperti di bawah:


Selidik punya selidik, kesalahan ini tidak terjadi ketika PC terhubung ke internet atau LAN. Jadi kesimpulan sementara, kesalahan ini disebabkan karena X-ming server membutuhkan jaringan untuk dapat menampilkan jendela display. Kenapa bisa begitu, saya juga belum paham, karena pada versi sebelumnya tidak pernah ada masalah seperti ini.

Solusinya ? Sudah jelas, anda harus terhubung ke jaringan. Nah kalo PC anda stand alone dan tidak ada jaringan yang bisa dihubungkan dengan PC ? Bikin aja jaringannya. Nggak mesti harus fisik, tetapi bisa virtual.

Bagi anda yang sudah menginstalasi VMware, selamat. Sejak pertama diinstalasi, VMware akan membuat jaringan virtual pada PC, sehingga kesalahan GXSTRT ini tidak akan terjadi. Untuk yang tidak menginstall VMware, anda juga bisa tetap mengakali si X-ming server ini dengan menginstall Microsoft Loopback Adapter. Caranya sebagai berikut :

  • Masuk ke Device Manager. Caranya klik Start. Lalu klik kanan Computer dan pilih Properties. Ketika jendela info komputer terbuka, perhatikan panel sebelah kiri, dan klik Device Manager.

  • Klik PC anda. Lalu pada menu pilih Action - Add legacy hardware.

  • Pada wizard, pilih "Install the hardware that I manually select from a list (Advanced)".
  • Pada daftar pilih "Network Adapter" dan klik Next. Tunggu sampai Windows memuat semua device network adapter.

  • Pada daftar "Manufacturer", pilih "Microsoft". Lalu pada daftar Network Adapter, pilih "Microsoft Loopback Adapter". Lalu klik Next. Tunggu sampai proses instalasi selesai.
  • Jalankan kembali OpenGrADS, dan kali ini jendela display akan bisa ditampilkan.

Selamat mencoba.

Tuesday, June 24, 2014

Gunpla #22 - MG Blitz Gundam Review

Finally, The Blitz, the original black Gundam of Gundam SEED and my fourth master grade kit. Believe it or not, I spent almost one year to finish this guy. I finished building it in August 2013, anyway I was occupied with my job hence I felt too lazy to complete linings and decaling on Blitz. However, I could complete it finally, after I watched Mobile Suit Unicorn eps.7. Let's say, Banshee Gundam on the OVA inspired me to complete the Blitz.


And .. here we got the Blitz. This mobile suit was probably the 'sexiest' of all GAT-X brothers. Piloted by Nicole Almafi of ZAFT, the Blitz was intended to be the stealth master of all mobile suits. Using its Mirage colloid stealth system, this thing could penetrate any enemy bases without any traces detected. Mostly utilized short range weaponry, the Blitz was the complete opposite of its brother unit, Buster, which specialized on long range attacks. 


Back to the kit, I could say, I'm happy with the builds. The color scheme is just perfect. The combination of black, red, yellow, purple and white were great to emphasize the stealth theme of Blitz. And of course, because of it's almost black, I have no any difficulties to the linings. And I have to mention about the eyes of Blitz, the blue eyes looks evil and menacing. I like it. The joints were strong and tight, hence the articulation was also good. You got 'small' gimmicks for the shoulder which depicts the stealth mode of Blitz.  The dry transfer decals were fine, but sadly, the clear stickers were terrible, hence I decide to use mostly on decals than stickers. 


For accessories, you got a very big Trikeros shield, a beam saber (with two beam blades), three lancer darts, and the infamous Gleipnir grappling 'claw'. The weapon set was just unique, while other mobile suits use shield on the left and the main weapons on the right, Blitz utilized the opposite system. Anyway, I honestly could say, I'm not a big fan of the weapons. Seriously, why use lancer darts in battles while you could guns, laser or beam weapons ? If you watched SEED, you will understand what I said when Blitz was destroyed by Strike. Anyway, my favorite thing about the Blitz's weapons was the claw, obviously. It's so cool !


My final thoughts about the Blitz, as well as any other remastered of SEEDs MG kits, this is a very very good kit. The color scheme is nice, the accessories are just cool and the articulation just fine. The most annoying thing was a piece of top chest armor which looks fragile and keeps falling down. But, anyway, Blitz still one of my favorite suits on Gundam SEED.






------------

GAT-X207 Blitz Gundam

Pros :
  • Unique color scheme, especially when you like black mobile suits.
  • Cool weapons system
  • Stiff joints and good articulation
Cons :
  • Some parts look fragile and keep falling down, especially the top chest armor.
  • The peg connector of trikeros cable was quite weak to support the weight of the claw.
  • Lancert darts were not tightly placed under the shields, thus tend to fall whenever on of them was pulled out.

Friday, June 20, 2014

Meteo #10 - Cara Menjalankan Model WRF-EMS (Part 2 - Mastering Your Domains)

Setelah kita sukses melakukan instalasi model dan mengatur zona waktu sistem sesuai dengan waktu yang benar, maka tiba saatnya untuk masuk ke dunia modeling yang sebenarnya.

Pada dasarnya, menjalankan WRF-EMS sangat mudah. Bila diringkas, kurang lebih ada empat langkah utama untuk menjalankan model ini, yaitu :
  1. Membuat domain model
  2. Melakukan persiapan dan inisiasi data model
  3. Menjalankan simulasi model
  4. Memproses data keluaran model
Tentunya, langkah-langkah di atas masih bisa dijabarkan ke dalam langkah/proses yang lebih detil. Tapi intinya, untuk menjalankan model (secara default), keempat langkah di atas sudah lebih dari cukup.

Kita mulai dari langkah pertama, yaitu membuat domain model. Apa sih yang dimaksud dengan domain ?

Singkat cerita, Domain adalah daerah tempat simulasi model dijalankan. Misalnya, anda ingin melakukan prediksi untuk daerah Jawa, maka setidaknya anda harus membuat domain yang mencakup daerah Jawa. Bila anda ingin melakukan prediksi wilayah Riau, ya buatlah domain yang mencakup daerah Riau dan seterusnya. 

Domain yang dibuat dapat berdiri sendiri, misalnya domain 1 untuk Jawa saja atau domain 2 untuk Sumatera saja ... ATAU ... dibuat sebagai bagian domain lain. Misalnya domain 1 untuk seluruh Indonesia, lalu domain 2 mencakup Jawa (bagian dari domain 1), lalu domain 3 mencakup daerah Jabodetabek (bagian dari domain 2). Proses pembagian domain yang satu ke dalam domain lain inilah yang disebut sebagai Nesting. Dalam nesting, umumnya akan ada (minimal) satu domain yang menjadi domain induk (parent) dan satu atau lebih domain anak (child). Dalam contoh sebelumnya, Domain 1 (Indonesia) akan menjadi induk, sedangkan Domain 2 (Jawa) menjadi anaknya. Selanjutnya, Domain 2 ini akan menjadi domain induk dari Domain 3 (Jabodetabek). Untuk jelasnya, perhatikan gambar berikut :


Pada gambar di atas, saya membuat 4 domain untuk simulasi model. Domain 1 mencakup seluruh Indonesia. Lalu ada dua domain anak untuk domain 1, yaitu Domain 2 yang mencakup daerah Jawa dan Domain 3 yang mencakup daerah Riau. Domain 2 sendiri adalah domain induk untuk domain 4 yang mencakup daerah Jawa Barat.

Pertanyaannya sekarang, apa perlunya menggunakan nesting domain ?

Dengan menggunakan nesting, anda bisa menjalankan simulasi model untuk tiap domain secara bersamaan sebagai suatu kesatuan sistem. Artinya, anda hanya satu perlu satu set data yang bisa dipakai bersama-sama oleh tiap domain. Pada contoh di atas, data yang dipakai pada Domain 1 (Indonesia) bisa dipakai untuk daerah Jawa (Domain 2), Riau (Domain 3) ataupun Jawa Barat (Domain 4). Bila nesting tidak digunakan, maka tiap domain akan membutuhkan data untuk masing-masing domain, Domain 2 butuh data untuk daerah Jawa, tidak bisa menggunakan data untuk domain 3 (Riau). Tentunya ini akan sangat memboroskan waktu dan tenaga, apalagi kalau koneksi internet anda amburadul (ingat, data model diunduh dari internet).

Kelebihan lainnya, nesting memungkinkan simulasi pada domain anak dengan resolusi tinggi dengan resource sistem yang lebih sedikit dibandingkan simulasi pada domain tunggal dengan resolusi yang sama. Artinya, dengan spesifikasi sistem (memori/CPU) yang terbatas, kita bisa menjalankan simulasi untuk domain dengan resolusi tinggi. Hal ini bisa dilakukan, karena domain anak hanyalah merupakan bagian kecil dari domain induk.

OK. Lalu bagaimana caranya membuat domain pada WRF-EMS ? 

Pertama, jalankan VMware, lalu jalankan CentOS (atau Linux tempat anda menginstall WRF-EMS) dan loginlah seperti biasa. Setelah login, jalankan terminal, dan ketikkan 'dwiz'. Ini adalah perintah untuk menjalankan Domain Wizard untuk membuat domain model.



Anda akan diberi pilihan untuk membuat domain baru atau membuka domain yang sudah pernah dibuat. Pilihlah 'Create New Domain' untuk membuat domain baru dan klik 'Continue'. Anda akan diminta untuk memasukkan nama dan deskripsi domain. Untuk nama domain, masukkanlah karakter seperti biasa, misalnya indonesia1. Huruf kapital dan spasi tidak berlaku, artinya nama domain hanya berupa 1 kata dalam huruf kecil. Untuk deskripsi domain, silakan masukkan kata/kalimat dengan karakter biasa (bebas) yang mendeskripsikan domain yang dibuat. Bila sudah, klik 'Continue'.


Jendala domain wizard akan terbuka. Anda akan disuguhi peta Bumi pada panel bagian kiri. Geserlah slider vertikal dan horizontal untuk menemukan peta Indonesia.


Langkah berikutnya, arahkan kursor ke peta dan drag untuk membuat domain daerah Indonesia. Perhatikan perubahan pada bagian Projection Options di panel kanan. Untuk Tipe Proyeksi, pilihlah Mercator. Sebagai catatan, WRF memiliki dua core, yaitu ARW dan NMM (baca postingan sebelumnya tentang instalasi WRF-EMS). Bila anda memilih core NMM, anda hanya bisa menggunakan tipe proyeksi Rot Lat Lon. Untuk ARW, anda bisa memilih tipe yang lain. Tulisan ini dibuat untuk core ARW, jadi (untuk sementara) pilihlah Mercator. Bila sudah, klik 'Update Map' pada bagian Actions di panel kiri bawah. Bila anda kurang yakin dengan daerah domain yang dibuat, klik 'Start Over', dan anda akan diminta memilih daerah domain lagi pada peta dan mengulangi langkah sebelumnya.


Begitu anda memilih Update Map, Domain Wizard akan meng-crop peta sesuai dengan daerah domain yang telah anda pilih. Setelah selesai, perhatikan bagian Grid Options di panel kanan, anda bisa melihat dimensi domain yang akan anda buat. Bagian yang paling penting di sini adalah Grid Points Distance (km), yang merupakan resolusi spasial dari domain model yang anda buat. Resolusi spasial ini akan mempengaruhi keakuratan, proses simulasi serta ukuran data keluaran model. Domain Wizard secara otomatis akan memilih resolusi yang sesuai dengan daerah yang anda pilih, termasuk resolusi data Geografis. Perlu diingat, resolusi domain dan resolusi data geografis adalah dua hal yang berbeda. Resolusi domain merupakan jarak antar grid point domain yang akan disimulasikan, sedangkan resolusi data geografis merupakan resolusi data geografis seperti data tutupan lahan, jenis tanah dan lain-lain, sebagai salah satu data masukan model. 



Anda bisa mengatur resolusi domain (Grid points distance) sesuai selera, dan domain wizard akan menyesuaikan daerah domain pada peta dan resolusi data geografis dengan pilihan anda, misalnya, menggunakan grid points 25 km (resolusi 25 km) untuk seluruh wilayah Indonesia. Anda juga bisa memilih resolusi data geografis sesuai selera, misalnya 10 menit (~18.5 km), 5 menit (~9.2 km), 2 menit (~3.7 km), atau 30 detik (~1 km). Yang perlu diperhatikan, semakin tinggi resolusi domain, maka waktu simulasi akan bertambah. Selain itu pilihlah resolusi data geografis yang sesuai dengan resolusi domain anda, misalnya resolusi domain anda 25 km, pilihlah resolusi data geografis 10 menit (~18.5 km), jangan timpang (misalnya 1 menit). Pada contoh ini, saya menggunakan resolusi 50 km pada domain yang saya buat. Tapi semua anda yang menentukan, dengan konsekuensi yang anda tanggung sendiri. You have the power ;-)

Oh iya, untuk data Land-use, anda bisa menggunakan data Modis sebagai alternatif untuk data USGS yang menjadi default model. Bedanya, data Modis menggunakan 20 kategori land-use bila dibandingkan dengan USGS yang menggunakan 24 kategori land-use. Untuk sementara, pakai yang default saja. Untuk data Danau resolusi tinggi (Hi-Def Lakes), tidak perlu dipilih.

Selanjutnya, bila anda ingin membuat nesting untuk domain anak, silakan baca paragraf ini. Bila tidak, silakan lanjut 2 paragraf setelah paragraf ini. Misalnya anda ingin membuat domain untuk daerah Jawa. Pada panel kanan atas, pilih Nests. Pada Nested Domain Properties, pilih Domain 1(ID 1), lalu klik New. Pada bagian Grid Spacing Ration to Parent, anda bisa memilih resolusi domain anak dengan perbandingan 1:3, 1:5 atau 1:7 dari domain induk. Artinya, bila domain induk memiliki resolusi 50 km, maka dengan perbandingan 1:5, domain anak akan memiliki resolusi 10 km. Resolusi data geografis akan disesuaikan berdasarkan resoluis domain. Pada contoh ini, saya menggunakan resolusi 10km (perbandingan 1:5) untuk domain anak (domain 2).


Setelah membuat domain 2, arahkan mouse ke tengah kotak daerah domain 2 (sampai kursor berubah menjadi bentuk tangan) dan drag ke daerah pulau Jawa. Seperti gambar di bawah :


Kembali ke bagian Domain, setelah yakin dengan pilihan anda, klik Next. Bila masih belum yakin dengan pengaturan resolusi, klik Reset Grid. Bila ingin mengulang proses pemilihan domain dari awal, pilih Start Over.

Langkah berikutnya adalah lokalisasi domain (bukan 'lokalisasi' yang lain ya). Caranya mudah, tinggal klik Localize Domain pada domain wizard. 


Lokalisasi domain kurang lebih bertujuan untuk melakukan crop pada data geografis global dari model, sesuai dengan domain yang telah anda buat. Masing-masing domain akan memiliki data geografis masing-masing sesuai dengan resolusi yang telah anda buat. Tunggulah sampai proses lokalisasi (geogrid) ini selesai, sampai tampilan berikut ini muncul :


Ketika proses lokalisasi sukses, maka bisa dikatakan pembuat domain telah berhasil. Anda bisa mengulangi proses (kalau diperlukan), atau melihat data geografis yang telah dilokalisasi tadi dengan melakukan klik pada 'Next'. 

Data geografis yang telah dilokalisasi tadi disimpan ke dalam data dengan format NetCDF. Anda bisa menampilkan data geografis tadi dengan meng-klik View in Panoply (and Google Earth). Anda juga bisa mengklik 'Exit' bila ingin keluar dari domain wizard.



Bila anda berhasil keluar dari domain wizard, maka domain anda telah berhasil dibuat. WRF-EMS akan membuat direktori baru sesuai dengan nama domain anda pada :

/<direktori instalasi WRF-EMS>/runs/<nama domain anda>

Pada kasus saya, direktori untuk domain indonesia1 di atas adalah :

/usr/wrfems/runs/indonesia1/

Bila dilihat isi direktorinya, maka isi direktori tersebut adalah sebagai berikut :


Untuk saat ini, tidak perlu pusing dengan berbagai sub-direktori dan file yang ada pada direktori runs tersebut, karena semuanya akan dijelaskan pada tulisan berikutnya tentang : mempersiapkan/inisiasi data model WRF-EMS :-)


Thursday, June 19, 2014

Meteo #9 - Interpretasi Kode Parameter Variabel Data GRIB2 pada Control File GrADS

GRIB (GRIdded Binary atau General Regularly-distributed Information in Binary form) adalah salah satu format data yang umum digunakan untuk menyimpan data meteorologi historis ataupun prediksi/forecast. Para peneliti yang bergelut dengan dunia NWP umumnya sudah khatam dalam hal interpretasi data GRIB. Celakanya, data GRIB umumnya menjadi momok untuk modeler pemula (seperti saya yang baru 2 bulan lalu masuk ke dunia permodelan), karena format ini masih kalah populer dibandingkan format data lain seperti Plain Binary, NetCDF ataupun HDF. Hingga saat ini, salah satu format GRIB yang biasa digunakan untuk keluaran NWP (misal WRF-EMS) adalah GRIB2. 

Tulisan ini dibuat untuk (sedikit) mengurangi kebingungan kita (baca: penulis) dalam hal interpretasi parameter data GRIB2 yang ada pada file kontrol (CTL) GrADS, tool analisis sejuta umat kita. Pertanyaannya, interpretasi parameter yang bagaimanakah yang membuat bingung ?

Untuk memberi gambaran yang lebih jelas, perhatikan bagian VAR dari file CTL GrADS untuk file plain binary biasa  (dalam hal ini data GSMaP NRT) berikut : 

VARS 1
precip 0 99 hourly averaged rain rate [mm/hr]
ENDVARS

Karena syntaxnya adalah :

VARS <jumlah variabel>
<nama variabel> <jumlah level> <satuan> <deskripsi variabel>
ENDVARS

Maka, bila diartikan dalam 'bahasa manusia' kurang lebih seperti ini : "Data ini memiliki 1 variabel, dengan nama precip, hanya memiliki 1 level, dan tidak memiliki satuan khusus." Deksripsinya (bagian hourly bla bla) silakan baca sendiri lah ya.

Sekarang mari kita bandingkan dengan bagian VAR dari file CTL data GRIB2 yang dihasilkan WRF-EMS :

VARS 149
no4LFTX180_0mb  0,108,18000,0   0,7,11 ** 180-0 mb above ground Best (4 Layer) Lifted Index [K]
ACPCPaccsfc  0,1,0   0,1,10,1 ** surface Convective Precipitation [kg m-2]
ACPCPsfc  0,1,0   0,1,10 ** surface Convective Precipitation [kg m-2]
AGRPLaccsfc  0,1,0   0,1,153,1 ** surface Accumulated Graupel [kg/m^2]
...
...
VVELprs    38,100  0,2,8 ** (1013 1000 975 950 925.. 200 150 100 50 25) Vertical Velocity (Pressure) [Pa/s]
VVMEANl100_100  0,100,100000,40000   0,2,159,0 ** 1000-400 mb Mean Vertical Velocity From 1000 To 400mb [m/s]
VWSH610m   0,103,610   0,2,25 ** 610 m above ground Vertical Speed Sheer [s-1]
WEASDaccsfc  0,1,0   0,1,13,1 ** surface Water Equivalent Of Accumulated Snow Depth [kg m-2]
WEASDsfc  0,1,0   0,1,13 ** surface Water Equivalent Of Accumulated Snow Depth [kg m-2]
WTMPsfc   0,1,0   10,3,0 ** surface Water Temperature [K]
ZRATEsfc   0,1,0   0,1,67 ** surface Freezing Rain Precipitation Rate [kg m-2 s-1]
ZRMAXsfc   0,1,0   0,1,173,2 ** surface Period Maximum Freezing Rainfall Rate [kg/m^2/s]
ENDVARS

Tidak hanya jumlah variabel yang mencapai 3 digit, tapi deksripsi beberapa variabel yang sama seringkali membuat (saya) kebingungan. Satu-satunya petunjuk yang membedakan variabel yang nyaris sama tersebut adalah pada bagian level dan satuan. Masalahnya, format level dan satuan GRIB2 lebih rumit dibandingkan dengan format binary biasa, karena mengandung 3-5 parameter tambahan yang dipisahkan koma.

Setelah mengulik-ngulik dokumentasi GrADS dan format GRIB2, akhirnya pencerahan itu datang juga. Jadi, syntax untuk variabel GRIB2 pada file CTL GrADS bisa dituliskan seperti ini :

VARS
<nama variabel> <NLEVS,LTYPE,LVAL,LVAL2,LTYPE2> <DISC,CAT,NUM,SP,SP2> <deskripsi variabel>
ENDVARS

OK, sekarang penjelasannya :

1. Kode Level
  • NLEVS adalah jumlah level vertikal dari variabel. NLEVS=0 berarti data tersebut hanya memiliki 1 level saja. 
  • LTYPE adalah tipe level dari variabel. Nilainya bergantung pada kode GRIB2 untuk level vertikal. Misalnya : 100, berarti variabel tersebut menggunakan tipe level isobaric dalam satuam Pascal. Untuk daftar kode yang lengkap bagi NLEVS>0 (banyak level) silakan lihat tabel berikut. Untuk NLEVS=0 (hanya 1 level fixed) silakan lihat tabel berikut. 
  • LVAL adalah nilai level pertama (LTYPE), tidak selalu digunakan. Umumnya digunakan untuk tipe variabel pada lapisan antara dua level. 
  • LVAL2 adalah nilai level kedua, hanya untuk tipe variabel pada lapisan antara dua level. 
  • LTYPE2 adalah tipe dari level kedua (LTYPE2), tidak selalu digunakan, hanya digunakan bila LVAL2 berbeda tipe dengan LVAL1.
Contoh : 

VVELprs    38,100  0,2,8 ** (1013 1000 975 950 925.. 200 150 100 50 25) Vertical Velocity (Pressure) [Pa/s]


Variabel 'VVELprs' memiliki 38 level vertikal dengan tipe isobaric. Contoh lain yg lebih rumit :

no4LFTX180_0mb  0,108,18000,0   0,7,11 ** 180-0 mb above ground Best (4 Layer) Lifted Index [K]

Variabel 'no4LFTX180_0mb' hanya memiliki level fixed (hanya 1 level), dengan tipe berupa perbedaan level tekanan tertentu (kode 108), dengan level pertama 18000 Pascal (180 mb) dan level kedua 0 Pascal.

2. Kode Unit/Satuan dan Proses
  • DISC adalah kode disiplin (ilmu/data) dari variabel atau parameter. Misalnya : 0 untuk meteorologi, 1 untuk hidrologi, 2 untuk permukaan tanah dll. Tabel lengkap bisa dilihat di sini.
  • CAT adalah kategori parameter. Misal : 0 untuk temperatur, 1 untuk kelembaban dll. Tabel lengkap bisa dilihat pada bagian sebelumnya (DISC).
  • NUM adalah nomor parameter. Misal : 4 untuk temperatur maksimum, 5 untuk temperatur minimum dll. Tabel lengkap bisa dilihat pada bagian sebelumnya (DISC).
  • SP adalah proses statistik yang digunakan untuk memperoleh nilai parameter. Umumnya digunakan untuk parameter turunan. Misalnya : 0 untuk rata-rata, 1 untuk akumulasi dll. Tabel lengkap bisa dilihat di sini.
  • SP2 adalah proses spasial yang digunakan untuk memperoleh nilai parameter. Umumnya digunakan untuk data spasial. Misalnya : 1 untuk interpolasi bilinear, 2 untuk interpolasi bicubic dll. Tabel lengkap bisa dilihat di sini.
Contoh :


APCPaccsfc  0,1,0   0,1,8,1 ** surface Total Precipitation [kg m-2]

APCPaccsfc adalah parameter meteorologi, dari kategori kelembaban, dengan tipe presipitasi total, yang diperoleh dari proses akumulasi. Contoh lain :


CURMAXsfc   0,1,0   0,1,156,2 ** surface Maximum Convective Precipitation Rate [kg/m^2/s]

CURMAXsfc adalah parameter meteorologi, dari kategori kelembaban, tipe parameter tertentu, yang diperoleh dari nilai maksimum. 

----

Mungkin ada yg bertanya, kenapa capek-capek menginterpretasi kode variabel kalau penjelasannya sudah ada di deskripsi variabel ? Jawabannya karena deskripsi variabel sifatnya opsional, dan bisa saja ngawur, alias tidak sesuai dengan variabel yang sebenarnya (misal variabel kelembaban dideskripsikan sebagai temperatur, dan GrADS tidak akan memeriksa kebenaran deskripsi data). Jadi pengetahuan tentang kode variabel sangat penting, bila deskripsi data tidak ada atau anda ragu pada deskripsi data yang ada.

Contoh terakhir, kali ini tanpa deskripsi data yg benar :

DVVMAXl100_100  0,100,100000,40000   0,2,221,2 ** bla bla deskripsi semau gue

Bila dibahasa manusiakan :

"Variabel DVVMAXl100_100 memiliki level fixed, tipe isobaric, level pertama pada 100000 Pascal (1000mb), level kedua 40000 Pascal (400mb), dengan disiplin parameter meteorologi, kategori parameter momentum,  tipe parameter nilai maksimum jam-jaman dari kecepatan vertikal downward pada level terendah 400hPa, proses statistik nilai maksimum".

Jadi, walaupun deskripsinya ngawur, kita masih bisa mengetahui jenis dan parameter dari variabel yang benar dari data GRIB2  bila kita mengerti cara membaca kode parameternya.


Tuesday, April 22, 2014

Meteo #8 - Cara Menjalankan Model WRF-EMS (Part 1 - Set Your Timezone)

Pada tulisan sebelumnya, saya telah berbagi cara melakukan instalasi model WRF-EMS di Linux via VMware Player. Kali ini saya akan mencoba memaparkan bagaimana cara menjalankan makhluk yg bernama WRF-EMS ini.

Langkah pertama yang saya lakukan sebelum menjalankan model adalah melakukan konfigurasi zona waktu. 

Konfigurasi zona waktu ini sebenarnya tidak mutlak harus dilakukan, karena model masih bisa berjalan tanpanya. Namun, pemahaman tentang zona waktu ini akan sangat membantu pada saat kita akan melakukan konfigurasi lanjut ketika menjalankan model, terutama yang berhubungan dengan waktu awal dan berapa lama prediksi yang akan dilakukan.

Secara default, WRF-EMS akan melakukan prediksi dengan waktu awal (initial time) terbaru, dengan lama prediksi (boundary condition) 24 jam, menggunakan time cycle pada 00,06,12 dan 18 UTC (ingat, zona waktunya UTC). WRF-EMS akan mengakses data sesuai dengan waktu pada sistem PC anda, dan di sinilah masalah biasanya muncul. Umumnya pada saat instalasi linux, pengguna lebih banyak memperhatikan jam daripada zona waktu itu sendiri. Akibatnya, tidak jarang, zona waktu tersebut tidak sesuai dengan lokasi si pengguna. Hal ini akan berujung pada 'kebingungan' pada saat menentukan waktu awal dan akhir prediksi.

Misalnya, lokasi anda ada di Papua dan waktu setempat sekarang jam 02:00 pagi, tapi zona waktu anda menggunakan WIB (GMT+7), bukan WIT (GMT+9). Dengan kondisi ini, WRF-EMS akan menganggap sekarang jam 19 UTC, bukan 17 UTC. Karena WRF-EMS akan mengakses data terbaru (pada 00,06,12 atau 18 UTC) dan saat ini (menurut si model) adalah jam 19 UTC, maka model akan mengunduh data terbaru yg telah diproses dari server (GFS misalnya), yaitu data pada jam 18 UTC. Tentunya data 18 UTC tersebut tidak akan pernah bisa diunduh, karena waktu saat ini sebenarnya adalah jam 17 UTC. 

Jadi, konfigurasi zona waktu sebelum melakukan eksekusi model sangatlah penting, terutama apabila anda akan menjalankan model secara real-time.

Untuk melihat zona waktu yang digunakan sistem, disarankan melalui terminal, bukan GUI. Buka terminal, lalu ketikkan perintah date pada shell. Misalnya anda saat ini berada di Jakarta, waktu setempat menunjukkan pukul 18:49, dan perintah tadi menghasilkan : 

Tue Apr 22 18:49:58 WIB 2014
maka, anda tidak perlu melakukan konfigurasi zona waktu lagi, karena model akan menganggap saat ini adalah pukul 11:49 UTC. Pada kasus lain misalnya, hasil yang ditunjukkan adalah :

Tue Apr 22 18:49:58 PDT 2014

Ini menunjukkan bahwa zona waktu anda adalah PDT (Pacific Daylight Time), dan model akan mengganggap saat ini adalah pukul 18:49 UTC. Anda harus melakukan konfigurasi zona waktu ulang, karena waktu yang sebenarnya saat ini adalah 11:49 UTC, bukan 18:49 UTC.

Untuk melakukan konfigurasi ulang zona waktu lakukan hal berikut :
  1. Buka terminal dan ketikkan : ls /usr/share/zoneinfo/Asia
  2. Pastikan lokasi anda terwakili oleh file nama kota yang ada dalam direktori tersebut. Misalnya anda di Bandung (GMT+7), maka pastikan Jakarta atau Bangkok (keduanya mewakili zona waktu GMT+7) ada ada dalam direktori.
    Jakarta ada di sana nggak ?
  3. Hubungkan (link) file informasi zona waktu dari lokasi tadi dengan file localtime di direktori /etc/localtime dengan perintah : ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
  4. Jalankan kembali perintah date. Bila tidak ada kesalahan, maka zona waktu anda seharusnya akan berubah menjadi WIB.

Bila zona waktu sudah benar, maka langkah berikutnya adalah mempersiapkan data model untuk eksekusi (initial time, boundary condition, cycles dll) pada tulisan selanjutnya :-)

Tuesday, April 15, 2014

Meteo #7 - Cara Instalasi Model Prediksi Cuaca WRF-EMS di Linux via VMware Player

WRF (the Weather Research and Forecasting) adalah salah satu model numerik yang paling populer digunakan untuk prediksi cuaca (NWP) dalam skala meso (~5km sampai ratusan km), baik untuk kepentingan operasional maupun penelitian. Penggunaan model NWP untuk keperluan operasional maupun riset umumnya menjadi momok, khususnya bagi pengguna/user dengan pengetahuan komputasi pas-pasan. Salah satu permasalahan yang paling sering dialami pengguna adalah kesalahan pada saat instalasi model ybs. Umumnya model NWP dibuat dengan menggunakan bahasa pemrograman seperti Fortran, C atau Perl, dan membutuhkan library khusus pada sistem operasi (OS) agar model tersebut dapat bekerja dengan baik. Tidak jarang, berbagai kesalahan/error terjadi pada saat kompilasi dan instalasi model pada OS. Untuk OS sendiri, yang umumnya digunakan adalah OS berbasis UNIX, seperti Linux atau Sun Solaris. Sehingga, untuk bisa melakukan instalasi NWP, pengguna umumnya harus memiliki pengetahuan tentang Linux dan bahasa pemrograman yang digunakan pada model tersebut.

WRF-Environmental Modeling System (WRF-EMS) adalah model berbasis WRF yang dikembangkan oleh NOAA/NWS Science and Training Resource Center (STRC). WRF-EMS merupakan model NWP yang lengkap, full-physics dan mendukung core WRF yang dikembangkan NCAR (Advance Research WRF a.k.a ARW) maupun NCEP (Non-hydrostatic Mesoscale Model a.k.a NMM).

So ... tulisan tentang instalasi WRF-EMS via VMware Player saya buat karena :
  • Bila dibandingkan dengan WRF biasa, proses instalasi, konfigurasi dan eksekusi pada WRF-EMS sangat sangat sangat disederhanakan untuk mendorong penggunaan NWP untuk kepentingan riset. Begitu sederhananya, sehingga pengguna dengan pengetahuan dasar UNIX pun masih bisa melakukan instalasi/konfigurasi model ini dengan mudah.
  • Dokumentasi penggunaan WRF-EMS sangat komprehensif dan mudah diikuti. Thanks to Dr. Robert Rozumalski ... You're a genius !!!
  • VMware player (atau VirtualBox) merupakan salah satu cara paling mudah untuk melakukan instalasi UNIX/Linux via Windows tanpa harus pusing atau khawatir terjadi kesalahan partisi yg umumnya ditakuti oleh pengguna Linux tingkat dasar.
  • VMware player memungkinkan pengguna untuk menjalankan Linux (dan model) secara portable dan mobile. Anda bahkan bisa melakukan eksekusi model di mobil atau di atas tempat tidur anda.
  • Umur saya makin tua, dan saya mulai jadi pelupa. Tulisan ini dibuat sebagai bahan contekan kalo saya sewaktu-waktu lupa. "WRF-EMS will provide more hair on your head and less on your back, and that's a good thing !!"

Tulisan ini juga saya tujukan untuk sharing dengan pembaca/pengguna yang :
  • ... ingin melakukan studi/riset dengan model NWP, tanpa harus berpusing ria dengan proses instalasi /konfigurasi yang rumit.
  • ... memiliki pengetahuan yang cukup tentang ilmu meteorologi.
  • ... memiliki pengetahuan dasar tentang model NWP.
  • ... memiliki pengetahuan dan kemampuan dasar menggunakan UNIX/Linux.
  • ... memiliki pengetahuan dasar pemrograman.

Bila anda membutuhkan referensi tambahan tentang NWP atau yang lainnya, silakan akses :
  • Untuk NWP : http://en.wikipedia.org/wiki/Numerical_weather_prediction
  • Untuk model WRF : http://www.wrf-model.org/index.php
  • Untuk model WRF-EMS : http://strc.comet.ucar.edu/software/newrems/
  • Untuk Linux : http://en.wikipedia.org/wiki/Linux
  • Untuk VMWare Player : http://en.wikipedia.org/wiki/Vmware_player
Sebelum melakukan instalasi model, diharapkan anda mempersiapkan beberapa hal berikut :
  1. IBM PC atau yang kompatibel, baik tipe desktop atau laptop/notebook, dengan spesifikasi minimal : Intel Core2Duo/Dual Core, RAM 2 GB, dan harddisk dengan sisa space minimal 40GB. Anda bisa menggunakan Mac/Apple, tapi saya tidak bisa menjamin karena saya belum pernah melakukan instalasi model/Linux dengan Mac/Apple.
  2. OS minimal Windows Vista/7. Saya belum pernah melakukan instalasi dengan XP atau 8. Tentu saja anda bisa juga mencobanya.
  3. Koneksi internet yang cukup cepat. Tidak disarankan menggunakan modem.
  4. Salah satu distribusi Linux. Saya menggunakan CentOS yang bisa diunduh di www.centos.org. Anda juga bisa menggunakan distro lain seperti Mint, Ubuntu atau Fedora. Unduhlah file ISO image dari Linux yang anda inginkan, dan simpan di harddisk. Umumnya file ISO berukuran 700mb (CD) atau 4.7 GB (DVD) .. and that's why I told you not using modem for internet connection ...
  5. VMware Player yang bisa di unduh secara gratis di https://my.vmware.com/web/vmware/downloads. Saya menggunakan VMware Player versi 4.0.
  6. Melakukan registrasi untuk memperoleh script instalasi WRF-EMS di http://strc.comet.ucar.edu/software/newrems/. 
Sebagai langkah awal, lakukan instalasi Linux via VMware Player :
  • Lakukan instalasi VMware Player di Windows (bila anda sudah memilikinya, silakan lanjut ke langkah berikutnya).
  • Jalankan VMware Player, dan pilih Create a New Virtual Machine. Pada jendela New Virtual Machine Wizard, pilihlah instalasi dari file image/ISO. Pilihlah (browse) file ISO dari Linux yang sebelumnya sudah anda unduh dan simpan di harddisk, lalu klik Next.
  • Isilah informasi pengguna/root Linux, mulai dari nama lengkap, username dan passwordnya, lalu klik Next.
  • Isilah informasi virtual machine (VM) yang ingin anda buat. Nama VM ini nantinya akan ditampilkan pada daftar VM di VMware player. Pilih juga lokasi tempat VM ini disimpan (VM akan diperlakukan sebagai file di Windows). Lanjutkan dengan Next.
  • Tentukan ukuran file VM yang akan disimpan di harddisk. Sebagai catatan, umumnya instalasi Linux secara default membutuhkan minimal 15-20GB, sementara WRF-EMS membutuhkan minimal 16GB. Jadi untuk amannya, setidaknya siapkan ruang harddisk minimal 40 GB. Untuk meningkatkan performa, simpanlah VM sebagai file tunggal dengan memilih Store virtual disk as a single file. Lanjutkan dengan Next.
Perhatikan ukuran harddisk anda. 
  • VM siap dibuat. Perhatikan setting VM yang akan dibuat, terutama ukuran harddisk dan RAM. Bila anda ingin melakukan pengaturan tambahan untuk RAM atau lainnya, pilih Customize Hardware. Disarankan anda menggunakan RAM minimal 1 GB (1024 MB) untuk VM. Anda bisa mengabaikan setting lain (misal floppy dll). Bila sudah selesai, klik Finish.
Dua pilihan : Setting tambahan atau ... Selesai 
Perhatikan ukuran RAM PC anda sebelum menentukan RAM untuk Linux di VM. 
  • Pilih dan jalankan VM pada daftar VMware Player, klik Play virtual machine atau klik dua kali nama VM pada daftar. Tunggulah sampai Linux selesai terinstall. Bila ada beberapa opsi/pertanyaan pada saat instalasi, pilihlah jawaban berdasarkan sistem atau common sense anda. Misal : bila diminta memasukkan jenis keyboard, pilihlah US-English atau yg sesuai dengan jenis keyboard yg anda miliki.

Tunggu sampai proses instalasi selesai ...
  • Bila proses instalasi Linux selesai, dan login screen tampak, SELAMAT !! Anda berhasil melakukan instalasi Linux via VMware Player. Silakan login sesuai dengan username dan password yang sudah anda tentukan sebelumnya.
Selamat ! Linux is installed !!
  • Anda bisa memperlakukan Linux pada VM seperti halnya Linux normal. Misalnya anda telah selesai, anda bisa melakukan shutdown pada Linux dan otomatis VM akan dimatikan. Bila anda ingin menggunakan Linux kembali, jalankan kembali VMware Player dan pilihlah VM Linux yang telah anda install sebelumnya.

OK, setelah instalasi Linux rampung, kita masuk ke hidangan utama, yaitu instalasi model WRF-EMS. Seperti yang telah disebutkan sebelumnya, anda perlu melakukan registrasi untuk memperoleh script instalasi WRF-EMS, kecuali anda melakukan instalasi WRF-EMS via DVD atau lokal (dan dua cara terakhir tersebut tidak akan saya jelaskan pada tulisan ini). 


Setelah melakukan registrasi, tunggulah sampai ada email balasan yang menyertakan script instalasi WRF-EMS. Bila belum ada email balasan (terutama bila anda registrasi pada saat weekend), BERSABARLAH. Tidak perlu menulis email tambahan untuk meminta/mengingatkan script instalasi WRF-EMS. Perlu diingat, si pembuat model juga harus melakukan aktivitas sehari-hari (baca : bekerja) sambil terus mengembangkan model ini. Thus, please be kind and patient.

Setelah anda menerima email balasan lakukan langkah-langkah berikut untuk melakukan instalasi WRF-EMS pada Linux via VMware Player :
  • Buka email dan unduh script ems_install.pl, lalu simpanlah pada USB-flash atau media lainnya.
Buka email dan unduh script ems_install.pl
  • Jalankan VMware Player dan Linux yang telah anda install sebelumnya. Lalu login seperti biasa.
  • Pastikan anda bisa mengakses internet via Linux di VMware. Bila anda telah terkoneksi dengan internet di Windows sebelum menjalankan VMware, maka seharusnya Linux di VMware juga akan terhubung dengan internet secara otomatis. Bila belum bisa terhubung ke internet, periksa koneksi pada PC dan LAN/wireless anda. 
  • Salin/Simpan script ems_install.pl dari flashdisk ke salah satu direktori Linux, misal : /home/ardhi/Download. Anda juga bisa langsung membuka email dan mengunduh script tersebut via browser yang ada di Linux.
  • Buka Terminal dan pastikan anda menggunakan shell bash, csh atau tcsh, dengan mengetikkan perintah berikut : echo $SHELL. Perlu diingat, hingga tulisan ini dibuat, WRF-EMS hanya bisa diinstall dengan ketiga shell di atas.
Bila anda menggunakan shell bash ...
  • Masuk ke direktori tempat anda menyimpan script ems_install.pl, dan jalankan script tersebut pada Terminal dengan mengetikkan perintah berikut : ems_install.pl --install atau perl ems_install.pl --install. Perintah ini akan menginstall WRF-EMS versi terbaru ke Linux. Anda juga bisa menentukan versi yang diinstall, misalnya : ems_install.pl --install 3.4.1.14.15
  • Anda akan diminta memberikan informasi tentang lokasi tempat WRF-EMS akan diinstall. Saya misalnya, menginstall WRF-EMS pada direktori /usr. Anda bebas menggunakan direktori lain, misalnya : /home/badu/wrf. Bila direktori ini belum ada, buatlah dengan perintah mkdir di Linux.
  • Anda akan diminta menjawab beberapa pertanyaan mengenai sistem PC anda. Pertanyaan-pertanyaan ini mudah, dan saya yakin anda bisa menjawabnya. Setelah itu, script akan mengunduh file-file yang dibutuhkan untuk instalasi. Silakan duduk santai dan tunggu sampai proses instalasi selesai. Seberapa cepat proses ini selesai, sepenuhnya bergantung pada koneksi internet yang anda gunakan. Untuk mengisi waktu, anda bisa membaca dokumentasi WRF-EMS di http://strc.comet.ucar.edu/software/newrems/.
  • Setelah proses instalasi selesai, perhatikan pesan yang ditampilkan di terminal. Bila ada library yang tidak ditemukan pada Linux, installer akan menginformasikannya.
Selama library yang hilang tidak kritikal ... anda masih bisa menjalankan WRF-EMS
  • Periksa environment variable WRF-EMS sesuai shell yang anda gunakan. Untuk shell bash misalnya, bukalah file : /home/<nama user anda>/.bashrc dengan gedit atau vi, lalu pastikan baris berikut terdapat dalam file tersebut : if [ -f /<direktori instalasi WRF-EMS>/etc/EMS.profile ] ; then. /<direktori instalasi WRF-EMS>/etc/EMS.profile fi. Bila tidak ada, edit file tersebut seperti gambar di bawah, dan simpan. Hal ini penting, agar sistem bisa mengakses WRF-EMS dari direktori mana pun.
Penting !! Pastikan WRF-EMS terdapat pada path environment variable.
  • Logout dari Linux, lalu login kembali dengan username dan password anda.
  • Buka kembali Terminal. Lalu jalankan perintah berikut pada shell : cd $EMS. Bila WRF-EMS telah terinstall dengan benar, anda akan diarahkan ke direktori tempat model terinstall. Lalu jalankan perintah berikut : ls $EMS_STRC, dan anda akan melihat isi direktori strc dari WRF_EMS. Terakhir, jalankan tool sysinfo untuk melihat informasi sistem anda. Bingung ? Perhatikan gambar di bawah :
Banzai !!!
  • Bila tampilan terminal anda seperti gambar di atas, SELAMAT !! Anda telah berhasil menginstall WRF-EMS pada Linux. Bila ketiga perintah pada langkah sebelumnya gagal (tidak menghasilkan gambar di atas), coba anda restart Linux, dan ulangi langkah sebelumnya.
Seperti yang anda lihat, instalasi WRF-EMS di Linux via VMware Player, sangat mudah. Tidak perlu konfigurasi atau kompilasi program yang rumit. Yang dibutuhkan hanya kesabaran dan ketelitian anda (serta koneksi internet yg kencang :-P) dalam proses instalasinya. Pada tulisan berikutnya, saya akan berbagi cara konfigurasi WRF-EMS untuk melakukan prediksi cuaca, dengan perintah-perintah 'sakti' seperti ems_prep, ems_run dan ems_post.

Untuk petunjuk menjalankan model WRF-EMS via VMware player, silakan baca posting selanjutnya : Cara Menjalankan WRF-EMS (Part 1)

Update (14 Dec 2014) :

Beberapa pengguna sempat mengalami masalah ketika pertama kali menjalankan WRF-EMS di Linux dengan pesan kesalahan berikut :

gempak@CentOS-60-64-minimal-> ems_domain.pl --locdom domain Can't locate Time/HiRes.pm in @INC (@INC contains: /home/gempak/wrfems/strc/ems_util /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/gempak/wrfems/strc/ems_util/ems_utils.pm line 1401.
BEGIN failed--compilation aborted at /home/gempak/wrfems/strc/ems_util/ems_utils.pm line 1401.
Compilation failed in require at ems_domain.pl line 169.
BEGIN failed--compilation aborted at ems_domain.pl line 169.


Masalah ini terjadi karena modul Time::HiRes dari Perl belum terinstall di sistem Linux. Modul ini dibutuhkan oleh WRF-EMS untuk menjalankan beberapa fungsi waktu resolusi tinggi pada saat simulasi. Untuk mengatasi masalah ini, anda bisa melakukan instalasi modul Time::Hires tersebut, baik secara online maupun offline, dengan perintah :

yum install perl-Time-HiRes

Good luck and welcome to modeling nirvana !