* GrADSメモ [#bf4d626d]

#contents

** 気圧重みづけ鉛直積分 [#bfb00b47]
 d vint(start pressure (hPa),var,end pressure (hPa))
**複数のctlファイルを開けて,それを選ぶ [#s8b27839]
 > set dfile 番号
**ある値以下{以上}をカットして表示. [#t0dc9ce8]
 > d maskout(var,{-}var {値})
**シェード{コンター}で表示 [#r8dfc3a3]
 > set gxout shaded {contour}
** 平均 [#i1efbb7b]
 > ave(var,t=1,t=24)など.ネスティングも可能
** 演算 [#k48da11c]
- 変数同士の四則計算,ave,sum,log,pow(x,y)なんかが使用可能.
** カラーバー表示 [#ifdadf20]
 > run cbar --> fg,bgなし
 > run cbarn --> fg,bgあり
** ヴェクター表示。 [#b6aef020]
 > d u;v
 間引きしたいときは
 > d skip(u,2,2);skip(v,2,2)
** プリントアウト [#h478b559]
 > enable print hoge.gx
 > print
 > disable print
 > ! gxps -c -i hoge.gx -o hoge.ps
 -c -rで黒背景。
** タイトルつける [#l2b308c5]
 > draw title xxxxxxxxxxx
** netCDFを読む [#v6427ef0]
 % gradsnc
 > sdfopen xxx.nc
 > q file など
** バイナリで保存。(データの切り出しなど。) [#yfd495b1]
 > set fwrite xxx.dat
 > set gxout fwrite
 > set x (y,z,t, etc.) x1 x2
  ここで、xを設定しなおさないと、なぜかxmax+1まで保存されてしまう。
  時系列に保存したい場合は>set t t1 t2 など。
 > d var
 > disable fwrite
** 収束->ラクチン! [#a40ec129]
 > hdivg(x方向フラックス,y方向フラックス)
 鉛直積分値があればそのまま使えるし、下のvintを使って各高度の値から鉛直積分を求めても使える。
** 可降水量 [#nda794b2]
 > vint(地表気圧(mb単位), 変数(比湿等), 上がどこまで(定数))
 多分、ある層からある層までを区切る、なんてことはできない!?
 気圧を重力加速度で割る、という作業はすでにされているようだ。
** 背景を白に [#u0ae3517]
 > set display color white
** 中間の値に色を塗らない [#o3eb4be0]
 > set black -0.2 0.2 (-0.2から0.2は塗らない)

** (線の)凡例をつける。 [#wadc5e9d]
- cbar_l.gs/cbar_lineが便利。http://www.iges.org/grads/gadoc/library.html
- デフォルトの線種をそのまま使用したい場合は、
 > cbar_l -t "line1" "line2" "line3" -p
で、画面のクリックした位置にレジェンドを付加できる。線種をカスタマイズしたいときは
 > cbar_line -c 色 -m マーカ -l ライン -t "テキスト" -p
として、各項目に番号を振る。ちなみにGrADS標準は下記の通り。
|CENTER:|CENTER:|CENTER:|CENTER:|c
|Num|Color|Line|Mark|h
|1|1|1|2|
|2|3|1|3|
|3|7|1|4|
|4|2|1|5|
|5|6|1|1|
|6|9|1|2|
|7|10|1|3|
|8|11|1|4|
|9|12|1|5|
|10|15|1|1|

** アニメーション [#wa2e5324]
普通に
 set t 1 10
 d var
でできるが、コマ送りが早すぎなどという問題点がある。ftp://grads.iges.org/grads/scripts/xanim.gs を使うとさらに便利。
 set t 1 10                  # 同じ
 xanim -pause -grfill var    # マウスクリックでコマ送り(かつgrfillで表示)
 xanim -skip 4 -repeat 5 var # 4コマ目ごと、5回繰り返し
など。オプションは変数より前にないとダメらしい。
** 画面内の分割 [#r45672ca]
page.gs (ftp://ftp.cpc.ncep.noaa.gov/wd51we/grads/page.gs)が使える。
 page q1 # 右上
 d var1
 page q2 # 左上
 d var2
という具合。元に戻すには
 page reset
** 移動平均・図化 [#v1a0d530]
 set t 1 100               # 例えば。
 define a=ave(var,t-0,t+9) # 前方10個平均。define省略可。第二引数はtだけだとダメ。
 set missconn on           # 欠損は無視してつなぐ。
 d skip(a,10)