[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002129] GPhys::NetCDF_IO.each_along_dims_write returns an error
- To: Dennou-Ruby <dennou-ruby@xxxxxxxxxxx>
- Subject: [dennou-ruby:002129] GPhys::NetCDF_IO.each_along_dims_write returns an error
- From: Seiya Nishizawa <seiya@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 15 Feb 2005 10:39:57 +0900
西澤です。
NetCDF_IO.each_along_dims_write
がエラーになります。
データは
http://druby.rish.kyoto-u.ac.jp/arch/era40/
からとってきた月平均気温です(1Gくらいあります)。
以下に結果を示します。
%irb -r numru/gphys
irb(main):001:0> include NumRu
Object
irb(main):002:0> g = GPhys::IO.open("t.nc","t")
<GPhys grid=<4D grid <axis pos=<'longitude' in 't.nc' sfloat[144]>>
<axis pos=<'latitude' in 't.nc' sfloat[73]>>
<axis pos=<'levelist' in 't.nc' int[23]>>
<axis pos=<'time' in 't.nc' int[2160]>>>
data=<'t' in 't.nc' sint[144, 73, 23, 2160]>>
irb(main):003:0> ofile = NetCDF.create("t.xm.nc")
NetCDF:t.xm.nc
irb(main):004:0> out = GPhys::NetCDF_IO.each_along_dims_write(g,ofile,-1){|sub| [sub.mean(0)] }
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:110:in `put'
from /usr/lib/ruby/1.6/numru/netcdf.rb:752:in `[]='
from /usr/lib/ruby/1.6/numru/gphys/varray.rb:499:in `[]='
from /usr/lib/ruby/1.6/numru/gphys/gphys_io_common.rb:112:in `each_along_dims_write'
from /usr/lib/ruby/1.6/numru/gphys/gphys_io_common.rb:110:in `each'
from /usr/lib/ruby/1.6/numru/gphys/gphys_io_common.rb:110:in `each_along_dims_write'
from /usr/lib/ruby/1.6/numru/gphys/gphys_io_common.rb:78:in `each'
from /usr/lib/ruby/1.6/numru/gphys/gphys_io_common.rb:78:in `each_along_dims_write'
from /usr/lib/ruby/1.6/numru/gphys/gphys_netcdf_io.rb:375:in `each_along_dims_write'
from (irb):4
あとデータが大きいときに平均などをする場合、
ファイルに書き出すときはこのメソッドがありますが、
結果を得たい場合に同様に内部でループを回してメモリを節約するメソッドがほしいです。
--------------
Seiya Nishizawa
seiya@xxxxxxxxxxxxxxxxxx