4byte blank | stidが入っても良い(?) |
4byte ascii: stid | stidは8文字まで。 |
4byte real (*2): lat, lon | |
4byte integer (*3): time, nlev, nflag | それぞれ通常0,1,1(?) |
4byte real (*X): rval | 30個までは動作確認 |
fortranを使う場合の注意:
その他注意:
dtype station stnmap XXX.map
$ stnmap -i XXX.ctl
$ grads > open XXX.ctl > set digsiz 0.3 > set stid on > d p
GrADS本家のページによるとBUFRファイルを読み込んで描画できるとのこと。しかし、SIO/GDASのサンプルパッケージについているprepbufr78120100.bufr(いわゆるNCEP PREPBUFRファイル)について、 bufrscanで中身を読み取り、bufr.ctlに内容を書いてみるものの、うまくいかなかった。
>open bufr.ctl >d temp Parsing BUFR file prepbufr78120100.bufr Finished parsing BUFR file
などとでるが、図は出力されず。gxout statにしてみると、データをひとつとして読み取っていないようだ。
上のprepbufrをGrADSで読めるツワモノの人、助けて…。参考までに作ったCTLファイルを下に貼ります。それか、GrADSで読めるBUFRファイルとCTLファイルの組み合わせをコピーさせてくれるだけでも非常にありがたいです。お願いします。
DSET ^prepbufr78120100.bufr TITLE prepbufr78120100.bufr UNDEF -9999 DTYPE bufr OPTIONS big_endian TDEF 6 linear 0Z1DEC1978 1hr STID 1,192 XVAR 6,2 YVAR 5,2 VARS 13 slon 0 6,2 Station longitude slat 0 5,2 Station latitude selv 0 10,194 Station elevation pres 0 7,192 Pressure spfh 0 13,192 Specific humidity dewpt 0 12,194 Dew point temperature temp 0 12,192 Temperature hgt 0 10,195 Height uwnd 0 11,3 U-component wind vwnd 0 11,4 V-component wind wdir 0 11,1 Wind direction wspd 0 11,191 Wind speed tpw 0 13,221 Total precipitable water ENDVARS
> set stid on > d var
任意の一地点を指定した上で、d var(stid=stationname)など。
> set lat 1 > set lon 1 > set t 1 2 > d p(stid=QQQ)
Reference用に緯度・経度方向に等間隔のデータを用意し、oacres関数を用いる。
> open grid.ctl # 等間隔の格子データ(例えば2.5度再解析大気データなど。) > open stn.ctl # Station data > d oacres(gridvar.1,stnvar.2) # gridvarの格子で、変数stnvarを内挿
oacres内挿後、演算可能。従ってRMSなども楽に計算できる。
> d sqrt(aave(pow(oacres(gridvar.1,stnvar.2)-gridvar.1,2),lon=-180,lon=180,lat=-90,lat=90))
oacresとは逆に、grid格子のデータをstn格子点に内挿する。RMSを計算するにはこちらのほうが(おそらく)正確。しかし、一点一点計算するため、遅い。
> d gr2stn(gridvar.1,stnvar.2)