GT3CONV(1)

Date: 2000-03-14
Source: TOYODA Eizi
Title: user command manual


名前

gt3conv - GTOOL3 形式から gtool4 形式への変換

書式

gt3conv [ inputfile [ outputfile ] ]

説明

gt3conv は GTOOL3 形式のデータ inputfile を gtool4 規約に従った netCDF ファイルとして outputfile に書き出します。 引数 outputfile を省略した場合は gtool.nc が用いられます。 引数 inputfile を省略した場合は gtool.out が用いられます。 通常は inputfile に存在するすべての GTOOL3 ユニットが変換対象となります が、引数 inputfile の末尾に #item を付加した場合には ITEM 記述子が item となっているユニットだけが変換対象となります。

GTOOL3 ファイル形式

GTOOL3 ファイルは FORTRAN 処理系が書式なし順番探査として接続したファイルです。 ファイルは任意個のユニットです。 ユニットはヘッダとデータのふたつの記録からなります。 ヘッダは長さ 16 で大きさ 64 の基本文字型配列からなります。 各配列要素には ITEM, UNIT, DFMT などの名前がついており、 GTOOL3 では記述子と呼ばれています。 データは DFMT 記述子が 'UR4' の値を持つ場合には基本実数型の配列です。

変換内容

概要

処理は 2 パスで行われます。 第 1 パスではすべてのヘッダを読み取り、変数の構成を決定します。 ひとつの netCDF 変数に変換されるのは ITEM 記述子と格子配置 ( AITM[123] 記述子値) がすべて一致するユニットたちです。

変数名は ITEM 記述子値を小文字に変換したものです。 格子配置の相違によって重複する場合はハイフンと枝番がつきます。 たとえば ITEM=PS のユニットに対しては ps, ps-1, ps-2, ps-3, ... が 生成されます。

変数は 1 から 4 の次元を持ちます。 もし記述子 AITM[123] が空でない値を持てば、対応する次元がこの順で与えられます。 必ず存在する最後の次元はユニット数に対応し、時間次元と呼ばれます。 時間次元は固定長です。

次元名は以下のように決定されます。 時間次元の名前は "time" (複数あれば枝番がつく) です。 それ以外の次元名は AITM[123] 記述子を小文字にしたものを基本としますが、 "GGLAn" ならば "lat" が、 "GLONn" ならば "lon" が、 "CSIGn.P" ならば "sigma_bound" が、 "CSIGn.M" ならば "sigma" が、与えられます。 ただし n は格子数です。 同名の次元が複数存在すれば格子数 n の枝番がつきます。 それぞれの次元は同名の次元変数 (軸変数) を持ちます。

第 2 パスではデータを netCDF ファイルに転送します。

記述子の変換

IDFM
読み取り時に 9009 または 9010 でなければ終了します。
DSET
最初のユニットの DSET 識別子値が大域属性 source に用いられます。 また、軸ファイルの DSET 記述子の先頭文字が "C" である場合は 対応する次元変数に属性 topology = "circular"; が与えられます。
ITEM
変数名として使用されます。 ITEM 記述子は大文字を小文字に変換し、 重複する変数名が存在する場合はハイフンと数字を付加します。
EDIT[1-8]
最初のユニットの EDIT 識別子値は大域属性 history の 作成時に利用されます。
FNUM
利用されません。
DNUM
利用されません。
TITL[12]
変数 (次元変数を含む) の long_name 属性として用いられます。
UNIT
変数の最初のユニットの UNIT 記述子は units 属性に変換されます。 軸ファイルの UNIT 記述子は次元変数の units 属性に変換されます。 単位 deg は変数名に応じて degree_E または degree_N に書き換えられます。
ETTL[1-8]
最初のユニットの ETTL 識別子値は大域属性 history の 作成時に利用されます。
TIME
時間次元変数 (通常は time 変数として記録される) の値として利用されます。 もし DATE 識別子が解釈できる場合は、最初のユニットの 時間次元変数値が 0 になるように加減算が行われます。
DATE
最初のユニットの DATE 識別子値は時間次元変数の単位の 原点として用いられます。
UTIM
最初のユニットの UTIM 識別子値は時間次元変数の単位として用いられます。
TDUR
利用されません。
AITM[123]
軸名が共通するユニットがひとつの変数を構成します。 また、記述子値を小文字に変換したものが次元変数名として使用されます。
ASTR[123]
1 より大きい値 n が指定されている場合は 1 から n-1 の添え字を持つデータは書き込まれず、欠損値となります。
AEND[123]
次元長より小さい n が指定されている場合は 1 から n-1 の添え字を持つデータは書き込まれず、欠損値となります。
DFMT
変数の読み取り時に参照されますが、変換結果からは参照できません。
MISS
変数属性 missing_value および _FillValue となります。
DMIN
変数属性 gt_graph_range の第1要素となります。
DMAX
変数属性 gt_graph_range の第2要素となります。
DIVS
変数属性 gt_graph_contour_spacing となります。
DIVL
変数属性 gt_graph_contour_spacing となります。
STYP
以下の変数属性を生成する。
STYP=-2
gt_graph_logscale=1, positive="down"
STYP=-1
positive="down"
STYP=1
positive="up"
STYP=2
gt_graph_logscale=1, positive="up"
OPTN[123]
利用されません。
MEMO0[1-9], MEMO1[01]
連結し末尾の空白を除去したものが空文字列でなければ comment 属性となります。
CDATE
最初のユニットの CDATE 識別子値は大域属性 history の 作成時に利用されます。
CSIGN
最初のユニットの CSIGN 識別子値は大域属性 history の 作成時に利用されます。
MDATE
最初のユニットの MDATE 識別子値は大域属性 history の 作成時に利用されます。
MSIGN
最初のユニットの MSIGN 識別子値は大域属性 history の 作成時に利用されます。

参照

gtool(3f)

地球流体電脳倶楽部, 1995. 格子点データ解析ツール GTOOL3 利用の手引き Version 1.01b. http://www.gfd-dennou.org/arch/gtool/gt3-dcl5.tar.gz

バグ

GTOOL3 ファイル形式は FORTRAN 処理系に依存します。 作者の関知する限り「書式なし順番探査ファイル」の形式の相違は存在しませんが、 処理系依存性に起因する典型的な問題はバイトオーダーの相違 (記録読み取りができなくなる) と 浮動小数点形式の相違 (記録読み取りに成功するが数値が不正になる) です。 当然ですが異なる処理系で作成された GTOOL3 データを読み取ることはできません。

UR8 形式で書かれた倍精度浮動小数数値データを変換すると 単精度になってしまいます。

時間次元が固定長のため追記ができません。

ヘッダ情報に誤りがあった場合に適切なメッセージが表示されるとは限りません。 このような場合プログラムは異常終了すべきです。

作者

豊田英司 toyoda(at)gfd-dennou.org
HTML generated using htroff at 2 June 2000 2:17:2.