Gphysライブラリマニュアル日本語版(非公式) - module NumRu::DCLExt
利便性向上のためにDCL関数の様々に組み合わせた関数を集めたものです。まだ早計ですが、このモジュールは分離される予定です。今は一時的にggraph.rbに含まれています。

モジュール関数

glpack

gl_set_params(hash)

DCL.glpsetを(hashのそれぞれのキーと値に対して)複数回実行する。
引数
  • hash (Hash) : udpsetのためのパラメータ名と値の組み合わせ
返り値
  • パラメータ名とそれらが置き換えられる前の古い名前を含んだHashオブジェクト
以下のように、パラメータを一時的に変更できる
before = DCLExt.gl_set_params({'lmiss'=>true,'rmiss'=>9999.0})
....
DCLExt.gl_set_params(before)     # reset the change

slpack

sg_set_params(hash)

DCL.sgpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

slpack

sl_set_params(hash)

DCL.slpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

swpack

sw_set_params(hash)

DCL.swpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

uzpack

uz_set_params(hash)

DCL.uzpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

ulpack

ul_set_params(hash)

DCL.ulpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

ucpack

uc_set_params(hash)

DCL.ucpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

uupack

uu_set_params(hash)

DCL.uupseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

uspack

us_set_params(hash)

DCL.uspseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

udpack

ud_set_params(hash)

DCL.udpseを(hashのそれぞれのキーと値に対して)複数回実行する。
引数
  • hash (Hash) : udpsetのためのパラメータ名と値の組み合わせ
返り値
  • パラメータ名とそれらが置き換えられる前の古い名前を含んだHashオブジェクト
以下のように、パラメータを一時的に変更できる
before = DCLExt.ud_set_params('indxmj'=>4,'lmsg'=>false)
DCL.udcntz(data)
DCLExt.ud_set_params(before)     # reset the change

ud_set_linear_levs(v, options)

一定の間隔のコンターレベルを設定する。
引数
  • v : udcnt[rz]へ渡されるデータ値
  • options (Hash) : キーと値によるオプションの指定。利用可能なオプションは以下
オプション名初期値説明
minnil最小コンター値(Numeric)
maxnil最大コンター値(Numeric)
nlevnilレベルの数(Integer)
intervalnilコンター間隔(Numeric)
nozeronilゼロコンターの消去(true/false)
coloringfalseud_coloringによるカラーコンターの設定(true/false)
clr_min13(カラーならば)最小カラーID(Integer)
clr_max99(カラーならば)最大カラーID(Integer)
ここで,intervalnlevよりも優先される。全ての初期値がnilであるので、明示的に指定されたオプションのみが解釈される。何もオプションが与えられなければ、生成されるレベルはudcnt[rz]で設定されたデフォルトのものになり、レベルの指定が一切ない。

ud_set_contour(levels,index=nil,line_type=nil,label=nil,label_height=nil)

指定したレベルのコンターを設定する。
通常、labellabel_heightを指定する必要はない。
それぞれのレベルでDCL.udsclvを実行する。そのため、引数は基本的にDCL.udsclvと同じであるが、levelsのみ必須。
引数
  • levels (Array, NArray, or Numeric) : 設定されるコンターレベル。Numericならば、一つのレベルが設定される
  • index (Array of integers, Integer, or nil) : コンターのインデックス。これがArrayでその長さがそのlevelsよりも短い場合は、同じArrayが繰り返される(つまり、[1,1,3]は[1,1,3,1,1,3,1,1,3,...]として解釈される)。一つのIntegerの場合、全てのコンターは同じインデックスを持つ。nilの場合は、indxmnの値が使われる
  • line_type (Array of integers, Integer, or nil) : コンターのラインタイプ。これがArrayでその長さがそのlevelsよりも短い場合は、 同じArrayが繰り返される。 この長さはlevelsの長さと一致していなければらない。一つのIntegerの場合、全てのコンターは同じタイプを持つ。nilの場合は1が設定される。
  • label (Array of String, String, true, false, nil) : コンターのラベル。これがArrayでその長さがそのlevelsよりも短い場合は、同じArrayが繰り返される。この長さはlevelsの長さと一致していなければらない。一つのStringの場合、全てのコンターは同じラベルを持つ。trueの場合、全てのコンターはlevelsを表すラベルを持つ。falseの場合、ラベルは表示されない(""として設定する)。nilの場合は、"INDXMJ"と等しいインデックスを持つコンターにおいてtrueの場合と同様になり、それ以外はfalseと同様にになる
  • label_height (Array of Numeric, Numeric, or nil) : ラベルの高さ。通常、これは使用する必要はない。これがArrayでその長さがそのlevelsよりも短い場合は、同じArrayが繰り返される。nilノ場合は、初期値("RSIZEL")が空でないラベルに使われる。一つのNumericの場合は、同じ値がすべてのコンターに対して使われる。ただし、ここでの正の値はラベルが空であるときでも常にラベルを書いてしまうので、このパラメータは使わずにDCL.udpset('RZISEL'. label_height)を使うことを推奨する点に注意
返り値
  • nil

ud_add_contour(levels,index=nil,line_type=nil,label=nil,label_height=nil)

ud_set_contourと同様だが、設定されているコンターレベルを消去しない。

uepack

ue_set_params(hash)

DCL.uepseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

ue_set_linear_levs(v, options)

一定間隔でトーンレベルを設定する。
引数
  • v : udcnt[rz]へ渡されるデータ値
  • options (Hash) : キーと値によるオプションの指定。利用可能なオプションは以下
オプション名初期値説明
minnil最小トーンレベル(Numeric)
maxnil最大トーンレベル(Numeric)
nlevnilレベルの数(Integer)
intervalnilトーンレベル間隔(Numeric)
ここで、intervalnlevよりも優先される。全ての初期値がnilであるので、明示的に指定されたオプションのみが解釈される。何もオプションが与えられなければ、生成されるレベルはudcnt[rz]で設定されたデフォルトのものになり、レベルの指定が一切ない。

ue_set_tone(levels, patterns)

トーンレベルとパターンを設定する。
parameterslevelsとの間で以下のように設定される。
  • levels.length == patterns.length+1のとき
  levels[0]  |  levels[1]  |  levels[2]  ...  |  levels[-2]  |  levels[-1]
         patterns[0]   patterns[1]   ...  patterns[-2]   patterns[-1]
  • levels.length == patterns.lengthのとき
  levels[0]  |  levels[1]  |  levels[2]  ...  |  levels[-1]  |  +infty
         patterns[0]   patterns[1]   ...  patterns[-2]   patterns[-1]
  • levels.length == patterns.length-1のとき
  -infty  |  levels[0]  |  levels[1]  ...  |  levels[-1]  |  +infty
      patterns[0]   patterns[1]   ...  patterns[-2]   patterns[-1]
  • その他
エラー(例外発生)
引数
  • levels (Array or NArray of Numeric) : トーンレベル。この長さはpatternsの長さよりりも1だけ大きか、等しいか、1だけ小さくなければならない
  • patterns (Array or NArray of Numeric) : トーンパターン
返り値
  • nil

ue_add_tone(levels, patterns)

ue_set_toneと同様だが、設定されているトーンレベルを消去しない。

ugpack

ug_set_params(hash)

DCL.ugpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

umpack

um_set_params(hash)

DCL.umpseを(hashのそれぞれのキーと値に対して)複数回実行する。
使い方はgl_set_paramsを参照。

オリジナルメソッド

経度/緯度軸

lon_ax( options=nil )

経度軸を描く。(ラベルフォーマット : degrees + 'E' or 'W')
引数
  • options (Hash) : デフォルトの振る舞いを変更するオプション。キーと値のオプション名(String)を持つハッシュ。オプションはNumRu::Misc::KeywordOptAutoHelpによって解釈されるため、その意味が明確な場合は(値を省略することで)キーを短縮できる
オプション名初期値説明
yaxfalsetrue => y軸を描く, false => x軸を描く
csidenil"b", "t", "l", "r", nil (=>left/bottom), or false (=>right/top)
dtick1nil細かい目盛間隔(nilの場合、内部的に決定)
dtick2nilラベル付きの細かい目盛間隔(nilの場合、内部的に決定)

lat_ax( options=nil )

緯度軸を描く。(ラベルフォーマット : degrees + 'N' or 'S')
引数
  • options (Hash) : デフォルトの振る舞いを変更するオプション。キーと値のオプション名(String)を持つハッシュ。オプションはNumRu::Misc::KeywordOptAutoHelpによって解釈されるため、その意味が明確な場合は(値を省略することで)キーを短縮できる
オプション名初期値説明
xaxfalsetrue => x軸を描く, false => y軸を描く
csidenil"b", "t", "l", "r", nil (=>left/bottom), or false (=>right/top)
dtick1nil細かい目盛感覚(nilの場合、内部的に決定)
dtick2nilラベル付きの細かい目盛間隔(nilの場合、内部的に決定)

Vectors

unit_vect( vxfxratio, vyfyratio, fxunit=nil, fyunit=nil, options=nil )

単位ベクトルを表示する。これはベクトルスケーリングを表している。
引数
  • vxfxratio (Float) : x方向における(V座標系の長さ)/(実際の長さ)
  • vyfyratio (Float) : y方向軸における(V座標系の長さ)/(実際の長さ)
  • fxunit (Float) : 指定された場合、x方向の単位ベクトルの長さ
  • fyunit (Float) : 指定された場合、y方向の単位ベクトルの長さ
  • options (Hash) : oデフォルトの振る舞いを変更するオプション。キーと値のオプション名(String)を持つハッシュ。オプションはNumRu::Misc::KeywordOptAutoHelpによって解釈されるため、その意味が明確な場合は(値を省略することで)キーを短縮できる
オプション名初期値説明
vxunit0.05V座標系におけるx方向の単位ベクトルの長さ。fxunitが省略されている時のみ(デフォルト)
vyunit0.05V座標系におけるy方向の単位ベクトルの長さ。fyunitが省略されている時のみ(デフォルト)
vxulocnil単位ベクトルの始まるxの位置
vyulocnil単位ベクトルの始まるyの位置
vxuoff0.05右下の隅からのオフセットによってvxulocを指定
vyuoff0.0右下の隅からのオフセットによってvyulocを指定
inplacetrue単位ベクトルのそばにラベルを表示するか(true)、x軸の下に表示するか(false)
rsizetnilラベルサイズ(デフォルトはuz-parameter 'rsizel1'から取ってくる)
index3単位ベクトルのラインインデックス
helpfalsetrueの場合、ヘルプメッセージを表示

set_unit_vect_options(options)

unit_vectにおけるオプションの初期値を変更する。

next_unit_vect_options(options)

次のunit_vectの実行時のみオプション値が有効になるように設定する。

flow_vect( fx, fy, factor=1.0, xintv=1, yintv=1)

2次元ベクトルを描画する。DCL::ugvectとは異なり、スケーリングは物理(あるいは"U")座標系に関して行われる。
このメソッドはDCL::ugvectの代替の役割を果たす。スケーリングはU座標系に対して行われる矢印の方向はU座標系における方向を表すので、このメソッドは速度などのベクトルを表示するのに適している。また、引数のfactorを使うことで、簡単にベクトルを再スケーリングすることができる。

現在、このメソッドはDCL::ugvectを内部的に実行するので、地図投影に互換性がある。
引数
  • fx, fy (2D NArray or Array) : ベクトル場
  • factor (Integer) : 矢印の長さを変更するファクター。デフォルトでは、最も長い矢印が格子間隔と一致するようにスケーリングされる
  • xintv, yintv (Interger) : fxとfyをそれぞれ間引く間隔。格子点が大量にある場合に便利

flow_itr5( fx, fy, factor=1.0, unit_vect=false )

2次元ベクトルを極座標系に描画する。

このメソッドはちょうどU座標系のベクトルをN座標系に回転させるように働き、DCL.ugvectへと送られる。
引数
  • fx, fy (2D GPhys) : ベクトル場
  • factor (Integer) : ugvectにおけるスケーリングファクター。1のときは、ベクトル場はDCL.ugvectで自動的にスケーリングされる
  • unit_vect() : 単位ベクトルを表示

カラーバー

set_color_bar_options(options)

その他のcolor_barのオプションを有効に設定する。

color_bar(options=nil)

カラーバーを描く。
ここでの例はcolor_barに何も引数を与えない最もシンプルな場合
DCL.uetone(hoge)
DCL.usdaxs
...
DCL.color_bar
これは、前に設定したレベルとトーンパターン(カラー)を用いてカラーバーを描く。以下に紹介されているように、手動で設定できるパラメータが多く存在する。
オプション名初期値説明
levelsnilトーンレベル(省略された場合、すぐ前の値が使われる)
patternsnilトーンパターン(カラー)(省略された場合、すぐ前の値が使われる)
voffnilV座標系におけるビューポイントとバーの間の遠さ
vcentnilV座標系(VXかVY)におけるバーの中心位置
vlength0.3V座標系におけるバーの長さ
vwidth0.02V座標系におけるバーの幅
inffact2.25無限大側の三角形の長さを変更する(vwidthとの相対値)
landscapefalsetrueの場合、(x軸に沿って)水平に長い
portraittruetrueの場合、(y軸に沿って)鉛直に長い
topfalseバーを上に配置(landscapeがtrueの場合に効果的)
leftfalseバーを左に配置(portraitがtrueの場合に効果的)
unitsnilカラーバーの軸の単位
units_voff0.0V座標系における単位のデフォルトの位置からのオフセット(units != nilの場合のみ)
titlenilカラーバーの題名
title_voff0.0V座標系における題名のデフォルトの位置からのオフセット(title != nilの場合のみ)
tickintv1区切られた目盛線が描かれる頻度を指定(0: 目盛線なし, 1:常に描く, 2:その他:,...)
labelintvnilラベルが描かれる頻度(0: ラベルなし, 1: 常に描く, 2: その他:,... デフォルト: 内部的に決定)
labels_udnilデフォルトのラベルエオユーザー定義のラベルで置き換える(Array of String)
charfact0.9ラベル、単位、題名の文字のサイズを変更するファクター('rsizel1'との相対値)
logfalseカラーバーのスケールを対数に設定
constwidthfalsetrueならば、それぞれのカラーが同じ幅で描かれる
indexnil目盛線とバーのフレームにおけるラインインデックス
charindexnilラベル、単位、タイトルにおけるラインインデックス
chval_fmtnilラベル付けのためにDCL.chvalのフォーマットを指定する文字列
helpfalsetrueの場合、ヘルプメッセージを表示

その他

legend(str, type, index, line=false, size=nil, vx=nil, dx=nil, vy=nil, first=true, mark_size=nil)

ラインとマークのタイプとインデックスに注釈をつける(マークにはサイズも)。デフォルトでは、これはビューポートの右側余白に表示される。
引数
  • str : 表示するString
  • line : true->line, false->mark
  • vx : 凡例のラインの左側の点のビューポイントからのx方向の距離(もしくはマークの位置)
    • nil : 内部的に決定
    • Float && > 0 : 明示的に設定
    • Float && < 0 : デフォルトから相対的に左へ移動
  • dx: 凡例のラインの長さ(マークならば使用しない)
    • nil : 内部的に決定
    • Float && > 0 : 明示的に設定
  • vy : ビューポイントからの凡例のy方向の距離(firstがfalseならば、使用しない。以下参照)
    • nil : 内部的に決定
    • Float && > 0 : 明示的に設定
    • Float && < 0 : デフォルトから相対的に下へ移動
  • first : falseならば, vyは前のvyから相対的に下へ移動する
  • mark_size : マークのサイズ。nilならば、sizeが使用される

quasi_log_levels_z(vals, nlev=nil, max=nil, min=nil, cycle=1)

データ値を伴ったquasi_log_levelsのドライバー

quasi_log_levels(lev0, lev1, cycle=1)

コンター用にmajor/minorフラグを返すのと同様に、近似的な対数スケールのコンターとトーンのレベルも返す。ここでは全くDCLの実行は行われない。
引数
  • cycle (Integer; 1, or 2 or 3) : 一つのオーダーにおけるレベルの数。例えば、cycle==1なら1,10,100,...、cycle==2なら1,3,10,30,..、cycle==3なら1,2,5,10,20,50,..
  • lev0, lev1 (Float) : レベルをこの2つのパラメータの間に設定
    • if lev0 & lev1 > 0 : 正のみ
    • if lev0 & lev1 < 0 : 負のみ
    • if lev0 * lev1 < 0 : 正負両方(usig +-[lev0.abs,lev1.abs])
返り値:
  • [ levels, mjmn ]