[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002283] Re: global attributes
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002283] Re: global attributes
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 01 Jun 2005 21:21:52 +0900
堀之内です.
> Gphys で Netcdf ファイルを扱うときに, global attribute を調べたり
> 読みこんだりするにはどうするのがよいのでしょうか.
>
> GPhys や ruby-netcdf のマニュアルをながめても, よくわからんかったので
> 申訳ありませんが初学者にご教示下さいませ.
いやいや,たぶん GPhys 作者とヘビーユーザーしかわからない
裏技が要ると思います ^^;
# 皆さんもっと気軽に質問してくれていいです.
GPhys は変数単位なので,ファイルに直下に属する global 属性は,
陽には構成要素になりません.そこで,ファイルは何か調べてアク
セスすることになります(というのが関門ですね):
gphys = GPhys::IO.open('....','hoge')
file = gphys.data.file
でファイルハンドラーが返ってきます.NetCDFファイルの場合は
NetCDF クラスのオブジェクトです.(ちなみに,上の例では主変数
(data)のファイルになります.もし座標変数のファイルなら
file = gphys.coord(0).file など --- GPhys::IO.open で開いた場合
は一緒ですが,一般には軸とデータは別々の場所にあってもいいんです.)
上の file は NetCDF オブジェクトなので,あとは煮るなり焼くなり
してください.
例:
array = file.att_names # global属性名を配列で返す.
att = file.att(name) # nameで指定したglobal属性(NetCDFAtt)を返す
val = file.att(name).get # nameで指定したglobal属性の値を返す
file.each_att{|att| ....} # global属性(NetCDFAtt)に関するイテレータ
堀之内 武 horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所 611-0011 宇治市五ヶ庄