GPhys と gave のインストール(Ubuntu 上)

電脳 Ruby プロジェクト(地球流体電脳倶楽部)は,地球流体力学のデータ解析と可視化を Ruby で行うライブラリ群を公開している。中心となるのが GPhys であり,NetCDF,GrADS,GRIB 形式の格子点データを統一的に扱う。gave は,GPhys を用いた GTK ベースの GUI データビューアである。

gave と GPhys の関係

gave の最後の公開版は 1.2.5(2012 年公開)であり,GTK2 と旧版の Ruby 拡張ライブラリに依存している。現在の Ubuntu 向けの配布パッケージはないため,新規に導入する場合は GPhys をインストールし,GPhys に付属する gpview,gplist,gpprint などのコマンドを使う。GPhys は現在も更新されており,RubyGems では 1.5.7(2025 年 10 月公開)が入手できる。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

* PPA のパッケージを用いてインストールする場合の手順

電脳 Ruby プロジェクトは,Ubuntu の LTS 版向けのパッケージを Launchpad の PPA ppa:gfd-dennou/ppa で公開している。 端末で,次のコマンドを実行する。

# PPA の登録
sudo add-apt-repository ppa:gfd-dennou/ppa
# パッケージリストの情報を更新
sudo apt update
# GPhys と DCL のインストール
sudo apt -y install gphys dcl-f90

公開されているパッケージと,対応する Ubuntu のバージョンは PPA のページで確認できる。

* RubyGems を用いてインストールする場合の手順

PPA が対応していない Ubuntu のバージョンを使う場合や,新しい版の GPhys を使う場合は,RubyGems を用いる。GPhys は C 言語で書かれたライブラリに依存するため,先にそれらをインストールする。 端末で,次のコマンドを実行する。

# ビルドに必要なパッケージと依存ライブラリのインストール
sudo apt -y install build-essential ruby ruby-dev \
  libfftw3-dev libnetcdf-dev
# DCL (C 版) のインストール
sudo add-apt-repository ppa:gfd-dennou/ppa
sudo apt update
sudo apt -y install dcl
# GPhys のインストール
sudo gem install gphys

gphys の gem をインストールすると,依存関係により narray,narray_miss,numru-misc,numru-units,ruby-dcl,ruby-fftw3,ruby-netcdf も同時にインストールされる。

gem のインストール前に必要な C ライブラリは次の通りである。

統計処理などで rb-gsl を使う機能を利用する場合は,GSL(GNU Scientific Library,libgsl-dev)を追加でインストールする。

インストールの確認と基本的な使い方

GPhys には,NetCDF ファイルを扱うコマンド群が付属する。 端末で,次のコマンドを実行する。

# ファイル内の変数名と座標軸の一覧を表示
gplist データファイル名.nc
# 変数の値を数値で出力
gpprint データファイル名.nc@変数名
# 変数を描画(1 次元なら折れ線,2 次元ならコンター)
gpview データファイル名.nc@変数名

gpview の主なオプションは次の通りである。

コマンドの詳しい使い方は,gp コマンドチュートリアルで説明されている。

Ruby スクリプトからの利用

GPhys は Ruby のライブラリとしても使える。描画には GGraph モジュールを使う。

require "numru/ggraph"
include NumRu

gphys = GPhys::IO.open("データファイル名.nc", "変数名")
DCL.gropn(1)
GGraph.set_fig("itr" => 1)
GGraph.tone(gphys)
GGraph.contour(gphys, false)
DCL.grcls

GPhys と GGraph の使い方は,GPhys, GGraph チュートリアルで説明されている。

gave のソースコードからのインストール

gave のソースコードは gave の配布ページから入手できる(gave-1.2.5.tar.gz)。実行には,GPhys のほかに GTK2 版の ruby-gnome2 と ruby-dclext-gtk が必要である。これらは現在の Ubuntu では標準パッケージとして提供されていないため,導入には個別のビルド作業が必要になる。GUI で可視化を行う場合は,上記の gpview コマンドを使う。