[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003374] ruby-netcdf での欠損値の扱い
- To: Dennou-ruby <dennou-ruby@xxxxxxxxxxx>
- Subject: [dennou-ruby:003374] ruby-netcdf での欠損値の扱い
- From: Seiya Nishizawa <seiya@xxxxxxxxxxxxxx>
- Date: Tue, 5 Jul 2011 18:03:55 +0900
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type:content-transfer-encoding; bh=ZsJQRN0FmMpTa3dqIxwWdQTs/ECedJ0ycCaqYYo66rQ=; b=nz1jZ4s6/3PImJeiHyEJC5Uq+j4nf2DSyqxLqpoGxLYK3vJ1cDMfow0ZM2Gxf9hsHN bs1MKv/vDRmnXN9gh3EVsRM9RwqUbNQDDvY9wFAvbtQ/SJdSGMkM24PXO2N0Wnmxru2p MDQrBwIuqslZWuH9H90WCdki7HtISzbVgzcFk=
- Sender: seiyani@xxxxxxxxx
西澤です
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