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.


No comments:

Post a Comment