4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windowsにwgrib2とgrib2jsonを入れる。

Posted at

#注意
この記事は、2年ほど前にQiitaに投稿した記事の再投稿になります。
若干内容が古くなっている可能性があります。


インストールをして、簡単な動作確認をしてみます。
踏み込んだ内容はありませんので、あくまで初心者の方用の記事です。

wgrib2 インストール

インストールは こちら

いっぱいファイルがあって何を落とせばいいかわからない方は、最初にwgrib2.exeだけを落としてください。
wgrib2.exeだけで実行すれば、実行に必要な(不足している)ファイルがダイアログで出力されるので、それらを同じディレクトリに入れて、パスを通せばOKです。

wgrib2 動かしてみる

今回は、NOMADSから風速データを落としてきます。
GDAS 0.25(grib filter) => gdas.2018xx と進みます。

今回は取り合えず**地上10m地点のU方向, V方向の風**を取得します。
ですので、チェックボックスは以下をチェック。
- 10m above ground
- UGRD
- VGRD

そして、落としたファイルをwgrib2で見てみます。
Shellで下記を実行。


$ wgrib2 [ファイル名]
1:0:d=2018041200:UGRD:10 m above ground:anl:
2:778510:d=2018041200:VGRD:10 m above ground:anl:

出力の内容はつまり、
1:地上10mでU方向のデータ
2:地上10mでV方向のデータ
ということです。うまく取れてるようです。

ちなみに、Optionで*-V*を指定すると、


$ wgrib2 -V [ファイル名]
1:0:vt=2018041200:10 m above ground:anl:UGRD U-Component of Wind [m/s]:
ndata=1038240:undef=0:mean=-0.0738295:min=-19.6813:max=28.6987
grid_template=0:winds(N/S):
  lat-lon grid:(1440 x 721) units 1e-06 input WE:NS output WE:SN res 48
  lat 90.000000 to -90.000000 by 0.250000
  lon 0.000000 to 359.750000 by 0.250000 #points=1038240

2:778510:vt=2018041200:10 m above ground:anl:VGRD V-Component of Wind [m/s]:
ndata=1038240:undef=0:mean=0.173403:min=-26.8313:max=23.2687
grid_template=0:winds(N/S):
  lat-lon grid:(1440 x 721) units 1e-06 input WE:NS output WE:SN res 48
  lat 90.000000 to -90.000000 by 0.250000
  lon 0.000000 to 359.750000 by 0.250000 #points=1038240

と、データの詳細な情報が見れます。

更に、-dオプションをつけて、抜き出すデータの番号を指定すると、


$ wgrib2 -d 1 [ファイル名]
1:0:d=2018041200:UGRD:10 m above ground:anl:

このように、指定された番号に対応するデータのみ取り出せます。
なので、例えばU方向のデータだけ取り出して別のファイルに保存したければ、


$ wgrib2 -d 1 [ファイル名] -order we:ns -ieee u.dat(好きな名前でいいです)

とすればOKです。

grib2json インストール

grib2json インストール

このリポジトリをローカルにもってきます。


$ git clone https://github.com/weacast/weacast-grib2json.git

として、srcにあるファイルだけどこか別のディレクトリに保存すればOKです。

ちなみに、そのままだと
Error: Unable to access jarfile だとか、何かしらエラーが出てしまいます。
ですので、私は grib2json.cmd を


  @echo off
  "java" -Xmx512M -jar "%~dp0grib2json.jar" %*

と書き換えたらうまいこと動きました。

grib2json 動かしてみる

先ほど落とした風のファイルを、json形式で出力してみます。


$ grib2json [ファイル名]
[
  {
  "header":{
    "discipline":0,
    "gribEdition":2,
    "gribLength":778510,
    "center":7,
    "subcenter":0,
    "refTime":"2018-04-12T00:00:00.000Z",
    "significanceOfRT":1,
    "productStatus":0,
    "productType":1,
    "productDefinitionTemplate":0,
    "parameterCategory":2,
    "parameterNumber":2,
    "parameterUnit":"m.s-1",
    "genProcessType":2,
    "forecastTime":0,
    "surface1Type":103,
    "surface1Value":10.0,
    "surface2Type":255,
    "surface2Value":0.0,
    "gridDefinitionTemplate":0,
    "numberPoints":1038240,
    "shape":6,
    "gridUnits":"degrees",
    "resolution":48,
    "winds":"true",
    "scanMode":0,
    "nx":1440,
    "ny":721,
    "basicAngle":0,
    "lo1":0.0,
    "la1":90.0,
    "lo2":359.75003,
    "la2":-90.0,
    "dx":0.25,
    "dy":0.25
  }
},
{
  "header":{
    "discipline":0,
    "gribEdition":2,
    "gribLength":748505,
    "center":7,
    "subcenter":0,
    "refTime":"2018-04-12T00:00:00.000Z",
    "significanceOfRT":1,
    "productStatus":0,
    "productType":1,
    "productDefinitionTemplate":0,
    "parameterCategory":2,
    "parameterNumber":3,
    "parameterUnit":"m.s-1",
    "genProcessType":2,
    "forecastTime":0,
    "surface1Type":103,
    "surface1Value":10.0,
    "surface2Type":255,
    "surface2Value":0.0,
    "gridDefinitionTemplate":0,
    "numberPoints":1038240,
    "shape":6,
    "gridUnits":"degrees",
    "resolution":48,
    "winds":"true",
    "scanMode":0,
    "nx":1440,
    "ny":721,
    "basicAngle":0,
    "lo1":0.0,
    "la1":90.0,
    "lo2":359.75003,
    "la2":-90.0,
    "dx":0.25,
    "dy":0.25
    }
  }
]

1, 2それぞれが別の連想配列になっています。
ではさらに、風速データのみをJSON形式で保存してみます。


$ grib2json --names --data -o file.json(好きなファイル名) [ファイル名]

すると、-oオプションの次に与えた任意のファイル名で、JSON形式のファイルが保存されます。

こうすると、何かと扱い易くて便利です。
(ちなみに、leaflet.jsのvelocityプラグインがなかなか楽しいので、是非grib2jsonを使って実行してみてください)

最後に

つい最近使うことになった上記二つのツールですが、便利なのに案外初心者向けの記事がなくて困ってしまいました。
ですので、この記事が少しでも次のプログラマーを目指す方の一助になればいいな、と思っています。

また、私自身ペーペーなので、訂正すべき個所があればコメントをお願いいたします。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?