可視化(WRF ver4)

WRFのVersion 4では、出力がNetCDF4になっている。このため、Version 3 で使っていた ARWpost(GrADS用のバイナリ出力および.ctlファイルを作成) が使えなくなった.

これに対処する.

1.読み出し


WRFの出力(wrfout_d0....nc, NetCDF形式)を直接読むための、.ctlファイルを作成する.
最初に、ncdump -h wrfout_d01...nc  > d01_info.log とかして変数情報を出力. 
u,v,w,スカラー変数はそれぞれ配列の大きさが異なるので、.ctlは分けて作成する. 
高度場 (ph, phb)は、wと同じでz方向 stagger. 
また、標高や緯度経度、LANDMASKなどの2次元データ用.ctl も分けて作成する. 
これらの量は、以下の.ctl を適宜書き換えれば、grads上で見ることができます (x, y, z 格子数 = im x jm x km の場合).
wrfout_hgt_latlon_d01.ctl 緯度経度、標高など二次元データの一部 (im x jm), 1時刻
wrfout_scalar3d_d01.ctl 雲微物理量や温位などのスカラー量(im x jm x km )
wrfout_u_d01.ctl x成分風速 (im+1 x jm x km )
wrfout_v_d01.ctl y成分風速 (im x jm+1 x km )
wrfout_w_gph_d01.ctl z成分風速と、基本高度場、高度場偏差  (im x jm x km+1 )

2. binary データへの書き出し


上のctlファイルを利用して、データを通常のbinaryデータに書き出す場合は、gradsを立ち上げて
、以下のgsファイルを実行すればよい (ga-> run fwrite_hgt_latlon_d01.gs, ga-> run fwrite_3d_d01.gs, ) .
fwrite_hgt_latlon_d01.gs(xlat, xlong, hgt, landmaskを,以下のファイルに出力.
hgt_latlon_d01.dat

fwrite_3d_d01.gs上の u,v,wと高度=(ph+phb)/9.81,その他スカラー量を,以下のファイルに出力.
u_d01.dat, v_d01.dat, w_gph_d01.dat, scalar3d_d01.dat

3. 鉛直座標変換(binary データの処理)


WRFの出力は eta_level上のデータなので、分かりやすい鉛直座標系に変換(線形内挿)する. 
上で作ったu_d01.dat, v_d01.dat, w_gph_d01.dat, scalar3d_d01.datを、地表面高度を基準に、
そこからの高度が一定間隔のデータ(AGL)に内挿する. プログラムは
AGL_d01.f
実行方法は
$ gfortran -fconvert=big-endian AGL_d01.f
$ ./a.out
出力(interp_AGL_d01.dat)の表示のためのgradsのctlファイルは
interp_AGL_d01.ctl

同様に、海抜高度一定間隔のデータ(MSL)に内挿するプログラムは
MSL_d01.f
実行方法は
$ gfortran -fconvert=big-endian MSL_d01.f
$ ./a.out
出力(interp_MSL_d01.dat)の表示のためのgradsのctlファイルは
interp_MSL_d01.ctl
地表面高度より低い点の値は UNDEF(1e30)にしています. 

前のページに戻る

川島のページに戻る