前のページ

次のページ


gtool4/Fortran 90 リファレンス

gtool4 の変数 - netCDF との対比

2001年10月10日 豊田英司


netCDF の復習

gtool4 変数の概念は netCDF に依存しているわけではありませんが、netCDF ファイル形式を使うことを前提として設計され、またその設計にあたっては netCDF に深い影響を受けました。では、netCDF のデータはどういうものでしょうか。

ということがいえます。

次元は属性も格子点の位置情報も持つことができませんが、次元と同名の変数を作って格納する慣用が広く行われています。これを次元変数といいます。

データ型の変換はライブラリが担当します。つまり、データセットにおける型と異なるアプリケーションの内部的な変数に入出力しようとするときには、数値によって正しく変換が行われます。ただし文字型と数値型は相互に変換できません。

gtool 変数における界面簡素化

gtool の変数は netCDF の変数にほぼ対応するものですが、以下のような整理が行なわれています。これは最初はアプリケーションプログラムとの界面を簡素化するためでしたが、結果的に論理モデルの抽出に寄与していると考えています。

ファイルの消去

構造のフラット化のために、ファイルという概念が消去されました。変数は変数名だけではなく、その前にファイル名(ネットワークへの拡張を考慮し URL を用いるのを本則とする)を連結した変数URL という文字列で識別されます。

NetCDF ユーザはファイルを開き、そのファイルから変数名を検索して変数を参照しますが、gtool ユーザは変数 URL を使って変数を開き、直接これを参照します。

ファイルの消去にともない、大域属性という概念も消去されます。実際にはデータ互換性のため大域属性を設けることがあるのですが、この属性は gtool では配下の変数すべてに共有されているものとみなします。

次元と変数の統合

NetCDF 次元を作るたびに必ず同名の次元変数を作成するという表現は無駄です。そこで、次元と次元変数を同一視することにしました。

NetCDF では変数は次元を持つといいましたが、gtool では「ある変数は他の変数の次元である」という関係としてとらえます。

属性の型を統合

属性は型を持たないことにしました。netCDF では文字型属性と数値型属性の自動変換がなく、たとえば任意の型の属性を文字列として解釈しようとすると(解釈は一義的に定まり運用上も要請があるものと思われるにもかかわらず)大変なコードを書かなければなりません。それはライブラリでやろうというわけです。

gtool4 では属性には型がないものとみなします。実際の外部表現では書き込みを行なったときに最適な型を選択し、入力時はあらゆる外部表現を目的の型に自動的に変換します。

万物は変数

前のページに書いたように、gtool のデータ構造は変数(多次元配列)と変数の属性だけに単純化されています。ここでもう一度おさらいしましょう。

NetCDF に限らず、このようなインターフェイスを実現できるファイル形式であれば gtool4 は直接読み書きできるようにすることができます。

図形変数

万物は変数ですから、可視化表現も変数として格納されます。図形表現は図、等値線群、座標軸などといったオブジェクトに分解され、それぞれがひとつの図形変数として保存されます。図形変数は変数自体の次元・値には意味がなく、属性だけを利用します。図形変数はデータベースだとも言えるでしょう。

図形変数には線グラフ、等値線図、ベクトル散布図、座標軸、図、枠という種類があります。これらの詳細についてはこれから順に述べます。


前のページ

次のページ