GrADS Station Data(地点データ)について(メモ)  

 

書式無し逐次アクセス -- sequential (stream) data  

 

Station データフォーマット  

ヘッダー部  

character(len=8) :: stid
地点番号 (station ID)。SYNOP報などで使われる番号(例えば東京は"47662")が想定されていると思うが、普通に ASCII文字(例えば"Tokyo")で指定できる。 本家マニュアルでは 1~7文字で指定することになっているが、後ろを何で埋めるかについては記載されていない。Fortran だと未定義部分は空白になるが、C言語だとNULL文字になる。また、8文字全て埋めても動作するようです。
real(4) :: rlat
緯度
real(4) :: rlon
経度
real(4) :: tim
時刻。マニュアルには書いてないけれど、-2より小さな値や2より大きな値を入れると stnmap が異常終了します。
基準の時刻からの差分を、コントロールファイルで指定した時間間隔で規格化して入れるため、-0.5~0.5 あるいは 0~1 の値となるのが普通。
integer(4) :: nlev
データの層の数。地表面データがあれば +1、鉛直レベルが N 層あれば +N。地表面データと鉛直データが両方ある場合は 1+N を指定することになるので注意!
Time Group の終わりとなる場合は、"0" を設定します。
integer(4) :: nflag
通常は "1" とする。地表面データがない場合は "0" を設定するらしい。nlev==0 の場合はどーでもいいっぽい?

データ部  

地表面データのみの場合  
鉛直データも含む場合  
 

ファイル出力  

1時刻での出力  

ヘッダー部、データ部、
ヘッダー部、データ部、
......
ヘッダー部、データ部、
ヘッダー部(nlev=0,tim=0)

というように、最後に nlev=0,tim=0 のヘッダー部を入れておきます。
改行に意味はありません。ヘッダー部で 1レコード、データ部で 1レコードとなるように出力します。

複数時刻での出力  

! t=1
ヘッダー部、データ部、
ヘッダー部、データ部、
......
ヘッダー部、データ部、
ヘッダー部(nlev=0,tim=0)、

! t=2
ヘッダー部、データ部、
ヘッダー部、データ部、
......
ヘッダー部、データ部、
ヘッダー部(nlev=0,tim=0)、

......

というような繰り返しになります。
tim=1, 2, ... と入れたくなりますが、それは誤りです。
例えば t=2 のデータ部分では、t=2 の時刻を基準として -0.5~0.5(もしくは 0~1)の値を tim に設定します。

 

コントロールファイルの設定  

サンプル

dset    ^data.dat
dtype   station
stnmap  ^data.map
options sequential big_endian
undef   -9.99e11
title   data
tdef  6 linear  00Z20Jul2011  01hr
zdef 10 levels  1000 925 850 700 500 ・・・
vars  4
sst   0 99 sea surface temperature
ssw   0 99 sea surface wind speed
temp 10 99 temperature
wind 10 99 wind speed
endvars

青字が通常の Grid データと異なる場所。(sequential は普通に使っているかもしれませんが)

 

Station Mapping File の作成  

GrADS 起動前に、stnmap コマンドで Station Mapping File を作成します。

stnmap -i data.ctl

コントロールファイルの stnmap で指定したファイル(例だと data.map)が作成されます。

 

描画  

地図上に表示  

時系列表示  

'set x 1'              * 緯度を適当な値1つに設定(何でもよい)
'set y 1'              * 経度も適当な値に
'set z 925'            * 高度は、見たいレベルを指定
'set t 1 6'            * 時刻は、見たい期間を指定
'd temp(stid="47622")' * stidを指定する。stidを設定していない場合はスペースを指定
                       * 単に'd temp'とするとエラー

stid による指定は、時系列表示の時のみ有効となるようです。

 

Tips  



By T. Egawa <2011.08.05>
戻る