堀之内さま, (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