#!/usr/bin/ruby # 1行目はinterpreterの指定(shebang) # ライブラリの読み込み require "numru/ggraph" include NumRu # NetCDFファイル"uwnd.mon.mean.nc"から変数"uwnd"を読み、GPhysオブジェクトuに格納 u = GPhys::IO.open( "uwnd.mon.mean.nc", "uwnd" ) # 緯度を指定 u = u.cut('lat'=>0) # 東西平均を取る u = u.mean('lon') # 期間を指定 u = u.cut('time'=>DateTime.parse("2008-01-01 00:00:0.0")..DateTime.parse("2023-01-01 00:00:0.0")) # levelの範囲を指定 u = u.cut('level'=>10..80) # pdf形式で出力 DCL.gropn(2) DCL.sgpset('lfull',true) # 描画範囲を最大に設定 (ウィンドウのギリギリまで使用) DCL.uzfact(0.6) # フォントサイズ (元の値に対する比率) # カラーマップを指定 DCL.sgscmn(76) # 縦軸の単位の表示をhPaに変更 GGraph.set_axes('yunits'=>'hPa') # 描画画面を準備 (itr が 2で片対数プロット) # viewport で図の描画範囲を指定 GGraph.set_fig( 'itr'=> 2, 'viewport'=>[0.15,0.8,0.2,0.55] ) # レベルの指定 levels = [-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40] # レベル毎の色の指定 patterns = [26999,25999,24999,23999,22999,21999,20999,19999,10999,11999,12999,13999,14999,15999,16999,17999] # トーンで描画 # 第一引数で描画するGphysオブジェクトを指定 # 新規に描画するため第二引数はtrueとする # exchange で 横軸と縦軸を入れ替える # lev, pat で 上記で指定した levels, patternsをレベルと色に設定 GGraph.tone( u, true, "exchange"=>true,'lev'=>levels, 'pat'=>patterns ) # 等値線を描画 # 既存の図に上書きするため第二引数はfalseとする # exchange で 横軸と縦軸を入れ替える GGraph.contour( u, false, "exchange"=>true ) # カラーバーを描画 GGraph.color_bar # 画面を閉じる DCL.grcls