MRRデータファイルからgrads用データファイルの作成手順
9/1'04修正
1/2’05 rewrite
1/9’05 add Grads_plot_gpv
5/27’5 rewrite
作業ディレクトリ:/export/raid2/koshida/MRR/data/prg/read_mrr2
(MRR設計アルゴリズムによるZ,Wの描画)
スクリプト:c_go (そのほかのスクリプト)
実行はerrorメッセージが多いので c_go >& o_err
プログラム:read_mrr2.run
インプットファイルの書式
・ *.MRRデータのディレクトリデータのありか
・ 開始日 integer(5) !日本時間で指定
・ 終了日 integer(5) !日本時間で指定
・ gradsのファイル名 !出力ファイル名
・ gradsのコントロールファイル名 !出力ファイル名
プログラムの機能
gradsのfileとして4つの変数(rr,lwc,dBZ,WW)を取り出す
gradsのコントロールファイルには、ファイル名と開始時間を書く必要がある。
Read_mrr2ではinput文内に記述する。時間はJSTで指定する。
JST: 0時から9時はGMTでは前日の15時から24時にあたるので前の日のファイルを参照する必要がある。
セグメント例外(5月21日を対象としたとき)
5月20日はあるが21日のデータがない。→ファイルがないときの設定エラー(修正済み)
注)標準出力file(o_out)でget_mrrのstatusが1のとき、fileなし⇒エラーを避けるため降雨なしと処理している。
このため「単にfileがない。Directoryが間違えている」という場合に降雨なしと判断する恐れがある。
時間断面図を描くスクリプト(gradsへの命令文)は
/export/raid2/koshida/MRR/data/prg/read_mrr2/GRADS
にあるtimeheight0601.gsなどを参考にする。
描画要素は9行目で変更する。
Z:についてのTH図「"d dBZ" 」
WについてのTH図「"d ww"」 参考:timeheight_d0402.gs
デフォルトは1日=1440分となっているので適宜、修正する。「"set t 1 1440"」が1日1440分を示す。
観測高度を修正したときは*.ctlファイルを修正する。
GRADS/c_gradsを実行することで1日分の時間高度断面図が得られる。
横軸を1日に固定してクイックルックで見るスクリプトを作ること(4/28’7)。
時間平均高度分布はc_avz
インプットファイルはave0402.gsを参考に適宜修正 詳細
gradsファイルの作成の計算をリサバで行う場合
ディレクトリ:/export/raid2/koshida/MRR/data/prg/read_mrr
ディレクトリ名はリザバとレインボウは共通
Mkmf90_v2を利用
モジュール名は大文字になるので、ファイル名を大文字にしておくこと!
(メモ)プログラムにend文がない場合、Fortran文とみなされず、正常更新がなされないので注意!
/export/home/rainbowE/mrr
リサバからはマウントする必要がある。
(/net/rainbow/export/home/rainbowE/mrr/public_html/MRR)
Gradsはrainbowにある
Rainbowのgsはリンク先が、少し古いのでgs510を使うこと
Reservoir では/opt/NSUG/bin/gsを利用すること。
スクリプト例
set gs2png = "/opt/NSUG/bin/gs -dBATCH -sDEVICE=png256 -r100 -sOutputFile="
set psfile = sj.ps
set pngfile = sj.png
set ERR = o_err
${gs2png}${pngfile} $psfile < inp.gs >& $ERR
あるレベル以下を表示しない
set black -50(下限値) 10(上限値)
10dbZ以下を書かないようにできる。
ディレクトリ: /export/raid2/koshida/MRR/data/prg/read_mrr2
2004年07月21日 (水) 21時21分07秒 JST
c_go*
deduce grads.file from MRR.data
request time should be wriiten in "input"
basically one JST day
CAUTION:grads file written in JST
c_pl*
perl script for malti excute 'c_go'
c_work*
perl script for malti excute 'c_grads'
read_mrr2/c_grads*
get grads picture by back ground
一般的な雨滴定数B=200、β=1.6を用いて平均的なZの分布を得る
Z=B・Rβであるので
dBZ=10logB+10βlogR
logB=log200=2.301
β=1.6であるので
R=10^((dBZ-23.01)/16)
gradsの表現では
時間、高度の設定が最初に必要?
define rz = pow(10, (dBZ-23.01)/16)
define rzave = ave(rz,t=1,t=1440)
平均にはそれなりの時間が必要である。
コマンドラインの入力文を*.gs に記述することでバックグラウンド作業ができる。
/export/raid2/koshida/MRR/data/prg/read_mrr2/GRADS
にデータファイル、コントロールファイルとともに記述。
解析時間数はデータファイルを作成したときの標準出力(o_out)に記述されている。
9行目:the number of line in out put file 1439 など
C_gradsにおいて指定期日の指示ファイルを実行するように選択し、実行する。
注意)grads-file, cntl-fileはread_mrr2のカレントに出力されている。
*.gsはカレントを参照しているので、ディレクトリ:GRADSで描画するならば、ファイルの移動やコピーが必要
同様に、
averz.gs
の日付・時間を変更することで平均的な鉛直雨量分布図を作成できる。
read_mrr2で作成したGRADSフォーマットデータを元に、時間高度断面図を作成する。
(日本語が使えるが、設定は手動なので確認程度)
paramtersにデータセット名をフルパスで記述する。
29高度であるので、0m〜5800m(200m間隔)の描画であるべきであるが、6000mまで描画したりする。5/12’6
5/16’6
mrr/ vertical/spectrum
inputデータに、解析降雨数、解析期間、出力ファイル名、出力ファイル名2(拡張用)、データディレクトリを記述。
とりあえず1時間分はプロットできる。
[go.mkinp.pl]を実行すると1日分のスペクトルを計算するためのインプットファイルができる。
あるいは[c_go]の中で実行する。1日分のスペクトルを計算した場合出力ファイル[out_eta.20041231]は約2M。
TODO 後解析では、解析時間を指定できるほうが便利。[go.mkinp.pl]は1日分のインプットを作る場合と
特定期間分作る場合を別にしたい。
plgraph
[c_go.x]の実行でスペクトル強度の鉛直分布は描画できる。
縦軸のメモリは、変更する必要がある。
入力ファイルに記述されたデータはすべてグラフ化するので、期間を指定するときはout_etaファイルで操作する。
6/6’6
中央平均を求めて、鉛直分布を描画する。
前時間のデータを抽出するので注意。
作業ディレクトリ:~koshida/mrr/spectrum/mkdata
perlスクリプト"go.mkinp.pl"により、1日144個の平均を作成するためのインプットファイルを作成。
Sarttimeに解析の日付を入れる。
Inputファイルで指定したファイルにデータ記録される。
C_goの実行により、out_eta.CCYYMMDDが作成される。
作業ディレクトリ:~koshida/mrr/spectrum/ plgraph
スクリプト"c_gox"により、日付を指定して実行1日144個の平均を作成するためのインプットファイルを作成。
Inputファイルで指定したファイルにデータ記録される。
作業ディレクトリ:~koshida/mrr/spectrum/ eta_ave
c_goに対象日を入れて実行。サブディレクトリに、平均値が記録される。
作業ディレクトリ:~koshida/mrr/ vertical/sample で作成したプログラムを:mrr/spectrum/pl_vertに記述。
とりあえずZだけなので。W、Wの分散も描きたい。