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

[dennou-ruby:002131] Re: GPhys::NetCDF_IO.each_along_dims_write returns an error



西澤です。



On Tue, 15 Feb 2005 10:54:21 +0900
Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx> wrote:

> 一点確認まで。
> 
> > NetCDF_IO.each_along_dims_write
> > がエラーになります。

> each_along_dims_write の問題なのですね。つまり、
> g = GPhys::IO.open("t.nc","t")[false,0]
> とか、
> g = GPhys::IO.open("t.nc","t")[false,0..3]
> などにして、データサイズを限っておいて、
> each_along_dims_write を使わないで同じことをすると
> 同じエラーになったりしませんか。
すいません。確認していませんでした。
データを限ってやってもエラーとなります。

irb(main):010:0> gs = g[false,0]
<GPhys grid=<3D grid <axis pos=<'longitude' shape=[144]  subset of a NumRu::VArrayNetCDF>>
        <axis pos=<'latitude' shape=[73]  subset of a NumRu::VArrayNetCDF>>
        <axis pos=<'levelist' shape=[23]  subset of a NumRu::VArrayNetCDF>>>
   data=<'t' shape=[144, 73, 23]  subset of a NumRu::VArrayNetCDF>>
irb(main):011:0> gm = gs.mean(0)
<GPhys grid=<2D grid <axis pos=<'latitude' shape=[73]  subset of a NumRu::VArrayNetCDF>>
        <axis pos=<'levelist' shape=[23]  subset of a NumRu::VArrayNetCDF>>>
   data=<'t' sfloat[73, 23] val=[256.2399902,256.4946289,257.0656738,257.6799622,...]>>
irb(main):014:0> f = NetCDF.create("test.nc")
NetCDF:test.nc
irb(main):017:0> GPhys::NetCDF_IO.write(f,gm)
nil
irb(main):018:0> f.close
NetcdfBadtype: Not a netCDF data type or _FillValue type mismatch
        from /usr/lib/ruby/1.6/numru/gphys/varraynetcdf.rb:45:in `enddef'
        from /usr/lib/ruby/1.6/numru/gphys/varraynetcdf.rb:45:in `enddef'
        from /usr/lib/ruby/1.6/numru/gphys/varraynetcdf.rb:58:in `close'
        from (irb):18


> > あとデータが大きいときに平均などをする場合、
> > ファイルに書き出すときはこのメソッドがありますが、
> > 結果を得たい場合に同様に内部でループを回してメモリを節約するメソッドがほしいです。
> 
> そうですね。前から作りたいと思ってます。簡単なはずですし。
宜しくお願いします。


--------------
Seiya Nishizawa
seiya@xxxxxxxxxxxxxxxxxx