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

[dennou-ruby:002304] GPhys::NetCDF_IO



大塚@京都大学です。

昨日、GPhysでメソモデルWRFの出力(NetCDF)を読もうとしたのですが、
以下のようなエラーが出ました。

/usr/lib/ruby/site_ruby/1.8/numru/gphys/grid.rb:218:in `__check_and_set_axnames': Two or more axes share a name: noname (RuntimeError)
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/grid.rb:215:in `each'
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/grid.rb:215:in `__check_and_set_axnames'
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/grid.rb:206:in `initialize'
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/gphys_netcdf_io.rb:368:in `new'
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/gphys_netcdf_io.rb:368:in `open'
        from /usr/lib/ruby/site_ruby/1.8/numru/gphys/gphys_io.rb:59:in `open'

原因は、WRF出力に座標軸の名前と同じ変数が無いために、
GPhys::NetCDF_IOが勝手に"noname"という変数を生成するのですが、
変数の格納されていない軸が複数あると、名前がかぶるわけです。

以下のような対策で読めるようにはなるのですが、
どうでしょう? > 堀之内様

$ diff -Naur gphys_netcdf_io.rb.org gphys_netcdf_io.rb
--- gphys_netcdf_io.rb.org      2005-03-29 18:44:46.614713000 +0900
+++ gphys_netcdf_io.rb  2005-06-06 01:35:21.765011200 +0900
@@ -328,6 +328,7 @@
            bare_index[i]=true
            na = NArray.float(ncvar0.shape_current[i]).indgen!
            axpos = VArray.new( na )
+            axpos.name = "axis_#{i}" # added by S. OTSUKA
          end
          cell_center, cell_bounds_name = convention::cell_center?( axpos )
          cell_bounds, cell_center_name = convention::cell_bounds?( axpos )

================================
京都大学理学研究科
気象学研究室 M2
大塚成徳 Shigenori OTSUKA
email: otsuka@xxxxxxxxxxxxxxxxxx