付録C GAVE から利用できるライブラリ

GAVE は電脳 Ruby プロジェクトで開発されているライブラリを利用するユーザーインターフェースであるため, GAVE 本体に可視化の機能が実装されているわけではない. 機能は以下で説明するライブラリを利用したものである.

C.1 Ruby/NetCDF ライブラリ

Ruby/NetCDF ライブラリは Unidata によって提供されている netCDF ライブラリの Ruby 用インターフェースである.

netCDF とは network Data Form の略で自己記述・非機種依存のデータ形式のことである. 自己記述とはデータ自身にデータの情報が記述してあるということである。変数に付属すべき情報(例えば名前, 単位, 配列の大きさなど)やファイルそのものに関する情報(例えばデータの製作者や製作日)が記述してあるためファイルを読めばそのデータがどのようなデータであるのか知ることができる。 netCDF ライブラリとは netCDF ファイルの読み込み, 書き込みを行うためのライブラリであり, このライブラリを用いることでバイトオーダーや浮動小数点表現の違いを吸収し, 機種に依存しないデータ形式を実現している.

GAVE ではこの Ruby/NetCDF ライブラリを用いて netCDF ファイルの読み込みを行っている. netCDF ファイルの属性表示もこのライブラリの機能である.

C.3 Ruby/DCL

Ruby/DCL は DCL(Dennou Club Library)の Ruby インターフェースである。

DCL とは地球流体関係者が長年にわたり開発・蓄積してきた Fortran77 で記述されたの描画・数値計算ライブラリである(地球流体電脳倶楽部). DCL の描画機能は地球流体の研究用途に準じたの2次元投影を中心に開発された。描画方法としては折れ線図のほか等値線描画やベクトル場描画が可能であり, 地図投影はメルカトル図法や正距方位図法など15種類の投影法が利用できる。地球流体科学分野の描画ライブラリとしては機能が豊富なライブラリであると言えるが, 3次元描画に関する機能はあまりない。また描画ライブラリだけでなく数値処理ライブラリも含まれており, 高速フーリエ変換などを利用できる。

GAVE は描画ライブラリとして Ruby/DCL を利用しているため DCL ライブラリが提供する等値線図の描画や地図投影が可能である. しかしベクトル場の描画など GAVE からまだ利用できない機能がたくさんある. これらの機能を利用したいならば, 各々 GAVE を拡張するとよい。

C.3 GPhys

GPhys は多次元物理量のための Ruby クラスライブラリである. GPhys というクラスで多次元データを扱うことによってデータ形式や媒体によらず統一的なメッセージでデータ解析が可能になる. 現在 GPhys が扱うことのできるデータ形式は netCDF と GrADS である. また, GPhys は中で NArray という多次元配列クラスライブラリを用いている. NArray はC言語で記述された Ruby 拡張ライブラリであるため配列の要素に対して高速な数値演算ができる.

GAVE は数値演算に GPhys のメソッドを利用している. そのため GPhys が持っている数値演算メソッドを GAVE から利用できるように GAVE を拡張することは用意に実現できる。しかし, GPhys が持っていない数値演算メソッドを作成するために Ruby でGPhys を拡張すると非常に遅い数値計算になってしまう. 高速な数値演算が可能なメソッドを加えるためには C 言語で NArray を拡張する必要がある.