GrADS講座
MENU
- GrADSって?
- データセットを作る
- コントロールファイルを作る
- GrADSを使う
- おまけコーナー
1.GrADSって?
GrADSとは、"The Grid Analysis and Display System"の略で、
格子状に配列された4次元データを2次元描画するツールです。
データセットさえ作っておけば、コマンドを打ち込むだけできれいな図が描け
ます。
また、GrADSは解析ツールなので組み込み関数を使って、平均や発散の計算が簡単にで
き、その結果をすぐ見ることができます。
ただし、お絵書き専門ソフトではないので、GMTのような凝った図を描こうと
するとそれなりの苦労をしますし、格子データ以外を扱えないのが難点です。
しかし、データのプレビューや解析には十分な機能を持ったツールです。
2.データセットを作る
まずGrADSで絵を描く前に、使いたいデータをGrADSで読めるようにデータセットを
作らなければなりません。
GrADSが扱えるデータフォーマットには次のようなものがあります。
- Fortranダイレクトアクセス形式(デフォルト)
- netCDF形式
- GRIB形式
ここでは、標準のFortranダイレクトアクセス形式を使います。
「この形式が何だかわからん!!」という人は、Fortranの本を読んでください。
でも、何だかわからなくてもデータが作れなければ困るので、例をあげます。
例えば、ある時刻の、X方向に100、Y方向に50、Z方向に10の変数Zの格子データをつくる場合、
---------------------------------------------------------
real z(100,50,10)
.
.
open (1,file='test.dat',form='unformatted',
& access='direct',recl=100*50*4)
irec=1
do 10 k=1,10
write(1,rec=irec) ((z(i,j,k),i=1,100),j=1,50)
irec=irec+1
10 continue
.
.
stop
end
----------------------------------------------------------
のように書きます。つまり、1レコードに1高度のデータを書いていくことにな
ります。
順番は下から上です。
違う変数のデータはdoループの部分を繰り返して作ります。
次の時刻のデータもこの繰り返しです。
3.コントロールファイルを作る
前節で作ったデータファイルには、そのデータが何のデータでどのように入っ
ているかといった情報は全く入っていません。
そこでGrADSでは、データファイルに入っている情報を書いたコントロー
ルファイルというファイルを作る必要があります。
コントロールファイルの識別子は「*.ctl」です。
GrADSはこのコントロールファイルの情報に基づいてデータファイルを読むの
で、コントロールファイルを正しく書かないと本当の絵が表示されません。
間違って書いても絵が出ることがあるので、絵が出たからといって安心しな
いようにしてください。必ず値などを確かめるようにしましょう。
次に実際に私が使っているGANALデータ用のコントロールファイルを例に、コ
ントロールファイルの内容を説明します。
----------------------------------------------------------------
DSET | /home/yoshida/ganal/data/d%y2%m2%d2.%h2g |
TITLE | GANAL DATA |
UNDEF | -9.99E33 |
OPTIONS | template |
XDEF | 192 LINEAR 0.00 1.875 |
YDEF | 49 LINEAR 0.00 1.875 |
ZDEF | 9 LEVELS 1000 850 700 500 400 300 250 200 150 |
TDEF | 1000 LINEAR 00z01mar1994 12hr |
VARS | 17 |
zps | 0 99 sea surface pressure |
ups | 0 99 u winds at surface |
vps | 0 99 v winds at surface |
tms | 0 99 temperature at surface |
qs | 0 99 specific humidity at surface |
tps | 0 99 potential temperature at surface |
tes | 0 99 equivalent potential temperature at
surface |
zp | 9 99 geopotential height |
up | 9 99 u winds |
vp | 9 99 v winds |
tm | 9 99 temperature |
q | 9 99 specific humidity |
tp | 9 99 potantial temperature |
te | 9 99 equivalent potential temperature |
dtdp | 9 99 dtdp |
vort | 9 99 vorticity |
pvort | 9 99 potential vorticity |
ENDVARS |
----------------------------------------------------------------
各行は次のような意味です。
- DSET データファイル名
- データの入っているデータファイルの名前です。ここでは、templateオ
プションによって、/home/yoshida/ganal/data/の中の「d年2桁月2桁日2桁.時2桁g」の名前のついたファイルを
扱うようになっています。
- TITLE タイトル
- このデータのタイトルです。
- UNDEF 値
- データのない格子点を示す値です。この値が入っている格子点は表示な
どの時に無視します。
- OPTION template
- ファイルの種類や扱い方によって、いくつかのオプションが使えます。
ここでは、ファイル名に任意の日付を用いて複数のファイルを1つのコントロー
ルファイルで扱うことができる「template」オプションを使っています。
- XDEF
- X方向(東西方向)の格子の並び方を示します。表し方には「LINEAR」と
「LEVELS」の2通りの方法があります。どちらの場合も西から東向きに進みま
す。
- LINEAR 始点の経度 格子間隔(経度)
- LEVELS 最初の点の経度 2番目の点の経度 3番目の点の経度 ...
この例では、「東経0度から1.875度間隔で192格子のデータ」であることを表してい
ます。
(注:「LEVELS」は格子数が2以上の時に使えます。それ以外の時は「LINEAR」を使って下さい。)
- YDEF
- Y方向の格子の並び方を示します。XDEFと同様に「LINEAR」と「LEVELS」
があります。南から北へ向かって進みます。
- ZDEF
- Z方向の格子の並び方を示します。基本的に気圧で表します。同様に
「LINEAR」、「LEVELS」があります。下から上に向かって進みます。
この例では、「1000hPa、850hPa、700hPa、500hPa、400hPa、300hPa、
250hPa、200hPa、150hPaの9高度のデータ」であることを表します。
- TDEF 時刻数 LINEAR 開始時刻 時間間隔
- 時間に関する表記です。この例では、「1994年3月01日0UTCから12時間間
隔1000時刻のデータ」であることを表しています。
- VARS 変数数
- 入っている変数の数です。ここでは、17個の変数を使っています。
- 略称 入っている高度数 ユニット 変数の意味
- 入っている変数についての情報です。
略称 | GrADSの中でこの変数を使う時の名前です。アルファベットで始まってアルファベットか数字で12文字以内で決めてください。大文字、小文字の区別はありません。 |
入っている高度数 | その変数が入っている高度の数です。地上データなどの高度を気圧で表せない変数は0にしておきます。 |
ユニット | GRIBデータなど特殊なデータフォーマットを使
う時に使います。通常は0か99にしておきます。 |
変数の意味 | その変数の情報です。40文字以内でご自由に
お書き下さい。 |
- ENDVARS
- コントロールファイルの終りを示します。この行から後ろには何も書か
ないで下さい。
4.GrADSを使う
データファイルとコントロールファイルを作ったら、いよいよGrADSを使いま
す。
とりあえず、
/home/yoshida/@arika#grads
|
とコマンドgradsを打ち込みます。
すると、
Grid Analysis and Display System (GrADS) Version 1.7Beta9
Copyright (c) 1988-1997 by Brian Doty
Center for Ocean-Land-Atmosphere Studies
Institute for Global Environment and Society
All Rights Reserved
Config: v1.7Beta9 32-bit little-endian readline sdf/xdf
hdf-sds lats athena im/image-output
Issue 'q config' command for more information.
Landscape mode? (no for portrait):
|
と出てきます。
ここでそのままリターンキーを押すと横長の画面、「no」と打ち込んでリター
ンキーを押すと縦長の画面が現れます。
そして、コンソール画面は
となります。これがGrADSのコマンド入力画面です。
まず、GrADSではコントロールファイルを開きます。
そのためのコマンドが「open」です。
これで、先ほどのGANALデータファイルを扱うことができます。
実際に図を出すには、時間と場所を指定する必要があります。
GrADSではそれらすべてをコマンドで打ち込むことによって指定します。
これが「set」コマンドです。
ga->set time 0z11sep94
ga->set lon 125 150
ga->set lat 30 50
|
のように打ち込むと、1994年9月11日0UTCの東経125度から150度、北緯30度か
ら50度の範囲を指定したことになります。
そして、図を表示するコマンドが「d」です。
ここでは、地表気圧のzpsを表示させます。
気に入らない時は、「c」コマンドで消します。
「もうやーめた」の時は「quit」でGrADSは終了します。
5.おまけコーナー
とりあえず、GrADSを使って絵を出すことができました。でも、一枚の絵を出
すのにいちいちコマンドを打つのはめんどくさーいと思うでしょう。
そこで、GrADSでは「exec」コマンドというものがあります。
これを使うと、ファイルにコマンドを書いておくだけで好きな絵を出すことが
できます。
例えば、先ほどの領域の指定を「test.ex」といったファイルに書いておきま
す。
---------------------------------------------------------------------
set lon 125 150
set lat 30 50
set time 0z11sep94
d zps
---------------------------------------------------------------------
そして
と打つだけで先ほどと同じ絵が描けます。