gtool4 規約 version 4.0beta

はじめに

2000-01-21 豊田英司


目的

gtool4 プロジェクトは (主に地球流体現象への応用を想定して) 大規模数値データとその可視化の自己記述的格納方法を開発しようとするものである。数値データは規則格子状のものから観測的制約のかかった不規則な点で与えられるものまでを視野に置いている。可視化は現在のところ2次元的作図のみを考慮している。

gtool4 プロジェクトではデータの表現に netCDF 形式を採用した。NetCDF 形式はファイルの中に任意個の変数 (多次元の配列) を定義することと、ファイルや変数に任意個の属性を付与することをサポートする。変数名や「NetCDF ユーザーズガイド」で規定された若干のもの以外の属性名の意味や用法は NetCDF の利用者の自由であり、利用者が規約を定めることになっている。そこで本文書では gtool4 プロジェクトで用いる数値データおよびその可視化の格納方法を規定する。

設計思想

データと可視化の統合

私たちは数値データに対して数値処理・可視化を行うことを想定している。従来データファイルは可視化情報と別に設計され格納されてきた。しかしながら、われわれは可視化と数値データをまとめて取り扱うことに意義があると考える。

自己記述性

数値処理・可視化のいずれにおいても自己記述性は重要である。データを使うために他のデータが必要であるが、それがどこにあるのかは作業メモを見なければわからない、というような事態を避けたい。

オブジェクト指向

可視化の例として2次元の図が複数組み合わさった図版を考える。図版は図から構成され、図は等値線図であったり線グラフであったりすることが可能であり、線グラフはいくつかの線グラフからなることが可能であり、などといった「もの」が存在する。

これらの「もの」は相互に制御しあう関係にある。たとえば図を組み合わせて図版を構成するには図の大きさを知らねばならないが、図の大きさが図版に反映するということができる。逆に図版は自分の構成要素である図に「上側の図の横軸の表題および目盛数値は省略してよい」と伝えるであろう。

このような構造はオブジェクト指向の考え方でうまく表現することができる。つまり、図版も図も座標軸もオブジェクトであり、それらが相互に所属したり情報を伝えたりするのである。

gtool4 はオブジェクト指向の考えに基づき、図版を格納するにあたってその構成要素をオブジェクトと呼んで別々に保存し、相互リンクと初期化時のメッセージの交換を可能にする。これによってオブジェクト実体をファイルにそのまま保存するような使い方が可能になる。

プラットフォーム非依存性

データファイルの流通を妨げないために、gtool4 はさまざまなレベルにおいてプラットフォーム間の互換性を追及している。

数値データの表現を netCDF に任せることにより、われわれはバイトオーダーや浮動小数点形式が異なる計算機相互間でのデータの交換をファイル変換なしに行うことができる。

残念ながらグラフィック設定に関しては DCL に依存する事項が存在するが、DCL は UNIX と Windows で動作するので広範な移植性を維持することができる。

他の規約との関係

gtool4 規約に適合するファイルが gtool4 規約に適合するソフトウェアで生成・解釈されるためには、他の netCDF 規約との対応は不要である。しかしながら、われわれは以下のような操作が最大限許容されるようにしたい:

輸入問題
gtool4 プロジェクトのソフトウェアで gtool4 規約によらないで生成された netCDF ファイルを処理する;
輸出問題
gtool4 規約によって生成された netCDF ファイルを gtool4 プロジェクト以外のソフトウェアで処理する。

このために、gtool4 規約はよく知られた既存の netCDF 規約との互換性を考えて作られている。具体的には gtool4 規約はほとんどの点において COARDS 規約および NCAR CSM 規約の上位互換である。

いいかえれば、輸入問題に際しては

輸出問題に際しては

ことを目標にした。

GDT 規約に関しても調査を行い、いくつかの属性名などの特徴は GDT に倣ったが、一部の属性の用法に CSM 規約との整合性がないこと、規則格子によらないデータの表現やデータ圧縮などの数多くの機能について十分な検討を行う時間がなかったため、現在の版は GDT 規約のすべての特徴をサポートしてはいない。