[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [jmadata-users33] software to read GPV (and to convert intoNetCDF)
堀之内@京大RASCです。
何度も申し訳ありません。使い方を書くのを忘れておりました。
> NArray http://www.ir.isas.ac.jp/~masa/ruby/dist/narray-0.5.6p2.tar.gz,
> RubyNetCDF http://ruby.gfd-dennou.org/products/ruby-netcdf/ruby-netcdf-0.3.5.tar.gz,
> MultiBitNums http://ruby.gfd-dennou.org/products/multibitnums/multibitnums-0.1.1.tar.gz,
> gpv http://ruby.gfd-dennou.org/products/gpv/gpv-0.1.1.tar.gz
この、一番最後の gpv を展開した中に入っている README.jp というファ
イルに書かれています。以下は、そこからのコピーです。
堀之内 武 horinout@xxxxxx
京都大学宙空電波科学研究センター 611-0011 宇治市五ヶ庄
====================================================================
GPVの「部外形式」データを読むプログラム
● インストール法
本ディレクトリー中の INSTALL ファイルを見よ
● 制限
今のところ「国内2進」形式にしか対応していない。
また、内容をテキストとして表示するか、NetCDFファイルへ変換するかの
どちらかである。将来的には、入力については grib、出力については GrADS
形式に対応したい。
● 実行例
--- NetCDFへの変換 (またはNetCDF経由での内容確認)
gpv2nc という名前のコマンドとしてインストールされるので、それを利用す
る。
ヘルプの表示:
% gpv2nc -h
表示内容は、以下のようになる。
Usage:
% /usr/local/bin/gpv2nc [-ihd] gpv_files.. [-o output_file]
-o output_file : output file name (if omitted, determined internally)
-h : help (to show this message)
-d : debug mode (does extra printing)
-i : shows info on the input file (does not dump a file, but creates
a temporarlly file -- if you do not have a write permission of the
current directory, specify one you have it by the envronmental
variable TMPDIR. Example: % export TMPDIR=/tmp).
NetCDF ファイルへの変換:
% gpv2nc MSM12SFC018_[12] -o msm12sfc18.nc
ファイルの中身の確認(NetCDF ファイルのヘッダー部分だけを一時的に
に作って表示する。):
% gpv2nc -i MSM12SFC018_[12]
もしも現在のディレクトリーに書き込み権限がない場合、以下などにより、
環境変数 TMPDIR に予めテンポラリーファイル用のディレクトリーを設定して
おく:
% export TMPDIR=/tmp
--- ファイルの内容を見る (ライブラリーのデバグ用出力がだらだらと表示
される)
% ruby -r /usr/local/lib/ruby/site_ruby/1.6/numru/gpv/bugaifile.rb \
-e NumRu::BugaiFile::debug MSM06PLM018_1
ここで、MSM06PLM018_1 は MSM の出力のファイル名の例。見たいものに応じ
て変更せよ(現在、対応しているのは、MSMとRSMである)。
もしも ruby が別のディレクトリーにインストールされている場合、第1行目
はそれに応じてかわる。例えば
% ruby -r /usr/lib/ruby/site_ruby/1.6/numru/gpv/bugaifile.rb \
-e NumRu::BugaiFile::debug MSM06PLM018_1
● パフォーマンスについて
「国内2進」フォーマットは数100バイトという小さな単位のセクションに細
かく分割した上で収納されている。そのため、どうしても実行効率改善に限度
がある。なお、ボトルネックとなる多ビット整数の読み込みと値のデコードは
C言語による拡張ライブラリー(MultiBitNums)としてある。
● 将来計画
優先度高:
- 出力される NetCDF ファイルの改良:
* 然るべきコンベンションへの準拠
* add_offset / scale_factor による圧縮への対応(=2バイト化)
* (あれば勿論バグ取り)
優先度中:
- grib への対応(=GSMへの対応)
優先度低:
- NetCDF以外の出力形式への対応
● その他
ユーザーも、その気になれば好みの形式で出力するプログラムが作れる
筈ではある。