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

[dennou-ruby:003693] interpolate メソッドで欠損値が生じる場合の不具合



堀之内さま, (Cc: dennou-ruby の皆様)

納多です.

午前中のミーティングでお話しましたが,
interpolate メソッドが返した GPhys オブジェクトを
netCDF ファイルに書き出すと
欠損値がうまく扱われていないようです.

サンプルスクリプトを添付致します.

私の手元 (Debian 7.0 32bit, Ruby 1.9.3p194,
GPhys 1.2.2-3 (Debian パッケージ))
で走らせると以下の結果になります.

  $ ruby test_interpolate.rb
  NArrayMiss.float(5):
  [ 0.5, 1.5, 2.5, 3.5, - ]
  NArray.float(5):
  [ 0.5, 1.5, 2.5, 3.5, 9.96921e+36 ]

前者は interpolate メソッドが返したもの,
後者はそれを一旦 netCDF ファイルに書きだしたのを読んだものの値で,
私としては後者の結果が前者に一致してほしいです.

どうやら,interpolate メソッドが返した GPhys オブジェクトの中に
missing_value 属性が設定されていないため,
netCDF ファイルに書き出したときに欠損値の情報が落ちているようです.

私が気づいたのは interpolate だけですが,
これ以外にも,欠損値のないデータを入力しても
欠損値のあるデータを返しうるメソッドがあれば
同様の問題を持っているのではないかと想像します.

宜しくお願い致します.

-- 
納多 哲史 (NODA, Satoshi)
気象研究所 気候研究部 第一研究室 支援研究員
E-mail: noda@xxxxxxxxxxxxxx

Attachment: test_interpolate.rb
Description: Binary data