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

[dennou-ruby:003374] ruby-netcdf での欠損値の扱い



西澤です



ruby-netcdf の netcdf_missing.rb のなかで、

     76     def __interpret_missing_params
                                  :
     98       sf = att('scale_factor')
     99       ao = att('add_offset')
    100       if ( sf || ao )
    101         ## Both NUG & CF conventions requires to specify the valid
    102         ## range with respect to the external (i.e. packed) values.
    103         ## However, some conventions require specification
    104         ## with respect to unpacked values. The following
    105         ## is to support such cases as well:
    106         thres_tp = [ self.typecode, NArray::LINT ].max
    107         @missval = pack(@missval) if @missval &&
@missval.typecode > thr    107 es_tp
    108         @vmin = pack(@vmin) if @vmin && @vmin.typecode > thres_tp
    109         @vmax = pack(@vmax) if @vmax && @vmax.typecode > thres_tp
    110       end

という部分があります。
missing_value, valid_range が short int の場合、
missing_value や valid_range には add_offset や scale_factor が適用されません。
わざわざコーディングしてあるので何か意図があってのことだと思いますが、
これはコンベンションで決まっていることでしょうか?

それが理由で
http://www.gfd-dennou.org/library/dcchart/atmos_global/NCEP/ULWRF.NCEP/ULWRF.2003.NCEP/ULWRF_2003-01_NCEP.nc
のデータが全部欠損値になってしまいます。


西澤誠也

-- 
Seiya Nishizawa
Center for Planetary Science, Kobe University
TEL : 078-803-6472
FAX : 078-803-5731