#!/usr/bin/ruby
# 1陦檎岼縺ッinterpreter縺ョ謖�ョ�(shebang)

# 繝ゥ繧、繝悶Λ繝ェ縺ョ隱ュ縺ソ霎シ縺ソ
require "numru/ggraph"
include NumRu

# NetCDF繝輔ぃ繧、繝ォ"air.2016.nc"縺九i螟画焚"air"繧定ェュ縺ソ縲;Phys繧ェ繝悶ず繧ァ繧ッ繝�tmp縺ォ譬シ邏�
tmp = GPhys::IO.open( "air.2016.nc", "air" )

# 遲牙悸髱「繧�500hPa縺ォ謖�ョ�
tmp = tmp.cut('level'=>500)

# png 蠖「蠑上〒譖ク縺榊�縺�
DCL.swpset("ifl",1)
DCL.gropn(2)

# 繧ォ繝ゥ繝シ繝槭ャ繝励r謖�ョ�
DCL.sgscmn(3) 

# 謠冗判逕サ髱「繧呈コ門y (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縺九i52縺セ縺ァ郢ー繧願ソ斐☆
 for i in 1..52

   # 繝医�繝ウ縺ァ謠冗判
   # 隨ャ荳€蠑墓焚縺ァ謠冗判縺吶kGphys繧ェ繝悶ず繧ァ繧ッ繝医r謖�ョ�
   # 譁ー隕上↓謠冗判縺吶k縺溘a隨ャ莠悟シ墓焚縺ッtrue縺ィ縺吶k
   # 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 縺九i 譌・莉倥r蜿悶j蜃コ縺�
   time_utc = time_display.slice(11,8) + " (UTC)" # time_display 縺九i 譎ょ綾繧貞叙繧雁�縺�

   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]') # 貂ゥ蠎ヲ縺ョ蜊倅ス阪�陦ィ遉コ

   # 騾イ謐礼憾豕√r陦ィ遉コ縺吶k
   print i, "page/52pages", "\n"

   # 譎ょ綾繧抵シ匁凾髢� ( = 0.25譌・) 騾イ繧√k
   time_label = time_label + 0.25
   
end

# 逕サ髱「繧帝哩縺倥k
DCL.grcls