(Tips) 座標軸の値・単位・名前を変更する
作成者:加藤 亮平
概要
GPhys の GGraph を使って描画する際, 座標軸の値・単位・名前を変更する方法を記します. 例えば, 以下のようなことができます.
- (例1)単位が m で定義されている z 座標の値を km に変換して図示する
- (例2)座標軸の単位・名前を陽に変更する
ダウンロード
- "U.nc"(4.5KB): 変数名 U の y, z 2次元のデータが入っている
- "axis_sample_default.rb": デフォルトの描画
- "axis_sample_value.rb":座標軸の値のみ変更
- "axis_sample_value_name_unit.rb":座表軸の値・名前・単位を変更
- "axis_sample_convert_units.rb":座表軸の値・単位を変更
(例1)単位が m で定義されている z 座標の値を km に変換して図示する
まず, "axis_sample_default.rb"
require "numru/ggraph" include NumRu var = GPhys::IO.open('U.nc', 'U') DCL.gropn(4) GGraph.tone_and_contour( var ) DCL.grcls
を
$ ruby axis_sample_default.rb
により, そのまま描くと
となる. この場合, z軸の単位が (×10^5 m) のように "m" での表示になり, 何 "km" か分かりにくい. そこで, 座標軸 "z" を 1000 で割り, "km" 単位の座標軸を新たに定義することを試みる. そのためには, 上記プログラムの "DCL.gropn(4)" の前に以下の2行を付け加えればよい.
z1 = var.axis("z").pos * 1e-3 var.axis("z").set_pos(z1)
$ ruby axis_sample_value.rb
これにより, z軸の値が km の単位に変換された. しかし, このままでは, 単位記号 (m) のままである. そこで, 次に単位記号や軸の名前を陽に変更する方法する方法を記す.
(例2)座標軸の単位・名前を陽に変更する
long_name や units メソッドを使うことで, 軸の名前や単位も陽に変更することができる.
z1.long_name = "altitude" z1.units = Units["km"] var.axis("z").set_pos(z1)
"axis_sample_value_name_unit.rb"
$ ruby axis_sample_value_name_unit.rb
z軸の名前が Z-cordinate から altitude に, 単位記号が (m) から (km) に変更された.
(例1)の別の方法
座標軸の単位を変える."z"軸の単位が m だとして,
z1 = var.axis("z").pos.convert_units( Units["km"] ) var.axis("z").set_pos(z1)
とすると, 値が 1/1000 になり,単位も m から km に更新される.
"axis_sample_convert_units.rb"
$ ruby axis_sample_convert_units.rb
つまり,
z1 = var.axis("z").pos.convert_units( Units["km"] )
は
z1 = var.axis("z").pos * 1e-3 z1.units = Units["km"]
2行分と同じ意味である.
参照
- 新たなデータ処理を実装するの「陽に座標更新を必要とする場合」の部分
- z 座標を対数圧力座標に変換する例が書いてある
- class NumRu::Axis
謝辞
本 Tips の大部分は 堀之内 武 さんの助言によるものです. ありがとうございました.
キーワード:[座標軸]
参照: