コンピュータを研究に使うための私的メモ。Python、Fortran、Ubuntu、etc...


インストール

OpenGrADSから最新のバイナリをダウンロード。
$ tar xzvf grads-2.0.1.oga.1-bundle-x86_64-glibc2.5-linux-gnu.tar.gz
$ cd grads-2.0.1.oga.1/Contents
$ mkdir /opt/opengrads/grads-2.0.1.oga.1
$ sudo cp -r * /opt/opengrads/grads-2.0.1.oga.1/
パスを通す。
#grads path
export GRADS="/opt/opengrads/grads-2.0.1.oga.1"
export PATH="${PATH}:${GRADS}"
スクリプトはResources/Scriptsに入れれば使える。別ディレクトリに入れる場合はパスを通す。
export GASCRP="${GRADS}/Resources/Original_Scripts"

ラベルの設定

ラベル・補助線を表示する/しない。

set xlab/ylab on/off

軸ラベルの書式を指定する。

C言語のformatと同じ
set xlab/ylab <format>

目盛を表示しない。

補助線は残して目盛のみ消す。
set xlab %
set xlab on でもとに戻る。

y軸ラベルをつける

 set strsiz 0.15 0.20
 set string 1 bc 1 90
 draw string 0.25 4.2 pressure [hpa]
set stringで回転をかけるため他の描画がおかしくなったら回転0で設定し直す。cbarn.gsでカラーバーを描くと文字が回転してしまうのでcbarn.gsを編集してset stringに0を加えておくとよい。

描画エリアの設定。

デフォルトのままだとフォントが小さかったり、余分な余白があったりして使いにくい。以下のパラメータでフォントや余白を調整する。
コマンド説明
set vpage <範囲>描画領域を指定した座標領域に分割する。分割後の座標はvpage内で新たに座標が定義される。
set parea <範囲>描画領域内で図(軸ラベルやタイトル以外の部分)を描く位置を指定する。
set mproj <地図形式>mprojを指定すると比を無視して描画領域全体に図を引き延ばす。とくに断面図で有効。デフォルトはlatlonになっていて緯度経度の比を維持するようになっている。
set xlopts/ylopts/clopts <色> <太さ> <大きさ>ラベルのフォントを指定する。デフォルトでは小さすぎるので大きめにする。
  • 本家のページではvpageを勧めているがpareaの方がいい気がする。
  • 複数図の描画はmul.gsが便利。yoffsetやxoffsetを使って余白を調整する。
  • フォントは以下の値が見やすいと思う。setlabfont.gsで自動設定するようにした。

地形の図示

地形をマスクする。

地表気圧のデータを用意する。地表気圧が変数sfcpresだとすると、
define sfc=sfcpres
d maskout(str,sfc-lev*100)
でマスクアウトできる。

鉛直断面図で地形のシェードを入れる。

2.0.0以降は透明に塗りつぶせます。方法4を使いましょう。
方法1:コンターで塗りつぶす。
地形データがあればそれをそのまま使えばいいのだが、データがないときは地表気圧の値(以下の例ではprssfcがhPaで入っている)が等圧面と等しくなるところが地形であるとして描画できる。 (参考:東京大学芳村研のページ
 set gxout contour
 set cthick 15
 set ccolor 15
 set clab off
 set clevs 0 5 10 15 20 25 30 35 40 … *---鉛直断面の場合
 *set clevs 0                          *---等圧面の場合
 define tmp = pressfc
 d (lev-tmp/100)
 
 set clab on              *---コンターラベルの表示を戻す
コンターレベルは隙間がなくなるようになるべく細かく多く設定する。南北(東西)平均した断面図で地形も平均したいときは以下のようにする。
 …
 set lat A B
 define tmp = pressfc
 set lat A
 d ave((lev-tmp/100), lat=A, lat=B)
 …
方法2:モノクロで先にシェードをかく。
モノクロでするときはシェードでもOK。シェードを黒で書いてその上にベクトルやコンターを黒で描いていけばいい。
set gxout shaded                                                                
set clevs 0                                                                     
set ccols 1 0                                                                   
define tmp = hgtsfc                                                                    
d hgtprs-tmp      
方法3:プリント時にpngで透明化を使う。
地形部分を背景色以外で塗りつぶした図を地形マスクしていない図に重ねて出力する。
printim original.png -b tikei.png -t 0 
方法4:透明色で塗りつぶす
 set gxout shade2
 set clevs 0 
 set ccols -1 15
 define tmp = pressfc
 d (lev-tmp/100)

描画モードの細かい設定

contour

コマンド説明
set clskip 値コンターのラベルをつける間隔を指定する。
set cthick 太さコンターの太さ
コンター間隔を指定する

vector

コマンド説明
set arrscl 基準長 大きさreference arrowを設定する。
set cthick 太さベクトルの太さを設定する。
set arrowhead 値ベクトルの矢印先頭の大きさを設定する。
ベクトルの矢印の頭をスケールする。
set arrowhead 負の値
とするとベクトルの長さに合わせて頭のサイズも変わる。
プレゼン用の値
set ccolor 1
set cthick 5
set arrowhead 0.15
set arrscl 0.5 値
間引く
d skip(u,2);skip(v,2)     *x,y方向共に2ずつ間引く
d skip(u,4,2);skip(v,4,2) *x方向には4、y方向には2ずつ間引く

xcbar

位置

一般xcbar 1.5 9.7 0.3 0.5 -ft 5
refference arrowがあるときxcbar 1.5 7.5 0.3 0.5 -ft 5

その他オプション

枠を付ける-line on
目盛の間隔-fs step

シェードの色を調整する。

color.gsが便利。

虹色シェードの間隔を細かくする。

  • kind grainbowだとすべての色が使われないみたいなので色の変化が小さくて見づらい。
color min max int -kind (160,0,200)->(110,0,220)->(30,60,255)->(0,160,255)->(0,200,200)->(0,210,140)->(0,220,0)->(160,230,50)->(230,220,50)->(230,175,45)->(240,130,40)->(250,60,60)->(240,0,130)

気候値を計算する。

うまくいかないときもある。
ga-> set t 1 12
ga-> clim = ave(var,t=+0,t=12*年数,12month)
ga-> modify clim seasonal

文字を書く

ギリシャ文字や記号を書く

GrADSで用意されているフォントが使える。使える文字は、
ga-> font フォント番号
で確認できる。フォント番号3のaが表す文字は、`フォント番号 文字のように使う。
ga-> draw title `3a`0 title
特殊文字を使ったら`0で元のフォントに戻さないと空白やアルファベットは使えないので注意。

上付き、下付き文字

draw string `a上付き文字`n

日付を取得

'q dims'
temp=sublin(result,5)
tim=subwrd(temp,6)
'draw title 'tim

情報

管理人/副管理人のみ編集できます