やや古い感じはするがよくまとまっている。
http://www.ominous-valve.com/wx_codes.txt
2014-07-31
2014-07-28
配信資料に関する技術情報第399号「海水温・海流予報格子点資料の提供について」の訂正
気象振興協議会HPトップページ http://www.w-shinkou.org/ によりますと、技
術情報第399号の訂正が28日づけで 出ているそうです。
気象庁HPのファイル
http://www.data.jma.go.jp/add/suishin/jyouhou/pdf/399.pdf はわかりにくいですが差し替わったものになっています。配信開始が8月7日に迫っていますので、ここ数日にお持ちになった方はご注意ください。
訂正点は、8ページの表※4、塩分の GRIB2 パラメータ番号が 3 であったところが 192
になるというもののはずです。単位は PSU でかわりありません。
WMO 標準 FM92 GRIB のパラメータ番号 10-4-3 は単位 kg/kg ですが、海洋モデ
ルでは塩分濃度を PSU 単位で予報しています。
PSU という単位も公式ではないらしいのですが、このへんをごらんください。
http://en.wikipedia.org/wiki/Salinity#Seawater
質量比ではないことくらいはわかります。
Ruby 1.8/1.9 移植:ファイルの文字コードは面倒だがバイナリファイルならとりあえず話は簡単
めんどくさいですねー移植は。
Ruby 1.9 から String に文字コードが属性としてもたれるようになりました。
それは、まあ、いいことなのでしょうが、文字コードとして正しくないバイト列
を String にしようとすると例外が飛びます。
入出力というか、 IO#read は、まさしくバイト列から String を作る処理なの
で、悪いバイト列を読むとアプリが爆死します。
もちろん例外を rescue で受け止めればいいのですが、受け止めて見たところで
バイト列は失われていて分析も復旧もできません。
どうしろというのでしょう。
答は、たぶん、文字コード ASCII-8BIT としてファイルを開くことなのです。い
や、ぼくはバイナリがみたいんだから。
やりかたですが、File オブジェクトが遠くから渡ってくるならば、 IO#binmode
指令を打ち込むというのが手です。
STDIN はそうするしかないと思います。
もういっこ、簡単で、Ruby 1.8 コンパチブルな方法は、 b オプションつまり
File.open(filename, "rb") で開くことです。
もともと、そうすべきだったんです。
改行コードのことはあきらめましょう。もう、 CR 改行のファイルはないはずです。
Ruby 1.9 から String に文字コードが属性としてもたれるようになりました。
それは、まあ、いいことなのでしょうが、文字コードとして正しくないバイト列
を String にしようとすると例外が飛びます。
入出力というか、 IO#read は、まさしくバイト列から String を作る処理なの
で、悪いバイト列を読むとアプリが爆死します。
もちろん例外を rescue で受け止めればいいのですが、受け止めて見たところで
バイト列は失われていて分析も復旧もできません。
どうしろというのでしょう。
答は、たぶん、文字コード ASCII-8BIT としてファイルを開くことなのです。い
や、ぼくはバイナリがみたいんだから。
やりかたですが、File オブジェクトが遠くから渡ってくるならば、 IO#binmode
指令を打ち込むというのが手です。
STDIN はそうするしかないと思います。
もういっこ、簡単で、Ruby 1.8 コンパチブルな方法は、 b オプションつまり
File.open(filename, "rb") で開くことです。
もともと、そうすべきだったんです。
改行コードのことはあきらめましょう。もう、 CR 改行のファイルはないはずです。
2014-07-24
XMLを吐くBUFRデコーダ
前回BUFRデコーダについて調査・紹介したが、XMLに変換しようと考えているのだ。
新しいBUFRデータの評価をする仕事がいっぱいあるんだけど、XMLのバリデーションとか使えないかなと思うわけ。
libecbufr をつかって作ろうかとおもったのだけど、その前に車輪の再発明度の調査。
(車輪の再発明は嫌いじゃないというか、むしろ好きなんだが、人生は短すぎるので)
= python-bufr - Google code
https://code.google.com/p/python-bufr/
Pythonによる実装か、しかもGPLと色めき立ったが、事もあろうにECMWFのFortranデコーダのラッパーだというので萎えた。あと、XMLで検索されたのは、XMLRPCだけみたいだ。何がしたいかはわからない。
= Steve Sullivan の wmobufr
http://www.unidata.ucar.edu/mailing_lists/archives/bufrtables/2010/msg00000.html
これはずばりやりたいことをやりそう。
BSDライセンスも、まあ、いいでしょう。
ただ、Javaなんだよね。うーん。
新しいBUFRデータの評価をする仕事がいっぱいあるんだけど、XMLのバリデーションとか使えないかなと思うわけ。
libecbufr をつかって作ろうかとおもったのだけど、その前に車輪の再発明度の調査。
(車輪の再発明は嫌いじゃないというか、むしろ好きなんだが、人生は短すぎるので)
= python-bufr - Google code
https://code.google.com/p/python-bufr/
Pythonによる実装か、しかもGPLと色めき立ったが、事もあろうにECMWFのFortranデコーダのラッパーだというので萎えた。あと、XMLで検索されたのは、XMLRPCだけみたいだ。何がしたいかはわからない。
= Steve Sullivan の wmobufr
http://www.unidata.ucar.edu/mailing_lists/archives/bufrtables/2010/msg00000.html
これはずばりやりたいことをやりそう。
BSDライセンスも、まあ、いいでしょう。
ただ、Javaなんだよね。うーん。
2014-07-18
オープンソースの BUFR デコーダ
ちょっと調べてみるですよ。
= John Caron のページ
http://www.unidata.ucar.edu/staff/caron/bufr/
いろんな情報源をよくまとめています。
== NCEP BUFRLIB
http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/
tar ファイルを開くとカレントディレクトリにボロボロっと *.c *.f *.F ファイルが出てきます。 preproc.sh
というのを呼ぶとエンディアン判定をして *.F をどうにかしてくれます。あとは、Makefile はないので、
$ f77 -c *.f
$ cc -c *.c
と豪快にいって欲しいらしいです。ただし、アンダースコア関係をホゲるひつようがあります。
いや、まあ、そうまでして Fortran ですからね。ウェブのドキュメントは充実してるんですけどね。またね。
== ECMWF BUFRDC
http://www.ecmwf.int/products/data/software/bufr.html
これも Fortran です。数年前の経験ではいちおう Makefile があって、色々ホゲる必要がありましたが、まあまあさくりと通ったような気がします。
が、install スクリプトの出来が微妙で、定数データがビルドディレクトリを参照し続けてしまうんだったような... 使い方が悪いだけかもしれませんが。
それで Fortran ですからねえ。
== Canadian libECBUFR
https://launchpad.net/libecbufr
ソフトウェアの綺麗さでは定評のあるカナダ気象局です。
なんか launchpad で LGPL なので、よさそうなんですが、 Debian のバイナリパッケージしかないんですよね。なんか bzr
とかいうのでソースを落としてこないといけないんですが、それはどうしたらいいんでしょう。
= 他
SF.net に bufr-info というのがあります
http://sourceforge.net/projects/bufr-info/
これは L じゃない GPL2 ですが、 C++ なのはちょっと私にはついていけないです。
ギリシャ気象局が作っているようです。
= John Caron のページ
http://www.unidata.ucar.edu/staff/caron/bufr/
いろんな情報源をよくまとめています。
== NCEP BUFRLIB
http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/
tar ファイルを開くとカレントディレクトリにボロボロっと *.c *.f *.F ファイルが出てきます。 preproc.sh
というのを呼ぶとエンディアン判定をして *.F をどうにかしてくれます。あとは、Makefile はないので、
$ f77 -c *.f
$ cc -c *.c
と豪快にいって欲しいらしいです。ただし、アンダースコア関係をホゲるひつようがあります。
いや、まあ、そうまでして Fortran ですからね。ウェブのドキュメントは充実してるんですけどね。またね。
== ECMWF BUFRDC
http://www.ecmwf.int/products/data/software/bufr.html
これも Fortran です。数年前の経験ではいちおう Makefile があって、色々ホゲる必要がありましたが、まあまあさくりと通ったような気がします。
が、install スクリプトの出来が微妙で、定数データがビルドディレクトリを参照し続けてしまうんだったような... 使い方が悪いだけかもしれませんが。
それで Fortran ですからねえ。
== Canadian libECBUFR
https://launchpad.net/libecbufr
ソフトウェアの綺麗さでは定評のあるカナダ気象局です。
なんか launchpad で LGPL なので、よさそうなんですが、 Debian のバイナリパッケージしかないんですよね。なんか bzr
とかいうのでソースを落としてこないといけないんですが、それはどうしたらいいんでしょう。
= 他
SF.net に bufr-info というのがあります
http://sourceforge.net/projects/bufr-info/
これは L じゃない GPL2 ですが、 C++ なのはちょっと私にはついていけないです。
ギリシャ気象局が作っているようです。
登録:
投稿 (Atom)