コンピュータを研究に使うための私的メモ。Python、Fortran、Ubuntu、etc...


ctlファイルの例

**

**

ctlファイルの構造

データファイル

データファイル名、インデックスファイル名(gribの場合)、ファイルの種類(gribの場合)が必要。
  • データファイル名のパス
相対パスか絶対パスで指定する。^で始めると相対パスであることを示す。相対パスで指定した場合はGrADSを起動したときのカレントディレクトリからのパスで解釈されるのでctlファイルと同じディレクトリでGrADSを起動しないといけない。
dset ^test.bin                                相対パスの場合
dset /home/hoge/test.bin        絶対パスの場合

欠損値

欠損値を数値で指定。必ず指定しなければならない。
undef 9.999e+20

格子点・時間の情報

xdef
x方向もしくは経度方向の次元の設定。等間隔で格子情報が格納されている場合はlinearで特定の値で指定するときはlevelsで記述する。
xdef 格子点数 linear 開始緯度 格子間隔
xdef 格子点数 levels level1 level2 ...

xdef 144 linear 0.000000 2.500000       <---東経0度から2.5度間隔で144格子
xdef 12 levels 0 30 60 90 120 150 180 210 240 270 300 330  <---指定した経度で12点
ydef
y方向もしくは緯度方向の次元の設定。linearまたはlevelsで指定。gaussianも設定できるらしい。
zdef
tdef
edef
pdef

変数名の記述

変数名(GrADSの描画での変数名)とその鉛直レベルを記述する。ユニットの情報はgrib形式を読む際に必要なのでgrib2ctlやg2ctlで作るほうがいい。自分で書く場合は各種ドキュメントを参照。バイナリ形式なら意味はないので適当な値(99など)にしておく。地表気圧など鉛直レベルがない変数の鉛直レベルは0にする。変数は格納されている順に記述していく。
vars 変数の種類数
変数1 鉛直レベル ユニット 変数1の説明
変数2 鉛直レベル ユニット 変数2の説明
変数2 鉛直レベル ユニット 変数2の説明
…
endvars

vars 2
uwnd 17 99 ** zonal wind
vwnd 17 99 ** meridional wind
sfcpres 0 99 ** surface pressure 
endvars

複数ファイルを1つのctlファイルで扱う。

連続した時系列が複数ファイルに分かれている場合

ctlファイルのオプションにtemplateオプションを付け加えれば複数のデータファイルを1つのctlファイル、idxファイルで扱える。データセットを年月日や時間の分かる名前にする。例えば2010年8月のデータなら"pgb.201008"、1993年7月21日のデータなら"21jul93.dat"などとする。ctlファイルのdsetの項目で年月日や時間の部分を以下のような変数に変えてかく。詳細は GrADS本家のページを参照。
%y44桁の年
%m22桁の月
%mc3文字の月
%d22桁の日付
ファイル名が"pgb.201008"、"pgb.201007"であれば"pgb.%y4%m2"となり、"21jul93.dat"、"25aug94.dat"等であれば "%d2%mc%y2.dat"となる。時系列情報tdefの初期値、時間間隔をデータセットに合わせて書けばOK。

例:1979-2010年の月平均データをまとめて読む
 dset ^pgb.anl.%y4%m2.avrg.grib
 index ^pgb.anl.avrg.grib.idx                    *---ここは適当に決めてgribmapすればよい。
 …
 options yrev template
 …
 tdef 384 linear jan1979 1mo                     *---1ヵ月ごとに1979年1月から12*32=384個のデータ

時系列が連続していない場合

例えば6,7月の連続したデータが数年分ある場合、上記の方法だと使わないデータまで用意しなければならず無駄が多い。またプログラムでの処理においても月毎に分けるのは都合が悪い。
この場合は少し変則的だがアンサンブルの次元を使う。すなわち時系列(例えば6月15日-9月15日)は同じデータが年毎に分かれているときは以下のようにctlファイルをつくればいい。
dset ^hgt500.%e.bin
options template
undef 9.9999e+20
title NCEP/NCAR Reanalysis daily pressure
xdef 49 linear 80.0 2.5
ydef 29 linear 0.0  2.5
zdef 1  levels 500
tdef 92 linear 15jun1974 1dy
edef 10 names 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
vars 1
hgt 1 0 ** geopotential height
endvars
描画するときは
ga-> set ens 2001
ga-> set time 01jul1974
で2001/7/1を指定できるし、年平均はアンサンブル平均を使って、
ga-> d ave(hgt, e=1, e=10)
とすればcalender dayにおける10年気候値を作成できる。

情報

管理人/副管理人のみ編集できます