*目次 [#z5db9d18]
#contents

*JGRIBとは [#t033ce5e]
JGribは GRIBファイルを読んでデコードするjavaライブラリです。

このライブラリはいくつかのパラメータの表に対応しています。

このプロジェクトはsourceforgeに格納されてます。

このライブラリを作った人は Benjamin StarkさんとUniversität Osnabrückさんです。

*URL [#x55bdb8e]
http://jgrib.sourceforge.net/

group_id=49460

*インストール [#xd5b9463]

-ダウンロードします。
-zipを解凍します。
-jgrib.jarをlibフォルダに格納します。
-Log4Jをクラスパスに入れます


**ダウンロード [#vd50987d]
http://sourceforge.net/projects/jgrib/

*使い方 [#g3e7aba1]

おもな使い方は、GribFileクラスを使って GRIBのデータにアクセスする使い方です。

GRIBを開いたとき, ファイルの内容を部分的にデコードします。その部分はIS, GDS, PDS セクションです。 そしてまだデコードしていない残りのデータは、このクラスを使ってまとめられます。

このクラスは、ファイルの内容を問い合わせることができ、そして、GribRecord クラスを使って、ファイルの内容を取得できます。

このクラスを使って取得できるのは gridCoords, type, time, unit そして level です。

サンプルのコードはexamplesフォルダの jgrib_src.jar ファイルに入っています。

このライブラリはいくつかのgrib表を扱います。


**サンプルコード [#r68c4c6f]
 try {
   GribFile grb = new GribFile("path/to/file.grb");
 } catch (FileNotFoundException noFileError) {
   System.err.println("FileNotFoundException : " + noFileError);
 } catch (IOException ioError) {
   System.err.println("IOException : " + ioError);
 } catch (NoValidGribException noGrib) {
   System.err.println("NoValidGribException : " + noGrib);
 } catch (NotSupportedException noSupport) {
   System.err.println("NotSupportedException : " + noSupport);
 }


jgrib_src.jarをjgrib_src.zipに名前を変えて解凍して、中にあるサンプルコードを見てみます。

***JgribDemo.java [#m36030fe]

コマンドラインからgribファイルを指定して内容をダンプするサンプル

***JgribDemoAFWA.java [#b510795b]
AFWAが提供しているgribファイルの各要素にアクセスするサンプル

***SetupLog.java [#d46aa67e]
Log4Jの設定方法のサンプル

***UserSuppliedGribTable.java [#k3fdd802]
GribTabPathを設定するサンプル

*Log4Jを使ったデバック [#rf407db5]

JGRIB は Log4J をつかってデバックします。

なので、インストールするときにLog4Jをクラスパスに入れておく必要があったのです。

もし  Log4J の設定ができないならば、JGRIB はそっとログを出さないようになります。

JGRIB が、内部で使用するのは Level.DEBUG です。

なので、もしデバックを入れないならば、何もメッセージを得ることができません。



*プロジェクション [#maec7c74]

このライブラリはGRIB標準で定義された、いろいろなプロジェクションをサポートしますが、限界があります。なぜかというと、仕様変更が勝手に行われないとは言い切れないからです。

いまのところ、下記をサポートしています。
-緯度/経度
-回転緯度/経度
-ランベルト
-ポーラーSterographic


GribRecordGDSオブジェクトはGribGDSFactoryを使用してインスタンスを生成します。


*GRIBTAB tables: [#o557a8ac]

JGRIB は wgribの作者で有名な Wesley 戎崎さん が作った、標準に従っています。

**例外 [#z011188f]
1つのテーブルだけなんですが、wgribみたいに、いくつかの表は下記のものを含んでいます。

-ncep_reanal_2 (centre 7, table 2) - DEFAULT
-ncep_reanal_1,3 (centre 7, table 1)
-emcwf_3 (centre 81, table 3)

*GRIBTABテーブルの拡張方法 [#o79ba0cf]
JAVAのシステムプロパティー"GribTabURL"を指定することで拡張できます。

**サンプルコード [#v7f45220]
 // Set gribtab property to JGRIB library
 File gribTab = new File("gribTabPath");
 System.setProperty("GribTabURL",gribTab.toURL().toString());
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS