wgrib2 使用方法

GRIB2 ファイルの dump (wgrib2 コマンド)

GIRB-2 形式ファイル(単にGRIB2ファイルと称されることもある)の 読み出し(デコード; decode)に関するメモ.

wgrib2 の使用方法

読み出したいGRIB2 ファイル名を hoge.grib とする.

コマンドラインでの使い方はこんな感じ:

wgrib2 [オプション] hoge.grib

これだけじゃ単純過ぎると思うかもしれませんが, wgrib2 のオプションと UN*X コマンドを使い, シェルスクリプト内で時間に関するループ(スクリプト雛型以下)などを使えば, データの抜き出し・バイナリ変換など,データ解析時に必要な一次処理の大部分が実現できます.

私的に作った wgrib2 の使い方

下記のメモ,自分でもたまに間違いを見つける (2012-10-10, 記述開始は2010年1月20日頃). 本ページで間違いを見つけたら,遠慮なく私まで連絡を.

  注意点

wgrib ユーザが陥りやすい, wgrib2 になってからの大きな違いは, ファイル出力時の緯度方向の記録順序が,南から北向きをデフォルトとしていること です.くれぐれも間違えないように!! (私は間違えてました.少なくとも丸1日悩んだ.アホや)

 wgrib2 の基本

以下の6つの実行例だけを知れば,とりあえずGRIB2ファイルの中身の情報を知ることができ, バイナリダンプして GrADS やら Fortran の計算プログラムに流し込むなどが出来るはず. これで大抵の事は出来るでしょう.

それ以外にも wgrib2 には豊富な機能(データを選択して切り出し,出力形式の変更など)がある. 詳細はwgrib2 メモ(早崎私家版) または tricks.wgrib2 の簡易日本語訳を参照.

 データの中身を表示

変数名,日付などの基本情報だけを知りたいとき

wgrib2 ifile.grb2

上記に加え,グリッド数,データの単位,データの範囲(最大・最小値など)を知りたいとき

(1データブロックにつき複数行表示)
  wgrib2 -V ifile.grb2

(グリッド情報のみ)
  wgrib2 -grid ifile.grb2

(1データブロックは1行表示.ただし,オプションの付け方で表示情報が変化)
  wgrib2 -v0 ifile.grb2
  wgrib2 -v  ifile.grb2
  wgrib2 -v2 ifile.grb2
(-v2 が最も verbose )

 バイナリ形式に変換

ダイレクトアクセスバイナリ形式(direct-access binary format)への変換. GrADSユーザにとって使い易い形式,と表現すれば,(気象学の関係者なら)わかる人も多いだろう.

big endian バイナリ形式に変換したいとき. オプション(-no_header & -ieee)の順序は入替え不可. -ieee オプション(IEEE形式,いわゆる big endian に相当?)は,直後の引数を出力ファイル名に使うため.

wgrib2 ifile.grb2 -no_header -ieee ofile.bin

little endian (Intel 系CPUで使用してるバイナリコード) バイナリ形式に変換したいとき. オプション(-no_header & -bin)の順序は入替え不可. -bin オプションは,直後の引数を出力ファイル名に使うため.

wgrib2 ifile.grb2 -no_header -bin ofile.bin

(例: 500 hPa面のジオポテンシャル高度のみ変換したいとき)
wgrib2 ifile.grb2 -match ":HGT:500 mb:" -no_header -bin ofile_z500.bin

 オプションの種類・意味を知りたい

コマンドラインにて引数無しで wgrib2 を実行.パイプを通してページャ less に渡す. 大学生くらいなら,表示されたものを見ればわかるでしょう. オプションは,種類によっては引数を伴うものがある. そこだけは注意.

wgrib2 | less

 wgrib2 メモ(早崎私家版)

以下は早崎による使用例とその解説. 個人的メモのテキストファイルHOW2USE-jp_wgrib2を HTMLに include して掲載.


  tricks.wgrib2 の簡易日本語訳

個人的メモのテキストファイルtricks.wgrib2-jpを HTMLに include して掲載.


  GRIB2 データへの GrADS による直接アクセス

g2ctl (perl script) と GrADS 付属の gribmap コマンドを使用.

JMA GPV data の場合

JMA GPVデータの情報は, JMA GPV メモ (hysk) も参照. See also 大気科学データ情報 > 現業気象データ.

私の場合は, g2ctl を /usr/local/bin/ 以下にコピー & chmod 755 して使用.

g2ctl  hogehoge.grib > hogehoge.ctl
gribmap -i hogehoge.ctl -0
  ※gribmap の最後のオプションは「ゼロ」です.0時間予報値(解析値)だけを使う場合.
  • Problems
  1. 格子間隔の異なるデータが混在していると, GrADS で正常表示されない? (JMA GSM データを使い,g2ctl & gribmap による ctl, idx ファイル作成した場合に確認)
  2. 時間降水量(1時間積算値)とそれ以外の気象要素が混在しているデータ (例: JMA MSM) を使って,gribmap を実行すると異常終了する (自分の使用方法に問題があるためかもしれない.詳細は後述)
    • ctl ファイルで options template を使い, 初期時刻ごとに分割された GRIB2 ファイルの idx を作成しようとして失敗
    • (以下は個人的推測.内部のコードを見たわけじゃないので, 間違っている可能性も十分ある.要注意) ある初期時刻(hour=00 とする) のデータファイルには, 毎正時の解析値・予報値と時間積算降水量が入っている. この時,ファイル内に含まれる時刻情報が2つ(hour=00 & hour=+01)存在する
    • ctl ファイル内の tdef の時間数を, 日数 x 24 で与えてしまうと,GRIB2 ファイルの時間数と一致 (ctl ファイルの指定が1時間不足)せず,データ不足とみなされて異常終了... といったところか?

NCEP FNL (GRIB2) の場合

JMA GPV と特に違いは無い(と思う). というより,現時点では違いを見つけられるほど私が使い込んでいない, というのが実状.

気象庁レーダーアメダス解析雨量

  • 気象業務支援センター販売のDVD,2006年以後のデータが GRIB-2 形式
  • g2ctl & gribmap を使った GrADS idx ファイル作成が出来ない. まだ原因究明してない
  • バイナリダンプはどうやら正常に出来ていそうなので, GRIB2 ファイルの直接アクセスは(とりあえず)断念. 見たい期間があれば,必要に応じてバイナリダンプする,という方法で当座は対応

NCEP CFSR

ごく一般的な GRIB2ファイル. 使用上の問題,特に無し. このデータに関する情報は, 長期再解析 # NCEP CFS 再解析, or CFS 再解析 メモ に記載.

上記以外の GRIB2 データ

今のところ(update 2016-02-28),上記以外で GRIB2 形式で配布しているデータセットを知らない. 他に存在するときには教えてください >> 皆様

wgrib2 サンプルスクリプト

 GRIB-2 から IEEE形式への変換

  • 対象スクリプト: grib2_to_bin(下に表示してるものと同一)
  • 私はこれを自分用バイナリ変換スクリプトとして,~/local/bin/ 以下に置いて使用.
  • 使い方: grib2_to_bin 入力ファイル 出力ファイル

実際の使用例として, 気温データを温位に変換, grdmath の POW & MUL operator も参照. GRIB-2形式データをGMTで使う例として,細かいけど結構有用なノウハウを使っている(つもり).

 JMA GPV (MSM) 再アーカイブ


 NCEP CFSR 6-hourly の再アーカイブ

CISL RDA ds093.0より取得した, NCEP CFSv1 6-hourly (ファイル名の例: pgbhnl.gdas.1979010100.grb2) を,月別・要素別のGRIB-2形式ファイルに再編集するスクリプト. 37-level & 6-hourly のデータを1ヶ月分,1ファイルにまとめている (ファイルサイズ: 300 - 800 MB; 要素によりサイズが大きく異なる).

  • 要素: HGT (ジオポテンシャル高度), UGRD (東西風), VGRD (南北風), TMP (気温), SPFH (比湿), VVEL (鉛直p速度), STRM (流線関数), VPOT (速度ポテンシャル).
  • period = 1979-01-01 to 2011-03-31. 2011-04-01 以後は,アーカイブファイルの命名規則が変更されているので, 入力ファイル名の代入部分を改変せねばならない.
  • script path: ~/NCEP/CFSR/util/re_archive_CFSR_var_month.sh
    • Input: ${prefix}.${yyyymmddhh}.grb2 (ex. pgbhnl.gdas.2009101500.grb2)
    • Output: ${data_src}_${var}_${yyyymm}.grb2 (ex. CFSR_HGT_200910.grb2)

wgrib2 & GRIB-2 関連リンク

更新履歴

Date Changes
2016-02-28 更新履歴の追加,CFS 関連の情報追加, リンク切れの修正など.
2010-01-20 初稿作成.