このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。
複数のデータファイルを一つのctlファイルで読みたい
→GrADS ctlファイルの作成参照
GrADSでは、複数のファイルの扱いが難しく、格子情報が少し違っていると、
途端にdisplayや演算ができなくなる。
複数のファイルを同時に開くのではなく、一つ一つopen、define、closeを繰り返すことで
ある程度問題を回避できる。
なお、完全に格子情報が一致したファイル同士であれば、同時に開いても特に問題はない。
n番目に開いたファイルの情報を見る
q file n
n番目に開いたファイルの変数を描く
d var.n
n番目に開いたファイルを閉じる(最後に開いたファイルのみ)
close n
n番目に開いたファイルを”1番目に開いたファイル”として扱う
set dfile n
x, y, z, t軸の範囲が異なるファイルを複数開いた場合、基本的にファイル1の範囲が適用される。
例
ファイル1の(xまたはy軸)の範囲が1~9、ファイル2の範囲が2~10の場合。
open f1.ctl open f2.ctl d f2.2
の結果は1~9の範囲で出力される。
d f1+f2.2
の結果も1~9の範囲で出力される(f2はx=1でundefなので、2~9の範囲のみ演算が適用)
z軸やt軸でも基本的に同様。
http://hydro.iis.u-tokyo.ac.jp/~kei/?IT%20memo%2FG...
set dfile num set lon ? ?? set lat ? ?? d var
で描きたい変数のファイルをデフォルトのファイルに設定し、lonとlatを設定し直すと重ねて描ける。
格子が一致する範囲がある場合、その範囲を指定すればよい。
解像度が異なる場合、演算はできない。
同時に開いていては重ね描きもできないが、
一つずつ描いてcloseすれば重ねられる。
open f1.ctl set x 1 XXX set y 1 YY set gxout shaded d f1 close 1 open f2.ctl set x 1 xxx set y 1 yy set gxout contour d f2
open f1.ctl set x 1 XX set y 1 YY set z 1 set t 1 a=f1 close 1 open f2.ctl set x 1 XX set y 1 YY set z 1 set t 1 d f2+a
この手順を踏むと、f1とf2のファイルのzdefやtdefが一致していなくても、
演算が可能になる。
f1に幅がある場合
open f1.ctl set x 1 XX set y 1 YY set z 1 set t 1 12 a=f1 close 1 open f2.ctl set x 1 XX set y 1 YY set z 1 set t 1 d f2+a(t=1)
defineの際、変数名にzやtの情報を含めてしまう手もある。
'open f1.ctl' 'set x 1 XX' 'set y 1 YY' 'set z 1' t=1 while(t<=12) 'set t 't 'a't'=f1' t=t+1 endwhile 'close 1' 'open f2.ctl' 'set x 1 XX' 'set y 1 YY' 'set z 1' 'set t 3' 'd f2+a3'
コメントをかく