[ English | Japanese ] [ 地球流体電脳倶楽部 / gtool4 プロジェクト ] [ gt4f90io リファレンスマニュアル ]

gtool4 の変数 - netCDF との対比


  1. netCDF の復習
  2. gtool 変数における界面簡素化
  3. 万物は変数

netCDF の復習

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

ということがいえます。

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

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

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

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

ファイルの消去

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

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

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

次元と変数の統合

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

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

属性の型を統合

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

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

万物は変数

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

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

前のページ


$Id: lib-gt4var2.rd,v 1.3 2006/12/31 15:36:41 morikawa Exp $
gtool4 Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org