[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以外の出力形式への対応

  ● その他

  ユーザーも、その気になれば好みの形式で出力するプログラムが作れる
  筈ではある。