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

[dennou-ruby:003066] Re: Fw: 電脳Rubyで2次元gribファイル読み込み



西澤 様

栗田です

詳細に解析して頂きありがとうございます。以下の件ですが、
prs_grib2nc.rbの中身は、最初に堀之内さんに転送して頂いた
grib2nc.rb とほぼ同じです。書き出すと以下になります。
ファイル名が存在することは確認しましたが、ここでは、
vname="PRMSL"として出力させており、昨日書きましたよう
に、実際の変数名は "PRMSL_msl"ですので、そこが問題かと
思います。

ただ、ここでエラーの原因を探るために、何十回と試行錯誤
しておりましたので、もしかすると、最後にメールを送るた
めのエラー出力を出す際に、ミスタイプして、ファイル名を
間違っていた可能性はあります。

MLに投稿する際には、ケアレスがないように、何度も確認する
のですが、それが仇になったかもしれません。ご迷惑おかけし
申し訳ございませんでした。

>----------------------------------------------------------
yr      = ARGV.shift.to_i
varname = ARGV.shift.to_s
tunit   = "days"
iflag   = 1

#jend = yymmdd_to_ddd( yr, 12, 31 )
jend = yymmdd_to_ddd( yr, 1, 2 )

for i in 1...jend do
    mo,dy = yyddd_to_mmdd( yr, i )
    yy = sprintf("%2.2d",yr)
    mm = sprintf("%2.2d",mo)
    dd = sprintf("%2.2d",dy)
    ifile = varname + yy + mm + dd + "00.grib"
    if  File.exist?( ifile ) then
       gphys = GPhys::IO.open( ifile,varname )


On 2009/03/03, at 20:28, Seiya Nishizawa wrote:

西澤です

2009/3/3 Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxx>:

となります。これをコマンドラインで読み込むと、データを
OPENするところでエラーストップします。

irb > require 'numru/gphys'
irb > include NumRu
irb > gphys = GPhys::IO.open( PRMSL2004010100.grib,"PRMSL" )

/usr/lib/ruby/1.8/numru/gphys/grid.rb:213:in `initialize': each
argument must be an Axis (ArgumentError)
      from /usr/lib/ruby/1.8/numru/gphys/grid.rb:209:in `each'
      from /usr/lib/ruby/1.8/numru/gphys/grid.rb:209:in `initialize'
      from prs_grib2nc.rb:78:in `new'
      from prs_grib2nc.rb:78
このエラーをみると、
GPhys::IO.open
でこけているのではなく、
Grid.new
でこけているようです。
Grid.new に与えている引数が Axis クラス でない というエラーですね。 (最初 grib と grid を見間違えて、grid.rb を見て 行番号を見ても each や initialize がな くて困惑しました^^;)

prs_grib2nc.rb を見せてもらえますでしょうか。

いただいた grib2nc.rb をみて想像すると
54行目からの
         lon = Axis.new.set_pos(x)
         lat = Axis.new.set_pos(y)
         lev = Axis.new.set_pos(z)
         time= Axis.new.set_pos(t)
というところに一度もたどりついていないのではないかと思われます。
43行目の if File.exist?(fname) にマッチするファイル はちゃんと存在しますでしょうか。



--
Seiya Nishizawa
Department of Earth and Planetary Atmospheric Sciences, Kobe University