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

[dennou-ruby:003964] Re: [dennou-ruby:003963] Re: [dennou-ruby:003962] NetCDF に書き出す際にデータの型が変わる



大塚さま: 松葉です.

copy を挟むことでデータの型が変わることがなくなりました.
これでしばらくは回避したいと思います.
迅速に対応していただき,ありがとうございます.

2016年6月27日 10:59 Shigenori OTSUKA <shigenori.otsuka@xxxxxxxx>:
松葉さま

大塚です。バグ報告ありがとうございました。

バグの原因は分かりましたので、これから修正方法を検討します。
(typecodeの推定に使っている格子点が欠損値だったのが原因でした)

当面の回避策としては、書き出し前にcopyを挟んでもらえば大丈夫です。

GPhys::NetCDF_IO.write(outfile, tmp.copy)

よろしくお願いします。


On 2016/06/24 21:03, Fumitaka MATSUBA wrote:
大塚さま (Cc: 電脳 Ruby のみなさま) : 京大気象学研究室 M2 の松葉です.

Ruby-NuSDaS 特有の現象なのかちょっと分かりませんが,NuSDaS データを読み
込んで
それを NetCDF に書き出すと,データの型が変わるという症状に遭遇しています.
書き出したときに当然,もとの型を保持しておいて欲しいわけなのですが,これ
はどういう
カラクリなのでしょうか?

サンプルスクリプトは以下です.これに必要なデータはちょっと容量が大きいので,
ここからの取得をお願いします.
https://www.dropbox.com/s/os0gfr4oyuepf1w/fcst_phy2m.nus.tar.gz?dl=0

​---------- ここからスクリプト ----------
require 'numru/gphys'
include NumRu

# データの読み込み
file = 'fcst_phy2m.nus' # 2次元物理モニタ

var = '_RLUTsrf'        # 上向き長波放射

tmp = GPhys::IO.open(file, var)[false, 18..-1]
p tmp.val
p tmp.val.typecode  #=> 4: NArray::SFLOART


# NetCDF に書き出す
outname = "#{var}.nc"
outfile = NetCDF.create(outname)
GPhys::NetCDF_IO.write(outfile, tmp)
outfile.close

# NetCDF に書き出したデータを読み込む
tmp = GPhys::IO.open(outname, var)
p tmp.val
p tmp.val.typecode #=> 1: NArray::BYTE​​
---------- ここまでスクリプト ----------

以下,実行結果:
$ ruby test.rb
NArray.sfloat(115,103,55):
[ [ [ 295.561, 295.561, 295.784, 296.314, 296.262, 290.73, 291.428, ... ],
    [ 295.561, 295.561, 295.784, 296.314, 296.262, 290.73, 291.428, ... ],
    [ 294.403, 294.403, 294.366, 295.442, 295.455, 290.483, 291.145, ... ],
    [ 294.391, 294.391, 294.354, 295.452, 295.439, 290.651, 291.288, ... ],
    [ 292.513, 292.513, 292.434, 293.672, 293.8, 289.959, 290.511, ... ],
    [ 292.562, 292.562, 292.364, 293.69, 294.019, 290.114, 290.608, ... ],
    [ 290.694, 290.694, 290.2, 292.233, 292.876, 289.112, 289.508, ... ],
    [ 290.483, 290.483, 290.419, 293.208, 294.638, 289.179, 289.557, ... ],
    [ 288.447, 288.447, 287.865, 290.325, 292.077, 287.139, 287.472, ... ],
    [ 287.834, 287.834, 288.017, 292.007, 292.138, 287.158, 287.487, ... ],
 ...
4
NArray.byte(115,103,55):
[ [ [ 39, 39, 39, 40, 40, 34, 35, 37, 37, 38, 38, 39, 39, 40, 40, 40,
... ],
    [ 39, 39, 39, 40, 40, 34, 35, 37, 37, 38, 38, 39, 39, 40, 40, 40,
... ],
    [ 38, 38, 38, 39, 39, 34, 35, 36, 37, 37, 38, 38, 39, 39, 39, 40,
... ],
    [ 38, 38, 38, 39, 39, 34, 35, 37, 37, 38, 38, 39, 39, 39, 39, 40,
... ],
    [ 36, 36, 36, 37, 37, 33, 34, 36, 36, 36, 36, 37, 37, 38, 38, 39,
... ],
    [ 36, 36, 36, 37, 38, 34, 34, 36, 36, 36, 36, 37, 37, 38, 38, 39,
... ],
    [ 34, 34, 34, 36, 36, 33, 33, 34, 34, 34, 34, 36, 36, 37, 37, 37,
... ],
    [ 34, 34, 34, 37, 38, 33, 33, 34, 34, 34, 34, 36, 36, 37, 37, 37,
... ],
    [ 32, 32, 31, 34, 36, 31, 31, 31, 31, 32, 32, 35, 35, 37, 37, 32,
... ],
    [ 31, 31, 32, 36, 36, 31, 31, 31, 31, 32, 32, 35, 35, 37, 37, 32,
... ],
 ...
1

使っている Ruby-NuSDaS は git より取得している最新版です.

お手数ですが,すこし調べていただけないでしょうか.
よろしくお願いいたします.

--
松葉 史剛 (Fumitaka MATSUBA)
京都大学大学院 理学研究科 地球惑星科学専攻
地球物理学教室 気象学研究室 M2
E-mail: matsuba@xxxxxxxxxxxxxxxxxx <mailto:matsuba@xxxxxxxxxxxxxxxxxx>



--
大塚成徳 (Shigenori OTSUKA)
国立研究開発法人理化学研究所 計算科学研究機構(AICS)
データ同化研究チーム
〒650-0047兵庫県神戸市中央区港島南町7-1-26
電話078-940-5814
shigenori.otsuka@xxxxxxxx




--
松葉 史剛 (Fumitaka MATSUBA)
京都大学大学院 理学研究科 地球惑星科学専攻
地球物理学教室 気象学研究室 M2