GrADSのメモ
GrADSのメモです。
2011/10/10 Update
GrADSの画面が消えたりしないようにX11の設定( Linux の設定)
/etc/X11/xorg.conf(CentOS) または、/etc/X11/xorg.conf.d/50-screen.conf(openSUSE)の以下の点を追記します。
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
Option "BackingStore" "Yes" <= 追記する
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
コントロールファイル(.ctl)の書式の1例
dset ^kyoudo%y4%m2%d2%n2.bin <= (バイナリファイルの指定)
title precipitaton dataset <= (title)
undef -999 <= (未定義域の指定)
options yrev template <= ("yrev"はY方向の読み込みを逆にする、
"template"は複数日時読み込む場合に使用)
xdef 2560 linear 118.0 0.0125 <= (左から、格子数、経度の始点、格子間隔)
ydef 3360 linear 20.0 0.00833 <= (上に同じ)
zdef 1 linear 1. 1. <= (上に同じ)
tdef 36 linear 00:00Z20MAY2010 10mn <= (上に同じ)
vars 1 <= (変数の数)
p 0 99 precipitation (mm/h) <= (上で指定した数の変数を並べる)
endvars <= (最後にこれが必要+改行しておく)
WRFの出力ファイルを直接CTLファイルで指定して、GrADSで開く
DEF isize jsize LCCR latref lonref iref jref Struelat Ntruelat slon dx dy
PDEF isize jsize LCC latref lonref iref jref Struelat Ntruelat slon dx dy
Example: PDEF 300 300 lccr 33.253 133.581 150.500 150.500 33.500 33.500 133.500 1000 1000
isize: The size of the native grid in the x direction
jsize: The size of the native grid in the y direction
latref: reference latitude
lonref: reference longitude (in degrees, E is positive, W is negative)
iref: i of ref point
jref: j of ref point
Struelat: S true lat
Ntruelat: N true lat
slon: standard longitude
dx: grid X increment in meters
dy: grid Y increment in meters
Notes: Starting with version 1.9b4, the LCCR option supplements the use of PDEF with data on the Lambert Conformal projection. With LCCR, wind rotation has been implemented for data files with grid-relative winds instead of Earth-relative winds. Use LCC if your vector components are already Earth-relative.
(http://grads.iges.org/grads/gadoc/pdef.html より引用)
EmacsのCTLファイルモード,GrADSスクリプトモードの環境を構築する.
ftp://grads.iges.org/grads/emacs/
GSMとかMSMのGRIB2形式のファイルを直接GrADSで見る.
wgrib2 と g2ctl , grads-2.0以上のバージョンが必要です(gribmapを使う).
wgrib2 のインストール等はここを参照.
g2ctl のセットアップ等はここを参照.
ステップ1 (CTLファイルの作成)
$ wgirb2 -0 Z_・・・・・・.grib2.bin > output.ctl
ステップ2 (grib2ファイルに対するidxファイルの作成)
$ gribmap -0 -i output.ctl
だけでOK.
(参考URL:http://www.cpc.ncep.noaa.gov/products/wesley/)
UDF(User Defined Function)関連の情報
(非常によくまとまっていますので、まずこちらを見るとほとんどの情報が得られます)
UDF関連のファイルサーバ(GrADS本家FTP)
ftp://grads.iges.org/grads/sprite/udf/
OpenGrADS2でUDFを使う方法?
http://gradsusr.org/pipermail/gradsusr/2009-March/008293.html
http://oceansciencehack.blogspot.com/2011/02/gradsregrid.html
OpenGrADS本家HP
http://opengrads.org/wiki/index.php?title=User_Defined_Extensions_in_GrADS_v2.0
東北大学大学院理学研究科 流体地球物理学講座のHP
GrADS2でUDFを使う方法
いろいろと調査、試行錯誤した結果、UDFを使用するときだけOpenGrADS ver.2 を使用すれば出来ることが分かりました。
以下、その情報です。
1: OpenGrADS2のインストール
http://opengrads.org/index.php
上記のWebサイトの「Download」から自分の環境に合ったgrada2をダウンロードします。
私は、Scientific Linux 6.0 (RHEL系)のx86_64環境なので、
grads-2.0.a9.oga.1-bundle-x86_64-rhel5.5-linux-gnu.tar.gz
をダウンロードしました。
ダウンロードしたら、適当なディレクトリにて解凍します。
$ tar -zxvf grads-2.0.a9.oga.1-bundle-x86_64-rhel5.5-linux-gnu.tar.gz
解凍すると、以下のディレクトリが出来ます。
grads-2.0.a9.oga.1/
このディレクトリ内に「Contents/」というディレクトリがあります。
そのディレクトリ内にコンパイル済みのGrADSのバイナリがあるので、
「grads」 のみに 「alias」を通します。
(ここでは、OpenGrADSを /usr/local/ 以下に grads-2.0.a9.oga.1/ をそのまま mv した状態を仮定します。)
$ alias opengrads=/usr/local/grads-2.0.a9.oga.1/Contents/grads
### 毎回 alias で設定するのは面倒なので、~/.bashrc に 上記のコマンドをそのまま追記すれば便利です。
.bashrc の設定方法が分からないときは、こちら。
さらに、環境設定をします。
#------------------#
# opengrads-2.0.a9 #
#------------------#
export GRADSHOME=/usr/local/grads-2.0.a9.oga.1/Contents/Linux/Versions/2.0.a9.oga.1
export PATH=${PATH}:/usr/local/grads-2.0.a9.oga.1/Contents
export GAUDFT=${GRADSHOME}/udf/udft.txt
export GABIN=${GRADSHOME}/x86_64
export GAUDXT=${GRADSHOME}/x86_64/gex/udxt
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GRADSHOME}/x86_64/gex
alias opengrads=/usr/local/grads-2.0.a9.oga.1/Contents/grads
ここまで出来たら、インストールは完了です。
つまり、端末で「opengrads」と打てば、opengradsが起動します。
2: UDFを使う。
とりあえず、opengradsを起動確認をします。
$ opengrads
ga-> q udf
と打って、以下のような情報が表示されれば成功です。
Function Ben-Jei Tsuang's Extensions Function@Library
----------- --------------------------------------- --------------------------
lt Local time f_bjt@^libbjt.gex
jd Julian day f_bjt@^libbjt.gex
cosz Cosine solar zenith angle f_bjt@^libbjt.gex
dayratio Daylight ratio f_bjt@^libbjt.gex
if Conditional function f_bjt@^libbjt.gex
maxv Maximum value f_bjt@^libbjt.gex
minv Minimum value f_bjt@^libbjt.gex
which Label gridpoints f_bjt@^libbjt.gex
ftest F-test f_bjt@^libbjt.gex
ttest T-test f_bjt@^libbjt.gex
tfit Point linear regression f_bjt@^libbjt.gex
fit Global linear regression f_bjt@^libbjt.gex
tcorr2 Time correlation f_bjt@^libbjt.gex
tregr2 Point linear regression f_bjt@^libbjt.gex
tmave2 Time averaging w/masking f_bjt@^libbjt.gex
madvu Calculates -d(u*EXPR)/dx f_bjt@^libbjt.gex
madvv Calculates -d(V*EXPR)/dy f_bjt@^libbjt.gex
madvw Calculates -d(W*EXPR)/dp f_bjt@^libbjt.gex
muadv Zonal advection f_bjt@^libbjt.gex
mvadv Meridional advection f_bjt@^libbjt.gex
mwadv Vertical advection f_bjt@^libbjt.gex
satvap Saturated vapor pressure f_bjt@^libbjt.gex
dew Dew point temperature f_bjt@^libbjt.gex
lw Thermal infrared fluxes f_bjt@^libbjt.gex
lw2 Thermal infrared fluxes v2 f_bjt@^libbjt.gex
pinterp Pressure interpolation f_bjt@^libbjt.gex
zinterp Height interpolation f_bjt@^libbjt.gex
line Draws a line f_bjt@^libbjt.gex
vint2 Mass-weighted vertical integral f_bjt@^libbjt.gex
Function Streamfunction & Velocity Potential Function@Library
----------- --------------------------------------- --------------------------
fish Poisson solver f_fish@^fish.gex
fish_psi Compute streamfunction f_psichi@^fish.gex
fish_chi Compute velocity potential f_psichi@^fish.gex
fish_vor Compute vorticity f_psichi@^fish.gex
fish_div Compute divergence f_psichi@^fish.gex
Function Saakeskus Wx Function Collection Function@Library
----------- --------------------------------------- --------------------------
dewpt Dew-point temperature f_gsudf@^gsudf.gex
ept Equivalent potential temperature f_gsudf@^gsudf.gex
epi Potential Instability f_gsudf@^gsudf.gex
plcl Pressure at LCL f_gsudf@^gsudf.gex
shear Wind Shear f_gsudf@^gsudf.gex
srh1km Storm-relative Helicity 0-1km' f_gsudf@^gsudf.gex
srh3km Storm-relative Helicity 0-3km' f_gsudf@^gsudf.gex
tlcl Temperature at LCL f_gsudf@^gsudf.gex
tsindex Chance of T-storm Initiation f_gsudf@^gsudf.gex
ttindex Total Totals Index f_gsudf@^gsudf.gex
wchill Wind Chill Index (New) f_gsudf@^gsudf.gex
Function Simple Extension Example Function@Library
----------- --------------------------------------- --------------------------
hello Hello, World! sample function f_hello@^libhello.gex
Function Interprocess Communication Function@Library
----------- --------------------------------------- --------------------------
ipc_save Save expression to stream f_Save@^libipc.gex
ipc_load Load variable from file f_Load@^libipc.gex
Function Mike Fiorino's Extensions Function@Library
----------- --------------------------------------- --------------------------
smth2d Shuman smoother/de-smoother f_smth2d@^libmf.gex
xy2rt cartesian -> cylindrical coord f_xy2rt@^libmf.gex
uv2trw Find radial/tangential velocity f_uv2trw@^libmf.gex
re2 General interpolator (regrid2) f_re2@^libmf.gex
esmrf Saturation vapor pressure (old MRF) f_esmrf@^libmf.gex
linreg Linear regression: mx + b f_linreg@^libmf.gex
Function Satellite Orbit Extensions Function@Library
----------- --------------------------------------- --------------------------
orb_mask Satellite orbit masking f_mask@^orb.gex
Function Regridding Functions Function@Library
----------- --------------------------------------- --------------------------
re General interpolator ffre@^re.gex
re_ General interpolator (verbose) ffre_dbg@^re.gex
regrid2 regrid2-like wrapper for re() f_gsudf@^gsudf.gex
geos Interpolation to GEOS-5 Grids f_gsudf@^gsudf.gex
reimg Interpolation for Image Generation' f_gsudf@^gsudf.gex
Function Spherical Harmonic Analysis Function@Library
----------- --------------------------------------- --------------------------
sh_filt Spherical harmonic filter f_shfilt@^shfilt.gex
sh_power Spherical harmonic spectra f_shpowr@^shfilt.gex
元々、かなりの関数が用意されているので便利ですね。
次に、動作確認です。ここでは、regrid2 を使ってみます。
ga-> open hoge.ctl (適当なファイルを開く)
ga-> d regrid2(var, 0.2)
として、図が表示されれば、これで完璧です。
あとは、ご自由にお使いください。
GrADS関連のWebサイト
個人的によくお世話になります。
GrADS関連では一番充実してると思います。
script関連でよくお世話になります。
特に,color.gs, xcbar.gsはおすすめです。
痒くて手の届かないところまで網羅してあります。
ここもかなり詳しく書いてあります。
また、情報がまとまっていて非常にわかりやすいです。
今のところ,最新バージョンは2.0.a9です。
http://iges.org/grads/gadoc/supplibs.html
GrADSをsourceからコンパイルしたいというマニアックな方はこちら.