[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 宇治市五ヶ庄