[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002431] Re: Global attribute
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002431] Re: Global attribute
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Mon, 29 Aug 2005 17:59:09 +0900
竹広さん
だいぶ前のメールのフォローです.
> > それから入力が複数ファイルの場合には gphys.data.file の返り値が
> > NetCDF Class でなくファイル名の配列になってしまうので,
> > おなじ方法がとれません. その場合には別途一つのファイルを開いて
> > Global attribute を読み取るぐらいでいいのでしょうか.
> > もっと洒落た方法があったら教えて下さい.
>
> ファイル「名」の配列を返すのは一貫性にかけますね。
> ファイルオブジェクトを返すように変えたほうがいいと思います
> → 今後検討します。
現状でも,ちゃんとファイルオブジェクトの配列になってます.
(上記は「ファイルオブジェクトの配列を返すように変えたほうが
いいと思います」と書くつもりでした.)
このあたりは相当長期間いじってないので,バージョンが古くても同じ
はずです.
例:
(時系列が三つのファイル nc0-12h/prr.nc, nc12-24h/prr.nc,
nc24-36h/prr.nc に分かれている場合に)
% irb --simple-prompt
>> require "numru/gphys"; include NumRu
=> Object
>> prr = GPhys::IO.open(Dir.glob('nc*/prr.nc').sort,'prr')
=> <GPhys grid=<3D grid <axis pos=<'lon' in 'nc0-12h/prr.nc' sfloat[406]>>
<axis pos=<'lat' in 'nc0-12h/prr.nc' sfloat[348]>>
<axis pos=<NumRu::VArrayComposite shape=[145] #_of_tiles=[3]>>>
data=<NumRu::VArrayComposite shape=[406, 348, 145] #_of_tiles=[1, 1, 3]>>
>> files = prr.data.file
=> NArray.object(1,1,3):
[ [ [ NetCDF:nc0-12h/prr.nc ] ],
[ [ NetCDF:nc12-24h/prr.nc ] ],
[ [ NetCDF:nc24-36h/prr.nc ] ] ]
>> files[0].class
=> NumRu::NetCDF
>> files[1].class
=> NumRu::NetCDF
堀之内