[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
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002131] Re: GPhys::NetCDF_IO.each_along_dims_write returns an error
- From: Seiya Nishizawa <seiya@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 15 Feb 2005 11:01:28 +0900
西澤です。
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