#!/usr/bin/env ruby # -*- coding: utf-8 -*- # # = 履歴 # * 2012/06/14 Satoshi NODA 作成 # # 以下 2 行は GPhys を使うためのおまじない require "numru/ggraph" include NumRu # 用いる NetCDF ファイル SRC = '0403.nc' # 温度の描画する値の設定 T_MIN = 230 T_MAX = 275 T_INT = 5 # ジオポテンシャル高度の描画する値の設定 Z_MIN = 5700 - 600 Z_MAX = 5700 + 360 Z_INT = 60 P = 500 # 切り出す気圧面 ### NetCDF ファイルからデータを読み込む temp = GPhys::IO.open(SRC, 'temp').cut('p'=>P) # P hPa 面の温度 z = GPhys::IO.open(SRC, 'z').cut('p'=>P) # P hPa 面のジオポテンシャル高度 time = GPhys::IO.open(SRC, 'time').val # 時間軸を取り出して NArray に変換 ### ウィンドウを開く DCL.gropn(4) ### 図の設定 # `_' などの文字を誤って制御文字として解釈しないためのおまじない DCL.sgpset('lcntl', false) GGraph.set_fig('viewport'=>[0.0,0.73,0.2,0.75]) # ウィンドウにおける描画範囲 GGraph.set_fig('itr'=>10) # 正距円筒図法 GGraph.set_map('coast_japan'=>true) # 日本付近の海岸線を表示 GGraph.set_axes('xtickint'=>5, 'xlabelint'=>10) # 横軸の目盛設定 GGraph.set_axes('ytickint'=>5, 'ylabelint'=>10) # 縦軸の目盛設定 ### メインループ time.each{|t| gp1 = temp.cut('time'=>t) # 時間 t の値だけ切り出す gp2 = z.cut('time'=>t) # 時間 t の値だけ切り出す # トーンを描く GGraph.tone( gp1, true, 'min'=>T_MIN, 'max'=>T_MAX, 'interval'=>T_INT ) # コンターを描く (第二引数の false は重ね書きを意味する) GGraph.contour( gp2, false, 'min'=>Z_MIN, 'max'=>Z_MAX, 'interval'=>Z_INT ) # トーンのカラーバーを描画 GGraph.color_bar } # ウィンドウを閉じる DCL.grcls