GrADS-Note - GrADS2まとめ
このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。



GrADS version 2では欠損値のデフォルトが-9.99e8に設定されています。元ファイルの欠損値が何であれ、fwriteしたあとのデータの欠損値は-9.99e8になります。
欠損値をexplicitに設定するには set undef -9.99e8 のような一文が必要です。




GrADS 2.1以降


http://cola.gmu.edu/grads/ChangeLog

2.1以降はCairo graphics libraryが導入された。画像出力や使用できるフォントに変更あり。
描画が少し遅くなったが、線や文字などが滑らかになった。

gxprint 任意のフォーマットの画像ファイルを出力


http://cola.gmu.edu/grads/gadoc/gradcomdgxprint.ht...

eps, ps, pdf, svg, png, gif, jpgに対応。
外部ユーティリティのgxps, gxeps, gxtranとコマンド'enable print', 'print', 'disable print'は廃止に。
gxprint test.pdf

set rgbで透過色を作成


http://cola.gmu.edu/grads/gadoc/gradcomdsetrgb.htm...

R、G、Bのパラメータの後に、不透明度のパラメータを指定するオプションが追加。0が完全透明、255が完全不透明。

色番号21番として赤色の不透明度200の色を作成
set rgb 21 255 0 0 200

 set rgb 21 255   0   0 127
 set rgb 22   0   0 255 127
 set gxout linefill
 set lfcols 1 21
 d var1;var2
 set lfcols 1 22
 d var3;var4


set tileでドットや格子状のタイル模様を描く


http://cola.gmu.edu/grads/gadoc/gradcomdsettile.ht...

set tileでパターンフィリングの指定が可能に。ドットやタイル模様を描ける。統計的有意性の描画に便利?




Cairoフォントが使用可能


http://cola.gmu.edu/grads/gadoc/fontcontrol.html

ラインの組み合わせで書かれていた従来のフォント(Hershey Fonts)に比べ、Cairo Fontではポリゴンで文字を書くため、文字が見やすい場合がある。ただしディスプレイ上の表示とファイル出力時とで差がある場合があるので注意。

マークが追加




塗りつぶしダイヤモンドが追加。





set gxout shade2に対応


邪魔な横線が入らないように塗りつぶす、gxout shade2が使用可能(V2.0.0以降)。

 set gxout shade2
 d var
 print hoge.eps

http://cola.gmu.edu/grads/changelog-2.0.txt
http://oceansciencehack.blogspot.jp/2012/02/gradsp...

GrADSについてのメモ → 画像ファイル出力 参照

グリッド内挿(解像度の変更) lterp


http://cola.gmu.edu/grads/gadoc/gradfunclterp.html

変数varを変数var2の解像度に変更
d lterp(var, var2, bilin)

時間方向の内挿も可能。




**注:2変数を同時に扱うときの原則として、var1とvar2のtimeが一致していないといけない。ただしここでは、var2は解像度を参照したいだけなので、
d lterp(var, var2(t=1), bilin)

とすればOK。



365 day calendarのNetCDFファイルに対応していない


GrADS troubleshooting

時間軸が365日のカレンダーであるNetCDFファイルは、GrADS2ではそのままでは開けないので、
NetCDF用のctlファイルを作成するか、GrADS1でsdfopenすること。


z軸を降順に並びかえ


GrADS2でz軸が昇順のnetcdfファイル(10, 20, 30, ... , 925, 1000hPa など)をsdfopenすると、
降順に自動的に並びかえられ、(1000, 925, ... , 30, 20, 10hPa)の軸になる。
ERAの解析値など、昇順のデータを扱うときは、GrADS1と挙動が異なるので注意。



shapefileの読み書き


GISで使われるshapefileフォーマットに対応。県境や州の境界、河川などを描画可能。

http://cola.gmu.edu/grads/gadoc/shapefiles.html






shapefileを使って県境・政治的境界を描く




上:draw shp admin98で政治的境界を描いたもの、下:draw shp JPN_adm1で日本の県境を描いたもの

準備:

http://www.wishingwork.com/grads/graphics-controls...

からJPN_adm1.zipをダウンロード、

http://opengrads.org/doc/udxt/shape/

からadmin98_li_shp.zipをダウンロード、解凍したファイルを環境変数GADDIRで設定しているディレクトリに置く。

GrADS2.1を起動して何らかの変数をdisplayしたのち、draw shp 名前 で境界線を描画。


shapefileを使って半透明のマップを描く


http://cola.gmu.edu/grads/gadoc/shapefiles.html

grads_lowres_land.tar.gzをダウンロード
wget ftp://cola.gmu.edu/grads/scripts/grads_lowres_land...

解凍
tar xvf grads_lowres_land.tar.gz

環境変数GADDIRで設定しているディレクトリ(ここでは/usr/local/grads/dataの場合)にgrads_lowres_land.???を置く
cp grads_lowres_land.??? /usr/local/grads/data

grads2.1を起動し、マップなしで描画したのち、set rgbでColor Masking for Transparent Colorsを使用して不透明度60の黒いマップを描く。
マップの海岸線と等値線が混ざって見づらい図、を防ぐことができる。

'set grads off'
'set grid off'
'set lon 50 230'
'set lat -90 90'
'set mproj orthogr'
'set mpdraw off'
'set gxout shade2'
'd var'
'set rgb 20 0 0 0 -60'
'set line 20'
'set shpopts 20'
'draw shp grads_lowres_land'



hires, medresおよび海洋shapefileも用意されている模様。

grads_hires_land.tar.gz
grads_hires_ocean.tar.gz
grads_lowres_land.tar.gz
grads_lowres_ocean.tar.gz
grads_mres_land.tar.gz
grads_mres_ocean.tar.gz


sdfwrite NetCDFの作成


sdfwriteというコマンドでNetCDFファイルの作成が可能。

 open cmap_precip.ctl
 set x 1 144
 set y 1 73
 set lev 1000
 set t 1 12
 set e 1
 a = precip
 set sdfwrite precip.nc
 sdfwrite a

sdfwrite

set sdfwrite

set sdfattr:



GrADS2でユーザ定義関数(UDF)を使う


GrADS2ではUDF(GrADSユーザ定義関数・機能拡張参照)が利用できない。
代わりに、Opengradsを使うことでGrADS2環境下でUDFを利用可能。

https://sites.google.com/site/unumahp/drawing/grad...



set clab masked コンターラベルを重ならないように描く

画面アスペクト比を変更(V2.0.a9以降)


http://cola.gmu.edu/grads/gadoc/gradcomdgrads.html

GrADSのウィンドウは11x8.5のアスペクト比で固定されている(大きさはgオプションで変更可)が、
GrADS2ではアスペクト比を変更し、最大11x11にまで変更できる。
aオプションでアスペクト比(0.2〜5.0)を指定する。

 grads           # 11x8.5 (デフォルト)
 grads -p        # 8.5x11 (portraitモード)
 grads -a 1      # 11x11  に変更
 grads -a 0.2001 # 2.2x11 に変更
 grads -a 4.9999 # 11x2.2 に変更





GRIB2形式のデータを読む

wgrib2の入手とコンパイル


http://www.cpc.ncep.noaa.gov/products/wesley/wgrib...
→Code: 32 and 64 bits 「wgrib2.tgz」をダウンロード、解凍。
mkdir wgrib2
cd wgrib2
wget ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.t...

grib2/に移動し、コンパイルを行って実行ファイルwgrib2を作成。
cd grib2
make -f makefile

wgrib2/以下にあるwgrib2が動くことを確認。
cd wgrib2
./wgrib2

g2ctlの入手


g2ctlのperlスクリプトを入手。
wget ftp://ftp.cpc.ncep.noaa.gov/wd51we/g2ctl/g2ctl.0.0...

実行権限を許可して、実行できることを確認。
chmod 755 g2ctl.0.0.4i
./g2ctl.0.0.4i

名前をg2ctl.plに変更しておく。
mv g2ctl.0.0.4i g2ctl.pl

42?行目の
$wgrib2=
をwgrib2実行ファイルの絶対パスに書き換える。
$wgrib2='・・・/grib2/wgrib2/wgrib2';

g2ctl.plをGrADSのbin/に置く。
mv g2ctl.pl ・・・/grads-2.0.a9/bin/

実行


g2ctlを使って、grib2形式のファイル"grib2_file"の対応するコントロールファイル"grib2_file.ctl"を作成し、
gribmapを使って対応するインデックスファイルを作成することで、
grads2でデータを読みこむ。

 g2ctl -0 grib2_file > grib2_file.ctl
 gribmap -0 -i grib2_file.ctl
 grads
open grib2_file.ctl

ハイフン"ゼロ"でありハイフン"オー"ではないので注意。


GrADS2 システム要件


Linux PCの場合、64bitのCPUである必要があります。
32bit CPUの場合、GrADS1を使いましょう。

LinuxのCPUが64ビットかどうか調べる
cat /proc/cpuinfo
で表示される、flagsの値にlmがあれば64ビット、なければ32ビットCPU。
http://d.hatena.ne.jp/jun-ya/20090511/1242028435

GrADS1のインストール

Windowsでは今のところCygwin上でのみ利用できます。



GrADS2のインストール

Linux

管理者向け

東北大学大学院理学研究科 流体地球物理学講座 公開情報/GrADS

GrADS Home Page
から、GrADS 2.0.a9 Linux の CentOS5.5-x86_64を選択。
GrADSのバージョンは適宜読み替えて下さい。

root権限になって、ダウンロードしたインストールパッケージを解凍。
tar xvf grads-2.0.a9-bin-CentOS5.5-x86_64.tar.gz

出来たディレクトリ(grads-2.0.a9)を/usr/local/に置く
mv grads-2.0.a9 /usr/local/

GrADSスクリプトを/usr/local/grads-2.0.a9/lib/以下に置く※

 mkdir scripts
 cd scripts
 wget ftp://cola.gmu.edu/grads/scripts/*
 mkdir /usr/local/grads-2.0.a9/lib
 cp * /usr/local/grads-2.0.a9/lib/
/usr/local/grads-2.0.a9/binに移動し、gradsが動くか確認 :注1
 cd /usr/local/grads-2.0.a9/bin
 ./grads

※その他のスクリプトはGrADSスクリプトライブラリを参照。

GrADSのフォントや地図データをダウンロードする※1。GrADSのdataディレクトリを作成し、その中に入れる。

 mkdir data
 cd data
 wget ftp://cola.gmu.edu/grads/data2.tar.gz
 tar xvfz data2.tar.gz
 cd ..
 cp -r data /usr/local/grads-2.0.a9/

※1 ただし既に別バージョンのGrADSを使用していた場合、そのデータディレクトリをコピーすればよい。
cp -r /usr/local/grads-1.9b4/data /usr/local/grads-2.0.a9/


高解像度の地図もダウンロードしておく。
GrADSについてのメモ→新しい地図

 cd /usr/local/grads-2.0.a9/data
 wget ftp://cola.gmu.edu/grads/boundaries/newmap
 wget ftp://cola.gmu.edu/grads/boundaries/worldmap

/etc/bashrcに
 #set grads
 export GRADSHOME=/usr/local/grads-2.0.a9
 export GADDIR=${GRADSHOME}/data
 export GASCRP=${GRADSHOME}/lib
 export PATH=${PATH}:${GRADSHOME}/bin
と書き込む。

各ユーザ側の設定:

ホームディレクトリの .bashrc の先頭に
 # Source global definitions
 if [ -f /etc/bashrc ]; then
         . /etc/bashrc
 fi
を書き加える。
source .bashrc
grads
と打ち、起動すれば成功。

注1::
gradsnc: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory
のようなエラーが出たときは、/lib/以下にlibtermcap.so.2などを入れてあげる必要がある。

参考


ユーザ向け

GrADS Home Page
から、GrADS 2.0.a9 Linux の CentOS5.5-x86_64を選択。
GrADSのバージョンは適宜読み替えて下さい。

ダウンロードしたインストールパッケージを解凍。
tar xvf grads-2.0.a9-bin-CentOS5.5-x86_64.tar.gz

GrADSスクリプトを~/grads-2.0.a9/lib/以下に置く※

 mkdir scripts
 cd scripts
 wget ftp://cola.gmu.edu/grads/scripts/*
 mkdir ~/grads-2.0.a9/lib
 cp * ~/grads-2.0.a9/lib/
~/grads-2.0.a9/binに移動し、gradsが動くか確認
 cd ~/grads-2.0.a9/bin
 ./grads

※その他のスクリプトはGrADSスクリプトライブラリを参照。

GrADSのフォントや地図データをダウンロードする※1。GrADSのdataディレクトリを作成し、その中に入れる。

 mkdir data
 cd data
 wget ftp://cola.gmu.edu/grads/data2.tar.gz
 tar xvfz data2.tar.gz
 cd ..
 cp -r data ~/grads-2.0.a9/

※1 ただし既に別バージョンのGrADSを使用していた場合、そのデータディレクトリをコピーすればよい。
cp -r ・・・/grads-1.9b4/data ~/grads-2.0.a9/

高解像度の地図もダウンロードしておく。
GrADSについてのメモ→新しい地図

 cd /usr/local/grads-2.0.a9/data
 wget ftp://cola.gmu.edu/grads/boundaries/newmap
 wget ftp://cola.gmu.edu/grads/boundaries/worldmap

/etc/bashrcに
 #set grads
 export GRADSHOME=/home/・・・/grads-2.0.a9
 export GADDIR=${GRADSHOME}/data
 export GASCRP=${GRADSHOME}/lib
 export PATH=${PATH}:${GRADSHOME}/bin
と書き込む。



Mac向け


X11にて作業を行う。
Macintosh OSXの"darwin8.11-powerpc"を選ぶ。

Windows(Cygwin)向け


Windowsでは今のところCygwin上でのみ利用できます。

インストール手順は基本的にGrADS1と同じ。GrADSのインストール参照。


http://mc39.genin.jp/installmemo.html

64bit cygwin (Windows 8.1)の場合
http://mc39.genin.jp/GrADS2.1.a1_compile_memo.html