#!/usr/bin/ruby # 1行目はinterpreterの指定(shebang) # ライブラリの読み込み require "numru/ggraph" include NumRu # NetCDFファイル"air.2016.nc"から変数"air"を読み、GPhysオブジェクトtmpに格納 tmp = GPhys::IO.open( "air.2016.nc", "air" ) # 等圧面を500hPaに指定 tmp = tmp.cut('level'=>500) # png 形式で書き出す DCL.swpset("ifl",1) DCL.gropn(2) # カラーマップを指定 DCL.sgscmn(3) # 描画画面を準備 (itr の 32 は正距方位図法) # viewportで描画範囲を指定 GGraph.set_fig( 'itr'=> 32, 'viewport'=>[0.15,0.75,0.15,0.85] ) # 海岸線とグリッドを描画 GGraph.set_map( 'coast_world'=>true, 'grid'=>true ) # レベルの指定 levels = [220,230,240,250,260,270] # レベル毎の色の指定 patterns = [63999,72999,81999,90999,99999] # 描画開始時刻を変数に格納 time_label = DateTime.parse("2016-01-15 00:00:0.0") # iが1から52まで繰り返す for i in 1..52 # トーンで描画 # 第一引数で描画するGphysオブジェクトを指定 # 新規に描画するため第二引数はtrueとする # annotate を true に設定して図の右上に情報を書く # map_axes を true に設定して軸のラベルを書く # lev, pat で 上記で指定した levels, patternsをレベルと色に設定 GGraph.tone_and_contour( tmp.cut('time'=>time_label), true, 'annotate'=>false, 'map_axes'=>true, 'lev'=>levels, 'pat'=>patterns ) # カラーバーを描画 GGraph.color_bar time_display = time_label.to_s # time_display に time_labelの文字型への変換を代入 date = time_display.slice(0,10) # time_display から 日付を取り出す time_utc = time_display.slice(11,8) + " (UTC)" # time_display から 時刻を取り出す DCL::sgstxs(0.02) # テキストのサイズ DCL::sgstxi(1) # ラインタイプ DCL::sgtxv(0.84, 0.8, 'level = 500 hPa') # 気圧の表示 DCL::sgtxv(0.817, 0.77, date ) # 日付の表示 DCL::sgtxv(0.829, 0.74, time_utc ) # 時刻の表示 DCL::sgtxv(0.79, 0.5, '[K]') # 温度の単位の表示 # 進捗状況を表示する print i, "page/52pages", "\n" # 時刻を6時間 ( = 0.25日) 進める time_label = time_label + 0.25 end # 画面を閉じる DCL.grcls