#x/usr/bin/ruby # 使用するライブラリの読み込み. (以下 2 行は「決まり文句」.) require "numru/ggraph" include NumRu # NetCDF ファイル "rhum.1970.nc" から変数 "rhum" を読み, GPhys オブジェクト gp に格納 gp = GPhys::IO.open( "rhum.1970.nc", "rhum" ) # 画面を開く (open) # 引数の 1 は画面への描画を表す # 2 はファイルへの出力を表す # (デフォルトでは出力は pdf 形式でファイル名は dcl.pdf) # swpsetで出力をpngファイルに設定 #DCL.swpset("ifl",1) DCL.gropn(1) # 描画に関わる各種の指定 DCL.sgpset('lfull',true) # 描画範囲を最大に設定 (ウィンドウのギリギリまで使用) DCL.uzfact(0.6) # フォントサイズ (元の値に対する比率) DCL.sgpset('lclip',true) # 軸範囲を超えた領域を描画しない DCL.glpset('lmiss',true) # 欠損値処理 GGraph.set_axes('xlabelint'=>5) # x 軸にラベルを書く間隔 GGraph.set_axes('ylabelint'=>5) # y 軸にラベルを書く間隔 # 描画画面を準備 # itr の 1 は横軸, 縦軸ともに線形を表す # 2 は横軸が線形軸, 縦軸が対数軸を表す # 3 は横軸が対数軸, 縦軸が線形軸を表す # 4 は横軸, 縦軸ともに対数軸を表す # 10 は正距円筒図法 (いわゆる経度-緯度座標) を表す # viewport は描画可能範囲の中での図の描画範囲を表す # (四隅 [x1,x2,y1,y2] の全体に対する比率) # window は描画する軸の範囲を表す (四隅 [x1,x2,y1,y2] の値) GGraph.set_fig( 'itr'=> 10, 'viewport'=>[0.1,0.8,0.2,0.55], 'window'=>[128,150,28,50] ) # 地図情報の指定. ここでは海岸線を描くように設定. GGraph.set_map( 'coast_world'=>true, 'grid'=>true ) # forを使うことで1970年7月4日~7月10日の日平均の分布を描画 for i in 4..10 time_label = "1970-07-" + i.to_s + " " + "00:00:0.0" # トーン (色付け) で描画 # 第一引数は描画するデータの GPhys オブジェクト # 第二引数のtrueは新しい図、false は新しい図ではないことの指定 # 以下の指定の順番は問わない # annotate は図の右上に書かれる情報の表示の有無の指定 # map_axes は正距円筒図法において軸のラベルを書くかどうかの指定 # nlev は使用するトーン (色分け) の数の指定 # contour で等値線の描画 # intervalは等値線の間隔 # color_bar でカラーバーを描画 # tickintv はカラーバーの区切りを指定する。この場合区切りはなし。 GGraph.tone( gp.cut('time'=>DateTime.parse(time_label)), true, 'annotate'=>true, 'map_axes'=>true, 'nlev'=>100, 'min'=>38, 'max'=>110, 'clr_max'=>99 ) #GGraph.contour( gp, false, 'annotate'=>true, 'map_axes'=>true, 'interval'=>20, 'help'=>false ) GGraph.color_bar( 'tickintv'=>0 ) end # 画面を閉じる (close) DCL.grcls