#!/usr/bin/ruby
# 使用するライブラリの読み込み. (以下 2 行は「決まり文句」.)
require "numru/ggraph"
include NumRu

# NetCDF ファイル "air.2019.nc" から変数 "air" を読み, GPhys オブジェクト gp に
# 格納
gp = GPhys::IO.open( "air.2019.nc", "air" )

# 画面を開く (open)
#   引数の 1 は画面への描画を表す
#          2 はファイルへの出力を表す
#            (デフォルトでは出力は pdf 形式でファイル名は dcl.pdf)
DCL.gropn(2)

# 描画に関わる各種の指定
DCL.sgpset('lfull',true) # 描画範囲を最大に設定 (ウィンドウのギリギリまで使用)
DCL.uzfact(0.6)          # フォントサイズ (元の値に対する比率)
DCL.sgpset('lclip',true) # 軸範囲を超えた領域を描画しない
DCL.glpset('lmiss',true) # 欠損値処理
GGraph.set_axes('xlabelint'=>30) # x 軸にラベルを書く間隔
GGraph.set_axes('ylabelint'=>30) # 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.9,0.2,0.55], 'window'=>[0,360,-90,90] )

# 地図情報の指定. ここでは海岸線を描くように設定.
GGraph.set_map( 'coast_world'=>true, 'grid'=>true )

# トーン (色付け) で描画
#   第一引数は描画するデータの GPhys オブジェクト
#   第二引数の true は新しい図であることの指定
#   以下の指定の順番は問わない
#   annotate は図の右上に書かれる情報の表示の有無の指定
#   map_axes は正距円筒図法において軸のラベルを書くかどうかの指定
#   nlev は使用するトーン (色分け) の数の指定
GGraph.tone( gp, true, 'annotate'=>false, 'map_axes'=>true, 'nlev'=>30 )
# カラーバーを描画
GGraph.color_bar

# 画面を閉じる (close)
DCL.grcls
