GAVE は地球流体科学の研究背景から生まれた 「GUI 多次元データ解析・可視化ツール」です。 数値計算や観測で得られる多次元数値データに対して解析・可視化を 手軽な操作で実現することがます。 今のところNetCDF だけしか対応していませんが、 将来的には様々なデータ形式のファイルを違いを気にすることなく扱い、 豊富な解析機能を使って、 簡単な操作でデータを様々な断面で可視化することができる ようになる期待しています。
このような特徴を作り出すことができる理由は gave を記述している言語が オブジェクト指向スクリプト言語 Ruby だからです。 Ruby のオブジェクト指向機能は強力で、 例えば形式の異なるデータをカプセル化やポルモーフィズムによって 差異なく扱うことができます。 このようなことを中途半端なオブジェクト指向言語と比べると、 かなり容易に設計することができる言語です。 また、汎用性のある言語でかつ設計の自由度が高いため、 柔軟性の高い設計で豊富な機能を実現します。 また Ruby は開発効率が非常に高く、現在実装されていない機能も 比較的早いサイクルで更新されていくだろうと思います。
gave は非常に可能性の高いツールですがなんとフリーです。
このツールと同様の機能を求めるなら商用のソフトウェアしかないでしょう。
むしろ商用のソフトウェアも凌駕するツールになるかもしれません。
グラフィカルユーザーインターフェース面倒なコマンド入力は一切ありません。 すべての機能がマウス操作と簡単な入力だけで実行できるので はじめてgaveを使うときからフル活用できます。 変数の選択もできる限りデフォルトで希望がかなうようになっています。 日本語に対応GUI部品の表示はGtkの設定で日本語に対応しています。 |
|
描画折れ線グラフグラフと等値線図で描画することができます。 従来のCUIのソフトウェアに比べて、 手軽に描画でるため研究効率のアップに貢献できると思われます。 地図投影描画ライブラリDCLが実装している地図投影法は30種類ですが、 gaveが現時点で実装しているのは4種類です。 |
|
データ読込現在は扱うことのできるデータ形式はNetCDFのみですが、 将来的には様々な科学技術データ形式に対応するだろうと思います。 保存PNG、JPEGはもちろん様々な画像形式に保存できます。 再生したアニメーションもPPM形式として保存することができます。 さらに独特の機能として描画をRubyスクリプトとして 保存することができます。 このスクリプトをデータとともに実行すれば同じ可視化を 再現することが可能です。 そればかりかこのスクリプトを雛形としてさらに詳細な修正を加えたり、 汎用性のあるスクリプトを作るなど、利用方法はいろいろ考えられます。 |
アニメーション機能多次元データを扱うので、当然アニメーションでデータを 見ることができます。 データ解析最大、最小、平均、標準偏差操作が用意されています。 さらに増えていくでしょう。 |
gaveはGUIで手軽な操作性を目指しています。 おそらく直感的に操作するだけでほとんどの機能を使うことができるでしょう (ただし、Rubyスクリプトの修正にはRubyおよびDCLの知識が必要になります)。 このドキュメントを詳細に読まなけば使えないということは絶対にありません。 gaveに興味を持つか、使ってみるきっかけになれば良いと思っています。
gaveが起動するとこのウィンドウが上がります。
メインウィンドウの最上部にあるこのメニューバーから 「ファイルを開く」、「画像を保存」、「コードの保存」、「終了」 をします。 また、ウィンドウの表示/非表示をきりかえることができます。
データを参照して選択できる変数がポップダウンに格納されるので、 その中から描画する変数を選択します。 解析を行った場合、新たに生成された変数がここに加わります。 候補が1つの場合は必要ありません。
描画方法(曲線、等値線図、地図投影)、 または解析方法(最大、最小、平均、標準偏差)を指定します。 実行ボタンをクリックするまで実行されません。
X軸、または解析に使用する従属変数を選びます。
Y軸にする従属変数を選びます。 動作の種類によっては必要ありません(選択できないようになっています)。
描画または解析を実行すします。
タイトルと欠損値を設定するウィンドウです。
このウィンドウでアニメーションの再生、停止のほか録画も行います。 次元ウィンドウの値も変化します。
変数が持つ従属変数(次元変数)の値をそれぞれ設定することができます。
地図投影法を選択します。 投影法の種類は
等値線図を描画する場合、等値線とトーンの間隔を設定することが可能です。
等値線・トーンの描き方を設定します。
自己記述されているデータの属性を表示します。 この属性も描画するかどうかの選択もできるようになるかもれません。
描画対象になる変数のことです。 1次元以上の多次元配列です。 データによっては複数ある場合もあります。
描画対象となる変数の従属変数です。 軸として設定される候補です。
現在サポートされている形式はNetCDFのみです。 NetCDFは配列指向で自己記述型のデータ形式で、 地球流体科学の分野ではかなりメジャーなデータフォーマットだと思います。 将来的にはHDFや他の科学技術データ形式もサポートされるはずです(多分)。 非自己記述型データも自己記述型のデータとして扱うことができるようになるのではないでしょうか。
netCDF形式は等間隔の多次元配列データだけでなう不規則な多次元配列データも 扱えるのですが、 gaveはこれをまったく気にすることなく使用することができます。
画像はPNGで保存することが可能です。 おそらくJPEG, TIFF などにも対応していると思います。
1コマずつ通し番号が振られてPPM形式の画像に保存されます。 これをまたアニメーションにすることができますが、その方法は他を参考にしてください。
Rubyスクリプトとなります。 データファイルとこのコードを持っていれば同じ描画を再現することができます。 将来的にはgaveがこのコードを開くことも可能になるかもしれません。
RubyとDCLについての知識があればこのコードは描画の再現以上の可能性を持ちます。 すなわち描画スクリプトの雛形として利用することが考えられます。
以下の環境では動作を確認しています。
次の環境でも動くかもしれません。
Windowsではいまのところ使えません。
TP_2001-08_ERA40.nc | 2001年8月の降雨量 |
T_2001-08_ERA40.nc | 2001年8月の気温 |
U_2001-08_ERA40.nc | 2001年8月の東西風 |
Xウィンドウが起動している状態でコンソールから
$ gaveとして起動します。
あるいは、ファイル名を引数にして起動することもできます。 するとgaveがファイルを開いた状態で起動します。
$ gave filename.nc
等値線図の描画例として、ERA40再解析データより
2001年8月の気温を可視化します。
ここで使うファイルは気温のデータで従属変数として
緯度(longitude)、経度(latitude)、気圧(levelist)の3変数
を持っています。
描画する対象の変数を選択します。
例では「t」しかないのでそれが選択されいます。
次に動作に「等値線(contour)」を選択します。
そして軸にとる従属変数を選択します。
例ではデフォルトの「longitude」と「latitude」が選択されています。
描画(draw)ボタンをクリックすると等値線図が描画されます。
描画(ビューポート)の内部をドラッグすることで表示位置を変更できます。
描画の枠(軸)をドラッグすることでサイズが変更できます。
ただし現在のバージョンでは文字も含めた描画範囲は正方形の領域しかとることが
できない仕様になっています。
X軸とY軸にとる従属変数を選択しなおします。
X軸にlatitude、Y軸にlevelsを選択しました。
描画ボタンをクリックして、描画を開始しますると次のようになります。
描画の表示位置とサイズは変更しています。
latitudeとlevelistは軸として使われていますが、
残ったlonitudeは現在、デフォルトの東経0度が使われています。
そこで東経140度の図を描きたい場合は次元ウィンドウで設定します。
描画してみます。
図の右側に「longitude 140 degrees_east」となっていることがわかるでしょう。
図のタイトルを変更することができます。
これを描画すると次のようになります。
軸についている文字列(タイトルと単位)も変更することができます。
これは軸ウィンドウから行います。
これを描画すると次のようになりますが、
この例において的確な修正ではないのでこの
描画のあと変更をもとに戻します。
軸ウィンドウの対数チェックボタンをチェックすると
対数軸をとることが可能です。
例ではlevelist(気圧)のY軸を対数でとり片対数グラフにしました。
次のようになります。
軸ウィンドウの最小値と最大値を設定することで 描画の範囲をしていすることができます。
描画範囲を逆に設定することで上下、左右反転させる
こともできます。
例では上下を反転させています。
1000mbが図の下して見やすくしました。
等値線とトーンの間隔は自動で設定されますが
手動で設定することもできます。
等値線間隔およびトーン間隔ウィンドウの手動・自動を
切り替えて最小値と間隔を設定することで手動で設定が可能です。
最小値と間隔は変数tの範囲を考えて適当に設定してします。
何度か繰り返し設定しなおすことが必要になると思います。
各変数が持つ情報を表示します。 メインウィンドウのメニューバーから属性ウィンドウを選択し表示させます。 これでデータが持つ属性を表示します。
例をみると、変数tは単位K、longnameがTemperatureであり
スケールファクタとオフセットが図のように設定されていて、
従属変数にlongitude、latitude、levelistをもっていることがわかります。
大域属性はファイルの出所などを記述する属性です。
動作選択メニューから等値線の代わりに折れ線を選択すれば
あとは等値線と同様に折れ線図を描くことができます。
地図投影法は4種類用意されています。
使用する投影法を地図投影ウィンドウから選択し、
メインウィンドウの動作選択メニューから「地図投影(Map)」を選択してください。
他の手順は等値線図を描く場合と同じです。
それぞれの投影法で描画してみます。
描画対象となる物理量を解析します。
解析対象となる変数を選択し、動作選択メニューから解析方法を選びます。
選択できる解析方法(関数)は現在4種類用意されています。
解析方法を選択すると実行ボタンがその解析用の実行ボタンに変わります。
解析に使用する従属変数を選択して、その実行ボタンをクリックします。
すると解析されたデータが変数欄に新しくできます。
可視化した画像を保存します。
メインウィンドウのメニューバーからファイル−画像の保存を選択します。
保存するファイルの拡張子から適切な保存形式を判断します。
拡張子はデフォルトではpngになっていますが、jpg、gif、tiffなども使用可能です。
可視化にされた画像そのものではなく、画像を再現するRubyスクリプトを保存する ことができます。 保存方法は画像と同様です。
保存したRubyスクリプトをRubyインタプリタで実行します。 Xウィンドウがひらき同じ画像が再現されているはずです。