このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。
気温、温位変換
気温⇒温位
d t*pow(1000/p,0.2857)
t : 気温(K) p : 気圧(hPa) 正しい気圧座標になっていれば"lev"でよい 1000 : 温位計算時の標準的な参照圧力(通常1000hPa)
比湿、気温、相対湿度変換
比湿、気温⇒相対湿度変換
es=6.1078*pow(10,(7.5*(t-273.15)/(t-273.15+237.3))) a=217*es/t row=p/(2.87*t) qs=a/1000/row d q/qs
t : 気温(K) q : 比湿(kg/kg) p : 気圧(hPa) 正しい気圧座標になっていれば"lev"でよい
http://shimizus.hustle.ne.jp/wiki/wiki.cgi?page=Gr...
海面更正気圧
高度、地上気温、地上気圧から海面更正気圧を算出
(変数)高度:distsfc[gpm] 地上気温:tmpsfc[℃] 地上気圧:pressfc[hPa]
(定数)気温減率6.5[K/km]
→海面更正気圧[hPa]
pressfc*pow(1-0.0065*distsfc/(tmpsfc+0.0065*distsfc), -5.257)
海面更正気圧の計算
質量流線関数(東西平均子午面循環)
(Kamae et al. (2011) より)
用語集(ヘルムホルツの定理)
流線関数をベクトルで理解する方法(.ppt)
南北風速から東西平均質量流線関数を算出
(変数)東西平均南北風速:zv[m/s]
(定数)地球半径6.37x10^6[m] 円周率3.1416
→質量流線関数[kg/s]
(vint(lev(z=1),zv,10)-vint(lev(z=1),zv,'zlv'))*2*3.1416*6.37e6*cos(lat*3.1416/180)
質量流線関数 原著:Oort and Yienger 1996
IT memo
例.
NCEP/NCAR R1 の長期平均monthly南北風データを使用
wget ftp://ftp.cdc.noaa.gov/Datasets/ncep.reanalysis.de...
各層の質量流線関数を計算
'!rm -f hadley.bin' 'reinit' 'sdfopen vwnd.mon.ltm.nc' t=1 while(t<=12) 'set t 't'' 'set lon 0' 'set z 1 17' 'zv=ave(vwnd,lon=-180,lon=180, -b)' z=2 while(z<=17) 'set z 'z'' 'q dim' res=sublin(result,4) zlv=subwrd(res,6) 'set fwrite -le tmp.bin' 'set gxout fwrite' 'd (vint(lev(z=1),zv,10)-vint(lev(z=1),zv,'zlv'))*2*3.1416*6.37e6*cos(lat*3.1416/180)' 'disable fwrite' '!cat tmp.bin >> hadley.bin' z=z+1 endwhile t=t+1 endwhile 'disable fwrite' '!rm -f tmp.bin' 'quit'
hadley.ctl
dset ^hadley.bin title monthly longterm mean v wind from the NCEP Reanalysis undef -9.96921e+36 options little_endian xdef 1 linear 0 2.5 ydef 73 linear -90 2.5 zdef 16 levels 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10 tdef 12 linear 00Z01JAN0001 1mo vars 1 msf 16 16 mass stream function endvars
波活動度フラックス(Wave Activity Flux; WAF)
Takaya and Nakamura (2001)によるWave Activity Fluxの算出(GrADS Script)
http://www.atmos.rcast.u-tokyo.ac.jp/nishii/progra...
面積
極から緯度latまでの球の表面積 [km2]
2*3.1416*pow(6.37*pow(10,3),2)*sin(abs(lat)*3.1416/180)
経度間隔dlon, 緯度間隔dlatの格子の面積 [km2]
2*3.1416 *pow((6.37*pow(10,3)),2)*(sin(((abs(lat)+dlon/2)*3.1416)/180) -sin(((abs(lat)-dlon/2)*3.1416)/180)) *dlat/360
変数varがhoge以上である格子の面積(等緯度経度格子,格子数nx,ny) [km2]
sum( sum( maskout( 2*3.1416*pow((6.37*pow(10,3)),2)*(sin(((abs(lat)+dlon/2)*3.1416)/180) -sin(((abs(lat)-dlon/2)*3.1416)/180))*dlat/360, var-hoge), x=1,x=nx), y=1,y=ny)