#!/usr/bin/ruby # 使用するライブラリの読み込み. (以下 2 行は「決まり文句」.) require "numru/ggraph" include NumRu # NetCDF ファイルから2023年の東西風と南北風の変数を読み, GPhys オブジェクトに格納 gpu1 = GPhys::IO.open( "uwnd.2023.nc", "uwnd" ) gpv1 = GPhys::IO.open( "vwnd.2023.nc", "vwnd" ) # GPhys オブジェクト gpu1 (gpv1)内の変数 "uwnd"("vwnd") から7月のデータを切り出す (cut) gpu1 = gpu1.cut('time'=>DateTime.parse("2023/07/01 00:00:0.0")..DateTime.parse("2023-08-01 00:00:0.0")).mean('time') gpv1 = gpv1.cut('time'=>DateTime.parse("2023/07/01 00:00:0.0")..DateTime.parse("2023-08-01 00:00:0.0")).mean('time') #強い高度である200mbar(hPa)のデータを切り出す (cut) gpu1 = gpu1.cut('level'=>200) gpv1 = gpv1.cut('level'=>200) # NetCDF ファイルから1991-2020年の東西風と南北風の変数を読み, GPhys オブジェクトに格納 gpu2 = GPhys::IO.open( "uwnd.mon.ltm.1991-2020.nc", "uwnd" ) gpv2 = GPhys::IO.open( "vwnd.mon.ltm.1991-2020.nc", "vwnd" ) #強い高度である200mbar(hPa)のデータを切り出す (cut) gpu2 = gpu2.cut('level'=>200) gpv2 = gpv2.cut('level'=>200) #平均して気候値を出す gpu2=gpu2.mean('time') gpv2=gpv2.mean('time') #2023年の値と気候値の差を出す gpu=gpu1-gpu2 gpv=gpv1-gpv2 # 画面を開く (open) # 2 はファイルへの出力を表す DCL.gropn(2) # 描画画面を準備 # itr の10 は正距円筒図法 (いわゆる経度-緯度座標) を表す GGraph.set_fig( 'itr'=> 10 ) # 地図情報の指定. ここでは海岸線を描くように設定. GGraph.set_map( 'coast_world'=>true, 'grid'=>true ) # ベクトルを描画 # 第一引数は描画するベクトルの x 成分の GPhys オブジェクト # 第二引数は描画するベクトルの y 成分の GPhys オブジェクト # 第三引数の true は新しい図を表す GGraph.vector( gpu, gpv, true, "xintv"=>2, "yintv"=>2, "factor"=>2, "unit_vect"=>true, 'map_axes'=>true,'index'=>40 ) # 画面を閉じる (close) DCL.grcls