- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#z5db9d18]
#contents
*JGRIBとは [#t033ce5e]
JGribは GRIBファイルを読んでデコードするjavaライブラリです。
このライブラリはいくつかのパラメータの表に対応しています。
このプロジェクトはsourceforgeに格納されてます。
このライブラリを作った人は Benjamin StarkさんとUniversität Osnabrückさんです。
*URL [#x55bdb8e]
http://jgrib.sourceforge.net/
group_id=49460
*ダウンロード [#vd50987d]
*インストール [#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());