GrADSの使いかた
- loginし、X Window Systemが起動されている状態にする。
SFC CNSローカルな情報は
[別ページ]参照。
- コマンド起動パスにGrADSを追加するほか、いくつかの環境変数を設定する。
SFC CNSローカルな情報は
[別ページ]参照。
これは、端末窓(kterm)ごとに、1回実行する。
その後何回でもgradsを起動できる。
- grads
- (grads -geometry 640x480 ...グラフィック窓の大きさを変える例)
- Landscape mode?と聞かれるので、横長でよいときは単にリターンキーを押す。縦長にしたいときはno。
- グラフィック窓が開くので、マウスを使ってその位置を指定する。
- GrADSの操作は、グラフィック窓ではなく、起動した端末窓の
「ga>」または「ga->」の
プロンプトに対してコマンドを入れることで行なう。
- GrADSの終了は、ga->に対してquit。
- X Windowを終了しログアウトする。
- GrADSでは、データ本体はバイナリデータだが、
その変数名、格子数などは「.ctl」で終わる名前の
テキストファイルに書かれている。
- GrADSでは、openコマンドで、ctlファイルの名前を指定する。
「.ctl」は省略してよい。
(ただし、「.ctl」のない名のファイルが実在する場合だけは
省略できない。)
- ctlファイルの記述内容は、原則として大文字と小文字の区別がない。
ここでは小文字で書く。
(ただし、Unixのファイル名については、大文字と小文字の区別がある。)
- データ本体のファイル名は、ctlファイル中のdset
のところに書かれている。
- スラッシュ(/)で始まるファイル名: 絶対パス。
ctlファイルの位置が変わったとき
(他人のところから自分のところにコピーしたときなど)も、
データ本体はそのままで動く。
- ふつうのファイル名: GrADSを起動したディレクトリからの相対パス。
ctlファイルの位置が変わったときは、
データファイルも(移動、コピーまたはsymbolic linkで)対応する位置に
置くか、ctlファイルのdset行のファイル名を変更する。
- 山形(^)で始まるファイル名: ctlファイルのあるディレクトリからの相対パス。
- dsetのファイル名中にパーセント(%)が使われていて、
別の行にoptions templateという指定がある場合、
実際のファイル名は、%y4や%y2に年、%m2に月、%d2に日、%h2に時の
数字がはいったものである。
- options big_endianとoptions little_endianは、
バイナリデータのバイト順を示す。
Intel CPUですなおに作ったものはlittle_endian、
Sparc CPUですなおに作ったものはbig_endianである。
- options yrevは、
データ本体が、南北方向では北側から始まっていることを示す。
この指定がなければ南側からである。
ただし、GrADSのコマンドから見たときは、いずれにせよ南端をy=1として扱う。
- undefのところに書かれた数値は、
データ本体の格子点値がこれと一致した場合、値がない(欠測)とみなすものである。
- xdefは東西方向の格子の座標(経度)。
linearで一端と間隔を指定する場合と、
levelsで各格子の座標を指定する場合がある。
- ydefは南北方向の格子の座標(緯度)。
- zdefは鉛直方向の格子の座標(気圧)。
- tdefは時間方向の格子の座標(年月日時)。
- varsの行にはこのデータセットに含まれた変数の個数が、
それに続いて1行に1つずつ変数名が書かれている。
GrADSのdisplay(省略形d)などのコマンドでは、
ここに書かれた変数名を指定する。
- データ本体は、特に指定しなければ
4バイトの浮動小数点数(実数型ともいう)だが、
整数型(4バイト、2バイト、1バイト)の場合もある。
また、GRIBという気象データ用の圧縮形式のこともある。
これらの場合、
ctlファイルの各変数名の行にある数字群で具体的な指定をしている。
- 4つの軸の指定方法
- GrADSのdisplayで表示する座標値の範囲の指定は、
setコマンドで、
lon, lat, lev, time,
x, y, z, tのいずれかのキーワードを指定して行なう。
- キーワードのあとに1つまたは2つの数値を指定することができ、
2つの数値の場合は、座標値の範囲を指定したことになる。
- lon, lat, lev, timeで指定する場合は、経度、緯度、気圧、日時。
- 経度・経度は単位「度」で、東経・北緯が正。小数も可。
- 気圧は、単位hPa。
- 日時は、12z18jun1979のように、小さいほうから続けて書く。
「z」は世界時(グリニッジ時)をさす気象関係者の符丁である。
時刻を省略したときは、00zとみなされる。
- x, y, z, tで指定する場合は、格子位置の1から始まる通し番号。
- 4つの座標軸それぞれについて、範囲をもっている場合と単独の値をもっている場合がある。
- GrADSを起動した初期状態は、xとyが指定されたデータの全範囲を、
zとtはz=1, t=1という単独の値をもっている。
変更するには、setコマンドで座標軸の範囲あるいは
単独の値を指定する。
- 現在の座標値(範囲)の指定は、q dimで確認できる。
- displayで表示されるもの
- 範囲をもった座標軸がない場合は、端末窓に数値が数字で表示される。
- 範囲をもった座標軸が1つの場合は、その軸に対する数値のグラフ。
- 範囲をもった座標軸が2つの場合は、2次元の分布図(初期状態では等値線図)。
ただし、指定によっては、1次元のグラフのアニメーションになる。
(set loopdim tなどによって変更できる。)
- 範囲をもった座標軸が3つの場合は、2次元の分布図を、第3次元を変えてアニメーションとして表示。
なお、第3次元の座標値は右下に表示されるが、字が小さくてほとんど読めない。
displayコマンドによるアニメーションはデータの概略確認にはなるが、
事件の日時を確認できるアニメーションにするためには、
プログラム(.gsファイル)を作る必要がある。
displayコマンドの前に、set gxoutで選択する。
- 1つの量の2次元分布図
- 等値線図: set gxout contour
- マス目の色による塗り分け: set gxout grfill)。
色と数値の対応を示すためには、displayのあと、
run cbarnを実行するとよい。
- 等値線図の塗り分け: set gxout shaded。
grfillと似ているが、ややなめらかな図となる。
- 数字で値を示す: set gxout grid。
読めるためには、
狭い座標範囲を拡大するように指定し、さらに文字の大きさを大きめに
指定しておく。
- ベクトル量の2次元分布図。
u, vがそれぞれ風の西風成分、南風成分のとき
display u;vで風ベクトルが表示できる。
- 矢印表示: set gxout vector。
間引きたいときは、display skip(u,2);vなどとする。
- 流線(定性的)表示: set gxout stream
- 画面消去: clear
- 文字の大きさを変える
- set digsize 0.2...gridで表示される数字の大きさを0.2にする
- set xlopts 1 4 0.2...X軸のめもりの数字
- set ylopts 1 4 0.2...Y軸のめもりの数字
- set clopts 1 4 0.2...等値線につけられた数字
- 縦軸と横軸を逆にする: set xyrev (clearで忘れる)
- 縦軸の上下を逆にする: set yflip (clearで忘れる)
- 図の表題は、draw title 文字列で書く。
- GrADSの変数定義機能defineと、関数aveを使う。
- 例 (使うデータについては別記事参照)
- 変数precを東西に150Eから170W(=190E)まで平均し、prec150e170wとする
define prec150e170w = ave(prec, lon=150, lon=190)
- 変数precを全経度平均し、pzonalmeanとする (-bは、
0度と360度を二重に計算しないための指定)
define pzonalmean = ave(prec, lon=0, lon=360, -b)
- 変数precを1978年12月から1999年11月まで平均し、precavとする
define precav = ave(prec, time=dec1978, time=nov1999)
- 上と同じ期間の平均だが、時間ステップ12おきに平均する。
データが月ごとの場合に、12月だけの平均となる。結果をprecdecとする。
define precdec = ave(prec, time=dec1978, time=nov1999, 12)
- 1か月1回のデータprecを、±5か月の移動平均をし、pmovavとする。
define pmovav = ave(prec, t-5, t+5)
- GrADSのコマンドをある文法に従ってテキストファイルに書いておくと、
runコマンドで実行できる。
このファイル名は.gsで終わらせるのが標準であり、
その場合、runでは.gsは省略できる。
- .gsファイルを他のディレクトリからもってきた場合、
その中のopenコマンドのところに書かれたctlファイル名を
見て、必要な場合はディレクトリ名などを修正する。
- gsプログラム中、「'」は引用符であり、これでくくられた内容はそのまま
GrADSに伝えられる。
- gsプログラムで使われているキーワード
- whileから、あとで出てくるendwhile
までの間のコマンドは、
whileに続いて書かれた条件が満たされている間くりかえす。
ただし、breakが実行されるとループから脱出する。
- ifは、条件が成り立つ場合だけそれに続くコマンドを実行する。
- pullは、続いて書かれた変数の値をキーボードから読みこむ。
- qは、GrADSコマンドで、GrADS内部の変数の値を取り出す。
たとえば、q timeを実行すると、いま注目している日時が
timestrという文字列にはいる。
- subwrd, substrは文字列の部分を取り出す関数。
- プロンプトがga->となっている場合のコマンド入力では、
矢印カーソルキーで、前に使った文字列が再利用できる。
プロンプトがga>の場合は再利用できない。
この違いはGrADSをコンパイルした際にreadlineライブラリが組みこまれたか
どうかなので、実行時には変更できない。
[2005年12月22日現在、CNS上のSun、Linuxのどちら用にコンパイルしたものも
readlineが組みこまれておらず、コマンド行の文字列の再利用はできない。]
- displayコマンドでは、
変数や数値を組み合わせた式も指定できる。
平均からの偏差、単位換算などは、別に変数を用意しなくても、
この機能を使えばよい。
- 複数のctlファイルをopenすることができる。
2つめにopenしたファイルの変数は、変数名のあとに.2をつけて指定する。
ただし、座標値の範囲は、最初にopenしたもので決められるので、あとに
openしたファイルに対応する範囲の座標値がなければ、表示の際にエラーになる。
- openの取り消しはcloseで、closeのあとにopenした順序の番号を指定する。
ただし、最後にopenしたものから逆順にcloseすることだけができる。
- GrADS中からUnixコマンドを実行するには、コマンドの前に!をつける。
- グラフィック窓に出ている図をPNG画像ファイルにするには、
printim ファイル名で、ファイル名を.pngで終わるように
すればよい。
(GrADSのバージョンやコンパイルされたときのライブラリ構成によっては、
printimがない場合もある。
ほぼ同じ機能のwiが用意されている場合もある。)
- 図をプリンタ出力する手順は多少複雑である。説明を省略して流れだけ示す。
- clear
- enable print aaa.gamf
- ...displayやdraw titleなどによる作図...
- print
- disable print
- ! gxps -i aaa.gamf -o aaa.ps
- ! lpr -Pプリンタ名 aaa.ps
- GrADSのコマンドをいくつか続けて実行したいが、
プログラミングというほどの構造は必要としない場合には、
上に述べたscript機能のほかに、
GrADSのコマンドを単純にテキストファイルに書きならべておき、
exec
コマンドで実行するという方法もある。
この場合のテキストファイルの名前は.ge
で終わらせるのが標準である。
2000-03-17, ..., 2005-12-22
増田 耕一 (MASUDA Kooiti)