[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jmadata-users33] software to read GPV (and to convert into NetCDF)



jmadata-usersの皆様:

MSM及びRSMのデータ(in「国内2進形式」)を読むためのソフトを作り
ました。気象庁の豊田さんにアドバイスを頂きましたので、記して感謝
致します。

Rubyという言語で書かれたライブラリーとなっており、そのアプリケー
ションとして、ファイルの内容表示や NetCDF 形式への変換を行うコマ
ンドがあります。まだまだ改善すべき点は多くありますが、現状でも一
応使用に耐えると思いますので、公開します。(改善のためのパッチを
歓迎します。)

必要なソフトは、

  (1) Ruby 1.6.5 以降  (http://www.ruby-lang.org/ja/)
  (2) NetCDF 3  (http://www.unidata.ucar.edu/packages/netcdf/)
  (3) 本ソフトを含む幾つかのライブラリー
 
です。(1), (2) をまずインストールすれば、(3)は添付した seteup.rb
を適当な作業ディレクトリーで実行すればダウンロード&インストール
できます。(2)のNetCDFは大元の C 版だけがインストールできていれば
充分です。なお、(3) の中身は以下の通りです。最後の2つが今回作っ
たものです。

   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

setup.rb (テキストファイル, Rubyプログラム) は UNIX を前提にして
います。実行は、

% ruby setup.rb

とするか、

% chmod +x setup.rb
% setup.rb

です。

---
堀之内 武                    horinout@xxxxxx
京都大学宙空電波科学研究センター     611-0011 宇治市五ヶ庄
#!/usr/bin/env ruby

URL = { 
   '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'
}
TOP = {
   'NArray' => 'narray-0.5.6p2',
   'RubyNetCDF' => 'ruby-netcdf-0.3.5',
   'MultiBitNums' => 'multibitnums-0.1.1',
   'gpv' =>  'gpv-0.1.1'
}
REQUIRE = {
   'NArray' => 'narray',
   'RubyNetCDF' => 'numru/netcdf',
   'MultiBitNums' => 'numru/multibitnums',
   'gpv' => 'numru/gpv'
}
INSTALL = {
   'NArray' => "tar xvzf #{TOP['NArray']}.tar.gz && cd #{TOP['NArray']} && ruby extconf.rb && make  && make site-install",
   'RubyNetCDF' => "tar xvzf #{TOP['RubyNetCDF']}.tar.gz && cd #{TOP['RubyNetCDF']} && ruby extconf.rb && make && make site-install",
   'MultiBitNums' => "tar xvzf #{TOP['MultiBitNums']}.tar.gz && cd #{TOP['MultiBitNums']} && ruby extconf.rb && make && make site-install",
   'gpv' => "tar xvzf #{TOP['gpv']}.tar.gz && cd #{TOP['gpv']} && ruby install.rb"
}

URL.each_key do |soft|
   begin
      print "checking for #{soft}...\n"
      require REQUIRE[soft]
      print " --> found\n"
   rescue
      print " --> not found. ",
	  "Would you like to Download and install it? (y, n); \n"
      ans = gets()
      if ( ans =~ /^y/ )
	 print "downloading #{URL[soft]} with wget ...\n"
	 stat = system("wget #{URL[soft]}") 
	 raise 'Could not download ' + URL[soft] if (!stat)
	 print "installing #{soft}...\n",INSTALL[soft],"\n"
	 stat = system(INSTALL[soft])
	 raise 'Installation failed: ' + soft if (!stat)
      else
	 raise "You need to install it\n"
      end
   end
end