通常、気象業務支援センターから購入したディスクについている、 SAMPLE_C の中の grib2_dec を使ってデコードし、その値(整数値)を、 GRIB2のヘッダ情報の第5節
-- 17 データ代表値の尺度因子(E),現解析雨量の場合は1【注7】 16+2×m~ 17+2×m レベルmに対応するデータ代表値 R(m),m=1~M, レベル0は欠測値,単位はmm【注7】を見て、値に変換する。私も以前こうした覚えがある。(当時はFreeBSDだった)
しかし、今回、セグメンテーションエラーが起こって、最後まで実行できず、当然
データのデコードが行えない事態が発生した。そこで、NOAA から wgrib2 を取ってきた。
ダウンロードサイト
で、実際これで、bin データに変換(wgrib2 -no_header データファイル -bin 出力ファイル )
すると、
つまり、
if(level<2) then data=0 else if(level==2) then data=0.4 else if(level<80) then data=level-2 else if(level<91) then data=80+5*(level-80) else if(level<98) then data=130+10*(level-90) else data=255 end ifというように変換されているのです。(2015.6 追記)
そこで、もう1段データ変換のフィルターを噛ませて処理した。
2015年3月19日以前の記述では、77mm 以上でおかしくなるそうです。( アクト・ウェザーの真中さん、ご指摘ありがとう )
同日、変換式を考慮して、1レベル値がずれているとして処理するようフィルター
ソフトfindval_mod_v2.f90 を修正しました。
蛇足だが、run length 圧縮をかけてあるこのデータを単純な bin 形式に変換すると
かなりデータが大きくなるので、1ファイルずつ変換して必要情報を処理するスクリプトを作ることがおすすめ。また、時刻がUTCなので、JSTで処理するには、9時間ずらす必要がある。