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

[dennou-ruby:002431] Re: Global attribute



竹広さん

だいぶ前のメールのフォローです.

> > それから入力が複数ファイルの場合には 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

堀之内