GrADS講座


MENU

  1. GrADSって?
  2. データセットを作る
  3. コントロールファイルを作る
  4. GrADSを使う
  5. おまけコーナー

1.GrADSって?

GrADSとは、"The Grid Analysis and Display System"の略で、 格子状に配列された4次元データを2次元描画するツールです。 データセットさえ作っておけば、コマンドを打ち込むだけできれいな図が描け ます。 また、GrADSは解析ツールなので組み込み関数を使って、平均や発散の計算が簡単にで き、その結果をすぐ見ることができます。 ただし、お絵書き専門ソフトではないので、GMTのような凝った図を描こうと するとそれなりの苦労をしますし、格子データ以外を扱えないのが難点です。 しかし、データのプレビューや解析には十分な機能を持ったツールです。

2.データセットを作る

まずGrADSで絵を描く前に、使いたいデータをGrADSで読めるようにデータセットを 作らなければなりません。 GrADSが扱えるデータフォーマットには次のようなものがあります。 ここでは、標準の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
TITLEGANAL DATA
UNDEF-9.99E33
OPTIONStemplate
XDEF192 LINEAR 0.00 1.875
YDEF49 LINEAR 0.00 1.875
ZDEF 9 LEVELS 1000 850 700 500 400 300 250 200 150
TDEF1000 LINEAR 00z01mar1994 12hr
VARS17
zps0 99 sea surface pressure
ups0 99 u winds at surface
vps0 99 v winds at surface
tms0 99 temperature at surface
qs0 99 specific humidity at surface
tps0 99 potential temperature at surface
tes0 99 equivalent potential temperature at surface
zp9 99 geopotential height
up9 99 u winds
vp9 99 v winds
tm9 99 temperature
q9 99 specific humidity
tp9 99 potantial temperature
te9 99 equivalent potential temperature
dtdp9 99 dtdp
vort9 99 vorticity
pvort9 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通りの方法があります。どちらの場合も西から東向きに進みま す。 この例では、「東経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」と打ち込んでリター ンキーを押すと縦長の画面が現れます。 そして、コンソール画面は

ga->

となります。これがGrADSのコマンド入力画面です。
まず、GrADSではコントロールファイルを開きます。 そのためのコマンドが「open」です。

ga->open ganal.ctl
これで、先ほどの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」です。
ga->d zps
ここでは、地表気圧のzpsを表示させます。
気に入らない時は、「c」コマンドで消します。 「もうやーめた」の時は「quit」でGrADSは終了します。

5.おまけコーナー

とりあえず、GrADSを使って絵を出すことができました。でも、一枚の絵を出 すのにいちいちコマンドを打つのはめんどくさーいと思うでしょう。 そこで、GrADSでは「exec」コマンドというものがあります。 これを使うと、ファイルにコマンドを書いておくだけで好きな絵を出すことが できます。 例えば、先ほどの領域の指定を「test.ex」といったファイルに書いておきま す。
---------------------------------------------------------------------
set lon 125 150
set lat 30 50
set time 0z11sep94
d zps
---------------------------------------------------------------------

そして

ga->exec test.ex
と打つだけで先ほどと同じ絵が描けます。