A quick-hack pure-ruby program to convert BUFR into usable formats (TAC or JSON).
WMO 通報式 BUFR を解読し TAC や JSON などのより利用しやすい形式に 変換する pure ruby プログラム。
ファイルは必ずしも "BUFR" から始まらなくてもよい。BUFR を含むバッチFTPファイル、tar ファイルなどでもかまわない。 詳細は bufrscan.md 参照。
ruby bufrscan.rb files ...
files から BUFR 報を見出し、概要(第1節など固定位置に書かれた情報)を印字する。
ruby bufrscan.rb -d files ...
files から BUFR 報を見出し、記述子列を印字する。
詳細は bufrdump.md 参照。 BUFR表については後述。
ruby bufrdump.rb -x files ...
記述子列の反復の範囲を判定し、集約を展開 (eXpand) した結果を JSON 形式で印字する。
ruby bufrdump.rb -c files ...
記述子列の反復の範囲を判定し、集約を展開し、 要素記述子の幅・単位・尺度・名称を調べ、操作記述子を適用して解読計画を 構成 (compile) した結果を JSON 形式で印字する。
ruby bufrdump.rb -d files ...
電文中の実データを毎行1要素の形式で印字 (dump) する。
ruby bufrdump.rb -j files ...
電文中の実データをサブセット毎に JSON 形式で印字する。
ruby bufr2synop.rb files ...
FM12 SYNOP 通報式を生成する。
ruby bufr2temp.rb files ...
FM35 TEMP 通報式を生成する。現在のところ Part A だけが生成される。
BUFR表はファイル table_b_bufr
, table_b_bufr.v13
, table_d_bufr
に格納される。
これらはデフォルトでは ruby スクリプト $0
が置かれたディレクトリから
探されるが、環境変数 BUFRDUMPDIR
を定義することにより変更できる。
- operator descriptors はほとんど実装されていない。
BUFR tables (files table_b_bufr
and table_d_bufr
) are taken from libECBUFR https://launchpad.net/libecbufr which is also distributed under LGPL.