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)関連の情報

筑波大釜江さんのHP

(非常によくまとまっていますので、まずこちらを見るとほとんどの情報が得られます)

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

http://wind.geophys.tohoku.ac.jp/index.php?%B8%F8%B3%AB%BE%F0%CA%F3%2FGrADS%2FGrADS%A4%CETips#content_1_168

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サイト

東北大(tips & script)

個人的によくお世話になります。

GrADS関連では一番充実してると思います。

北大(script)

script関連でよくお世話になります。

特に,color.gs, xcbar.gsはおすすめです。

It memo

痒くて手の届かないところまで網羅してあります。

GrADS-Note

ここもかなり詳しく書いてあります。

また、情報がまとまっていて非常にわかりやすいです。

GrADS 本家

今のところ,最新バージョンは2.0.a9です。

http://iges.org/grads/gadoc/supplibs.html

GrADSをsourceからコンパイルしたいというマニアックな方はこちら.