[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001767] DODS



堀之内です。

DODSを使ってみました、という話。

RubyNetCDF において、通常の NetCDF ライブラリーの代りに DODS
(http://www.unidata.ucar.edu/packages/dods/) 対応の NetCDF ライ
ブラリーを使うテストをしてみたところ、うまく行きました。いずれ、
DODS対応 NetCDF がインストールされていればそれを使うというふうに
したいのですが、dcl-config とかに相当する dods-config といったコ
マンドが今のところないので、現時点では見送りました。逆に言えば、
ちゃんとリンクすべきライブラリーを configure さえできれば、現時
点でも DODS 対応 NetCDF が使えます。config コマンドに関しては 
DODS 作者に依頼しました。乗り気ではあります。

ということで皆さんのお手元では動きませんが、ファイル名のかわりに 
DODSサーバー上のデータの URL を与えます。例えば以下のように図が
書けます(実際に動いたスクリプトです)。

--- ここから ---
require "numru/ggraph"
include NumRu
sst = GPhys::IO.open('http://www.cdc.noaa.gov/cgi-bin/nph-nc/Datasets/reynolds_sst/sst.mnmean.nc','sst')
DCL.gropn(1)
DCL.sgpset('lcntl',false)
DCL.uzfact(0.6)
GGraph.contour(sst)                   # 図 1 枚目 (lon-lat断面)
GGraph.contour(sst.cut('lon'=>130))   # 図 2 枚目 (lat-time断面)
DCL.grcls
--- ここまで ---

普通と違うのは、ローカルなパスの代りに URL を使っていることだけ
です。なお、もちろんDODS対応版でもローカルなファイルも処理できま
す。

西澤さま:

gave のファイル名入力窓でも、URL を入れたらそのまま 
GPhys:IO.open に渡すようになっていればOKです。