[計算機を利用した気象分野の実習の教材]

JRA-55のGRIBデータをGrADSで読み、単純バイナリデータに変換する


日本の気象庁がつくった再解析データ「JRA-55」の 提供されているデータ形式は、 WMO (世界気象機関) で決められた GRIB という形式の 第1版 である。 (現行の標準である第2版ではない。)

気象データの可視化でよくつかわれるソフトウェア GrADS (Grid Analysis and Display System、 ウェブサイトは http://cola.gmu.edu/grads/ ) は、 GRIB形式のデータをそのまま読むことができる。 (GRIBならばかならず読めるわけではないが、JRA-55 は読める。)

ただし、GRIB形式のデータ本体のほかに、 どんな変数がはいっているかを GrADS の約束にしたがって記述した テキストファイルが必要である。 これを GrADSの用語で control file といい、ファイル名の終わりの部分は「.ctl」である。

また、格子点番号から、バイナリファイルとしてのGRIBファイルの中での位置を 参照できるようにするために、index file あるいは map file とよばれる (人によってちがうよびかたをされるが同じものである) バイナリファイルも必要である。 JRA-55 ではそのファイル名が「.idx」でおわるようにつけられているので、 ここでは index file とよぶことにする。 GRIBファイル本体と control file があれば、 GrADS の配布物にふくまれている gribmap というプログラムで index file をつくることができる。

JRA-55 の配布データは、 各サブセット (例、anl_surf125) のうちわけが、 月ごとにディレクトリにわけて置かれており、 ディレクトリごと (つまり月ごと) に GrADS 用の control file と index file が用意されている。 その構成をたもってダウンロードすれば、そのまま GrADS で読むことができる。

しかし、わたしは、1年ぶんをまとめてGrADSであつかいたかったので、 1月のところにある control file を編集し、 TDEFのところで指定する時間ステップ数を1年の日数の4倍に変更し、 DSETのところで指定するファイル名を、自分がデータを置いたディレクトリ構成にあわせて修正して、 1年ぶんのデータに対応する control file 「anl_surf125.ctl 」をつくった。 そして、「gribmap -i anl_surf125.ctl」を実行した。 これで「anl_surf125.idx」がつくられた。 GrADS で、この anl_surf125.ctl を open すれば、1年ぶんのデータを読むことができる。

GrADS の中の display コマンドは、標準的には画面に図を表示するが、 あらかじめ「set gxout fwrite」をやっておくと、データ値をバイナリファイルに書きだす。 そのファイル名は、とくに指定しなければ「grads.fwrite」だが、 あらかじめ「set fwrite」コマンドでファイル名を指定しておけば、その名まえになる。 なお、複数のファイルをつづけてつくるときには、 まえのファイルを「disable fwrite」で閉じてからつぎのファイルに書くという 手順をふむ必要がある。

この機能を利用し、1年ぶんのデータを、1時刻ごとに別々のバイナリファイルに書きだすような GrADS スクリプト「6hourly.gs」をつくり、 GrADSの中で「run 6hourly.gs」で起動した。

スクリプトのうちはじめのほうにある「set x 1 288」は、つぎのような意味である。 全経度にわたるデータを表示するとき、たとえば経度 0度と360度の両方がほしくなるが、 格子点データではふつう一方だけがふくまれている。 GrADS では、データを図示するときの便宜のため、 端の経度の格子点データを二重にもつようにしている。 東西方向の格子点番号「x」は、格子間隔 1.25度 のばあい、 (GrADSでは1からかぞえるので) 1 から 289 までとなる。 display コマンドをすなおにつかうと、fwrite であっても、この重複データを出力してしまう。 ここでは重複は不要なので、出力する格子点番号の範囲をあらかじめ指定しておいた。

GrADSでの日時の表現は、 たとえば「2007年 1月 7日 世界時 0時」ならば、「00Z07JAN2007」のような形になっている。 スクリプト中で文字列演算をして、「2007010700」のような形に書きかえている。

なお、わたしは GrADS を、Linux を入れたパソコン上でつかっている。 Windows上 での GrADS のつかいかたについてはよく知らない。


2021-07-07
増田 耕一 (MASUDA Kooiti)
[計算機を利用した気象分野の実習の教材] [立正大学用教材目次] [教材目次]