[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002284] RubyNetCDF and opendap/DODS
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002284] RubyNetCDF and opendap/DODS
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 01 Jun 2005 22:01:38 +0900
バイナリーパッケージメンテナーの皆様.
堀之内です.
RubyNetCDF の現在のバージョンは,opendap/dods
(http://opendap.org/) という遠隔データアクセスの NetCDF 埋め込み
型クライアントライブラリーに対応になってます.具体的には,ruby
extconf.rb したとき,もしもそのクライアントライブラリー(の比較
的新しい版)が入っていれば,自動的にそれをリンクして DODS 対応と
なります.
# 名前が紛らわしいですが,以前 DODS という名前だったのが,
OPeNDAP/DODS とか OPeNDAP という名前に変ってます.開発者で
も名前の変化について行けてなかったりするようです.以後,
DODS と呼びます.ちょっと前に話題になったジョバンニでも
使われてます.
さて,ここからが本題ですが,RubyNetCDF の各OS用バイナリーパッケー
ジでは DODS 対応になってるでしょうか.問題は,そのクライアントラ
イブラリーのインストールがかなり面倒だということです(もうやり方
忘れました.もはや再現出来ないかも).
pc linux に関しては,
http://ruby.gfd-dennou.org/products/ruby-netcdf/#download
に,DODS 入りでコンパイルしたのがありますので,netcdfraw.so だけ
ここから取ってきたものに入れ替えれば対応できると思うので,
linux 系のパッケージに関しては,もし非対応なら取り込んで頂け
ないでしょうか.(linux 以外に関しては,大変そうなので,
あんまりお願いしてはいけないかなぁ,と思ってたりします.)
ちなみに,DODS 対応にするとどうなるかというと,NetCDF.open(path)
において,path の代りに URL を入れると,ダウンロードなしに,
ローカルファイルと同じようにファイルの中身が読めます.
例えば path =
"http://motherlode.ucar.edu/cgi-bin/dods/nph-nc/dods/model/2005052800_sst_61-64.nc"
とか.DODS経由だと,サーバーに置いてあるファイルが NetCDF でなく
ても,DODS が対応してるフォーマットで NetCDF 的なデータ構造をし
てるファイルなら同じ NetCDF インターフェースで読めます.
いろんなデータのリンクが
http://gcmd.gsfc.nasa.gov/KeywordSearch/Home.do?Portal=dods&MetadataType=0index.html
にありますので見てみてください(DODSアクセス可なのが沢山あります).
あと,ECMWF のライセンスの都合上,京大の外のひとは登録が要ります
が,ERA40 (ECMWF 40年 再解析)データが以下に置いてあって,DODS で
もアクセスできます:
http://davis.rish.kyoto-u.ac.jp/arch/era40/
RubyNetCDF が DODS 対応になると,GPhys も自動的にそうなります.
よって,gave もそうなりますので,遠隔データをダウンロードなしに
gui で表示できます.
# ただ,DODS は cgi なので,NetCDF の下位のレベルのアクセスが
生じるたびにプロセス立ち上げコストがかかります.GPhys のよう
に高度なライブラリーでは裏でNetCDFのアクセスが何度も起きます
ので,あまり速くはないです.
堀之内 武 horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所 611-0011 宇治市五ヶ庄