早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

GrADS_memo

GrADS メモ

まだまだ移植途中.

はじめに

私は GrADS を quick view 用にしか使っていない. 従って,あまり複雑な事は知らない. 複雑な事を知らなくても,簡単にデータ閲覧できるのが GrADS の一番の利点だと思うので, こういう使いかたで割り切っている.

ctl ファイルの書式

詳しい解説は,様々なサイトに書かれているので省略.自分が忘れそうな情報だけを記す.

様々な形式のデータファイルから,半自動的にctlファイル生成もできる. GRIB1ファイルの場合は,GRIB データへの GrADS による直接アクセス (GRIB1 版), GRIB2ファイルの場合は,GRIB データへの GrADS による直接アクセス (GRIB2 版) を参照.

GRIB1/2 & NetCDFファイルで同一手法(同じコマンド)を使いたい場合は, CDO (Climate Data Operators)(CDO本家へのリンク) を使うと便利(See CDOの使い方(hysk) > GrADS ctl 作成).

 整数型データ

GrADS の default では,記録されているデータは4-byte 浮動小数点データとみなされる. 記録されているデータが整数型の場合は,ctl ファイルで以下のように記述する:

 variable level -1,40,4 comments 

上記の例の場合は, 4-byte (or 8-byte) 整数で記録されている事を意味する (標準バイト数は機種毎の default に依存する).

整数データ取扱い時の表記を以下にまとめる:

整数型データの指定形式(データ長(1, 2, 4-byte)および符号の有無で異なる).
指定形式 意味
-1,40,1 1-byte unsigned integer
-1,40,2 2-byte unsigned integer
-1,40,2,-1 2-byte signed integer
-1,40,4 4-byte integer

 メモ

  • FreeBSD上で Linux エミュレーションによるGrADSを使用する場合, 整数型データを正しく表示できなかった (2001-04-21 時点の記述.以後,FreeBSDでの動作は未確認)

 将来予測・過去再現実験の利用のために

 options 365_day_calendar

数値モデルの長期積分計算では, 日常的に用いる日付(西暦表示)とは異なる年月日表示となる事もある, 温暖化予測のスピンアップ時には,便宜的に 計算開始からの年数を year number としてあててある.

そのような計算期間では,閏年 (leap year) がなく, 1年間を365日固定で設定している 事がある. そんなときには,options 365_day_calendar を指定.

色について

  GrADSの標準カラーについて

レインボーカラーの場合,

 9 14 4 11 5 13 3 10 7 12 8 2 6

の順.白(無地)は0,黒(塗りつぶし)は1.白黒表示では9が一番薄い色.

 自分でカラー設定 (set rgb)

基本の書式は以下の通り:

 set rgb  設定する色番号    R   G   B

ここで,R, G, B は Red, Green, Blue の色の強さを256諧調(0 - 255) で指定する.設定例は rgbset.gs を参照 ("light yellow to dark red" とか "light green to dark green" など,6種).

RGBの数値から設定できる色見本は,Web 上に多数転がっているので,各自で参照.

メモ

  • 私見だが,標準設定のレインボーカラーは,出来る限り使わない方が良い. 研究者各自が手元用資料や quick view で使う分には個人の自由だが, 他者が見る資料(報告書・学術論文・プレゼンテーションの図)で使うのは適切でないだろう. 特に,国際学会などで口頭発表する場合には,ことさら色表現には気をつかうべき. 自分が損をする可能性があるので.理由は以下の通り:
    • 色による塗り分けだけで作図してある場合, 平均的な色覚とは異なるタイプの色覚を持つ人(いわゆる色覚障害をもつ人)が判読しにくい. 口頭発表のように発表時間が短い場合には, スライドを見せる時間が限定されるため,特に判読が難しいと思われる. 等値線と数値ラベルが描かれていたとしても, 時間の短さ & 小さすぎる数値ラベル (GrADS標準の数値ラベル・軸ラベルは,他の作図ツールと比べても特にサイズが小さい)のため, やはり判読困難
    • 先天性の色覚障害の割合は男性の方が高い (日本人の場合,L, M錐体に障害を持つ割合は,男性: 約5%,女性: 1%未満; 参考: 篠田・藤枝 (共著),2007, 色彩工学入門 p.54,森北出版). 学術研究分野は,(少なくとも現時点では)男性の割合が高い. つまり,不適切な色分布で作図すると, 自分の研究成果がある一定割合の人には正確に判読されない可能性がある. これは,講演の聴衆・論文などの読み手が不利益を被るのはもちろんのこと, 自分の研究成果をより多くの人に伝えることが出来ないことを意味する
    • 上記事柄に関連するが, 民族・人種によっては,男性の先天的色覚障害の割合がさらに高くなる場合がある (Light and Bartlein, 2004, EOS p.385 - 391)
    • レインボーカラーは,赤・橙・黄・緑・青・紫へと段階的に変化するが, 色覚障害をもつ人には,これらの色の段階的な変化を読み取りにくい
    • 備考: L, M錐体異常が発現する割合が男性の方で高いのは, これら錐体の遺伝子が性染色体のX染色体にあるため. 性染色体は,男性が XY,女性がXX. 女性の場合,片方のX染色体に異常があっても,もう片方に異常が無ければ 色覚障害は発現しない
  • 自分の研究において,「頻繁に作図する絵」というものがあるはず.例えば...
    • 作図の空間規模(範囲)はどのくらいか
    • 水平分布図か鉛直断面図か?
    • 何をプロットするのか?(気象要素の種類,生データなのか偏差データなのか,etc.)
    • ... とにかく,これらに適合する「自分用色見本」を作っておこう.その方が何かと楽だ

ctl & gs ファイルのサンプル

 CTL00 (シンプルな例)

自分用の ctl ファイルのスケルトン. 客観解析データで使えるだろ. 状況に応じて,options に template を追加したりすればよい.

DSET /work1/hayasaki/JRA/bin/198902.z.bin
UNDEF 9.999E+20
options yrev big_endian
TITLE Geopotential height on Feb 1989
*
XDEF 288 LINEAR   0.0 1.25
YDEF 145 LINEAR -90.0 1.25
ZDEF 12 LEVELS 1000 925 850 700 600 500 400 300 250 200 150 100
TDEF 1 LINEAR 00Z01Feb1989 6HR
*
VARS 1
hgt 12 0 geopotential height
ENDVARS
  • 私の個人ルールのひとつとして,「バイナリデータは全て big endian 形式とする」 がある.そのため,CTL00 でも,options でエンディアン固定. byteswap は混乱の元なので使用しない.
  • UNDEF は,余程の例外的事情がない限り, 9.999E+20 で固定. 自分が研究で使う限りでは,上記の値が有効な数値データとなる状況は ほぼ皆無である. これは JRA25/JCDAS のGRIBファイルの undefined value のデフォルト値. 場合によって undef の値をコロコロ変更するのは,またもや混乱の原因となる. 自分ルールを明確にしておこう
  • 上記では,緯度方向のデフォルトが NP から SPになってる(yrev). GRIB1 のデフォルトなので,ずっとそうしてきた. しかし,GRIB2 のデフォルトが SP から NP である. 近日中に自分のデフォルトも SP から NP 向きに変更予定. 自分が使ってる球関数展開プログラムでも,SP から NP向きの方が楽だし.

 GS00

Under construction

 気候値の作成

monthly mean data があるとして,その月別平年値(気候値)を作る場合. See also 気候値(長期平均値.目安:30年間)の作成.

set t 1 12
define clim=ave(z,t+0, t=360,1yr)
modify clim seasonal
set time Mar1995
d z-clim
d c-d

もう少し詳細な解説は,GrADSによる気候値作成 を参照.

設定メモ

 管理者による修正

ウィンドウ問題(GrADSの絵が消える問題)

GrADS のウィンドウに他のウィンドウが重なると絵が消えてしまう問題を 解決するための設定追加. /etc/X11/xorg.conf の Screen セクションに,ある1行を追加.

Section "Screen"
  Identifier "Screen0"
  Device     "Videocard0"
  Monitor    "Monitor0"
  DefaultDepth     24
  Option    "BackingStore" "Yes"    ## Add this line
  SubSection "Display"
    Viewport   0 0
    Depth     24
  EndSubSection
EndSection

どこかの別の方のページに掲載してあったのだが... オリジナルの情報源を記録していなかった. 再検索してみたが,発見できず.なんでだろう? とにかく,私がオリジナル情報源でないことだけは明記しておく.

 一般ユーザによる修正

 標準カラー変更: rainbow カラーを使うのは止めよう!

「rainbow カラーからの決別」

個人の好みの問題なのは承知しているが... GrADS default のレインボーカラーは好きじゃない. 全範囲がレインボーカラーで塗りつぶされている図は, 注目すべきポイントを短時間(1-2秒程度の意)で絞りきれない.

See also:

学会などでの口頭発表は,時間が限定されている. スライドを表示できる時間は,1枚あたりせいぜい1分(目安). 短時間で自分の研究成果を聴衆に伝えたいのなら, 見るべきポイントが伝わりやすい図を作るべきである.

判読しやすい図の作成作業を効率的におこなうためには, 自分が頻繁に使う & 他人に伝わりやすい カラーパターンを default に設定すればよい. 作業図を発表直前に作りなおすのは時間が勿体ない.

GrADS 起動時にカラーパターンを変更しておく. rgbset2.gs (NCEP/CPC の anonymous FTP のGrADS関連ディレクトリに存在. かなり以前に取得したので,取得元がどこか自分でも忘れていた) を自分用にほんの少しだけ改変して rgbset3.gs として保存. 自分用GrADSの起動時に run させるようにした. default カラーパターンは rgbset2.gs と同じ. dark blue 〜 light blue 〜 light grey 〜 light yellow 〜 dark red とした. 私の研究では,様々な物理変数の positive/negative anomaly を描くことが多いので, default はこれでいいだろう.

rgbset2.gs からの修正点は,grey scale の追加部分. 5段階分割したが,モノクロ表示の際には1段階づつとばすくらいしないと, 濃淡の区別は困難. というか,モノクロ表示では濃い・薄いの2段階だけにするのが無難だろう. あまり細かい区分は,口頭発表の際に説明が面倒になるだけ.

(中略)
'set rgb 98 0 0 0'
'set rgb 99 255 255 255'
'set rbcols 49 48 47 46 45 44 43 42 41 81 21 22 23 24 25 26 27 28 29'
*
* light grey to dark grey
'set rgb 81 225 225 225'
'set rgb 83 175 175 175'
'set rgb 85 135 135 135'
'set rgb 87  95  95  95'
'set rgb 89  55  55  55'

後は,これを標準で実行するように「自分専用 GrADS 起動スクリプト」を作るだけ. 例えばこんなファイル(ファイル名: my_grads とする)を作って実行権限を付与, 自分用コマンドのサーチパス($HOME/bin/ 以下など)に置けばよい. もしも rgbset2.gs が無いなら, GrADS 本家のスクリプト置き場 から自分で持ってくればいい.

#!/bin/sh
#   last update: 2012-03-13
#   1st release: 2011-10-26
#   written by M. Hayasaki (Univ. Toyama, Japan)
GRADS_EXEC=/usr/local/grads/bin/grads
init_grads=/dev/shm/my_grads.gs
cat > ${init_grads} << EOF
'run rgbset2.gs'
*
'set rgb 98 0 0 0'
'set rgb 99 255 255 255'
'set rbcols 49 48 47 46 45 44 43 42 41 81 21 22 23 24 25 26 27 28 29'
*
* light grey to dark grey
'set rgb 81 225 225 225'
'set rgb 83 175 175 175'
'set rgb 85 135 135 135'
'set rgb 87  95  95  95'
'set rgb 89  55  55  55'
*
'set display color white'
'c'
EOF
$GRADS_EXEC -lc "run ${init_grads}"
if [ -f ${init_grads} ]; then \rm -f ${init_grads} ; fi

上記の例では,起動時に実行するGrADSコマンド類を記述した gs ファイルを RAM ディスク(/dev/shm)上に作成し,landscape mode にて起動しながら読み込む. 終了後は,作成した gs ファイルを RAM ディスク上から消去. 一時ファイルでなく,自分用の設定ファイルの一つとして恒久的ファイル扱いしてもよかろう.

さらに欲を言えば,カラー設定に限らず, 自分が頻繁におこなうデフォルトからの修正 (set なんとか on/off みたいなコマンド、いつもやってませんか?) も初期起動ファイルに書き込んでおくとよいだろう. 自分専用のフルカスタム GrADS を作っていくようで楽しめる. ただし,あまりに細かいことに拘るのは時間の無駄.ほどほどに.

カラー設定以外で私から一つだけ進める修正点は... x/y 軸のラベルフォントを大きくすること. Default のラベルフォントサイズが小さすぎて,プレゼンのスライドで示されても 作図範囲が全く判読できない場合が多い.

とにかく,色・ラベルサイズなどを含め, GrADS のデフォルト設定の多くはプレゼン用のスライドに向いてない事は忘れずに.

GrADS関連の外部リンク

変更履歴

GrADS関連情報(hysk) の更新履歴.
日付 変更内容
2015-06-20 釜江さんページ情報を追加.GRIB1/2 や NetCDF ファイルからの ctl 生成についてもリンクを張った
2011-10-26 設定メモ(ウィンドウ問題(GrADSの絵が消える問題) を追加
2011-10-12 サンプル (CTL00) を追加
2011-06-22 XHTML への移行,ひとまず終了.古いコンテンツやメモを一部移植
2010-01-11 wiki への移植開始
1999-01-21 HTML版 grads/ に存在したファイルのうち,最古のものの更新日.最初の作成日は不明