NetCDF
NCL
気象データ
ecmwf

ECMWFのデータをNCLで読み込む時の注意点(scale_factor,add_offset)

ERA-interimのデータをNCLで描画するのにいろいろと手こずってしまっていて。苦笑
一つ解決したのでメモ

参考URL

What are NetCDF files and how can I read them - Copernicus Knowledge Base - ECMWF Confluence Wiki https://confluence.ecmwf.int/display/CKB/What+are+NetCDF+files+and+how+can+I+read+them

ERA-interimの相対渦度(Relative Vorticity)
※ある領域で切り取ったP面データ

ncl
printVarSummary(rv)
Variable: rv
Type: short
Total Size: 1487402072 bytes
            743701036 values
Number of Dimensions: 4
Dimensions and sizes:   [time | 124] x [level | 37] x [latitude | 337] x [longitude | 481]
Coordinates: 
            time: [1016832..1017570]
            level: [1..1000]
            latitude: [21..-21]
            longitude: [150..210]
Number Of Attributes: 7
  scale_factor :    1.571946344201145e-08
  add_offset :  -0.0001068763029856368
  _FillValue :  -32767
  missing_value :   -32767
  units :   s**-1
  long_name :   Vorticity (relative)
  standard_name :   atmosphere_relative_vorticity

桁が多くなるようなパラメータは、データ容量を少なくするためにscale_factorとadd_offsetを使うようになっている。

対処法

scale_factorを掛け、add_offsetを加える。

正しい値 = (元の値 * scale_factor) + add_offset

この処理が必要ない場合

参考URLには

https//confluence.ecmwf.int/display/CKB/What+are+NetCDF+files+and+how+can+I+read+them
●Matlab (ncread, ncwrite) applies Scale_factor and Add_offset automatically
●R (ncvar_get) applies Scale_factor and Add_offset automatically
●Panoply applies Scale_factor and Add_offset automatically. It also displays the values of Scale_factor and Add_offset, causing many users to believe they have to calculate something - no, you don't.
●Metview from version 5 onwards applies Scale_factor and Add_offset automatically; Metview 4.x does not.
●The Unidata NetCDF4 module for Python (which is an interface to the NetCDF C library) applies Scale_factor and Add_offset automatically

と書いてある。これらを使ったことがないのだけど…これらのツールの場合自動的に計算されるので、この処理は必要ない。
また、みんな大好きgradsも同様に自動的に処理されるので、不要。