gradsスクリプトライブラリ
http://w.livedoor.jp/ykamae_grads-note/d/GrADS%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%A5%E9%A5%A4%A5%D6%A5%E9%A5%EA#content_3_23
2011年6月30日木曜日
gradsに文字を表示する
gradsに文字を表示する、タイトルの位置をずらす
別のやり方として、
文字中に「\」を使うことで、改行することもできる。
東北大のHPより
文字
大きさと幅を指定して文字列を描画する
set strsiz 幅 [高さ]以下に、座標(3,3)に幅0.1、高さ0.15の大きさの文字で「hello」と描画する例を示します。
ga-> set strsiz 0.1 0.15 ga-> draw string 3 3 hello
色、座標の基準、太さ、回転角を指定して文字列を描画する
set string 色番号 [座標の基準 [太さ [回転角]]]座標の基準とは、drawの際に指定する座標が、文字列のどの位置を基準にするかを表します。以下に指定のための文字列を示します。(GrADs本家より引用)
tl tc tr tl - top left +-------------+--------------+ tc - center top | | tr - right top l + + c + r etc. | | +-------------+--------------+ bl bc brたとえば"c"の場合、drawで指定した座標を中心に文字列が配置されます。回転角(度)を指定した場合は、座標の基準を中心に時計回りに回転します。
- (例)色番号2(赤)を指定
ga-> set string 2
- (例)色番号2(赤)、座標の基準center、太さ0.1を指定
ga-> set string 2 c 0.1
- (例)色番号2(赤)、座標の基準center、太さ0.1、回転角90度を指定
ga-> set string 2 c 0.1 90
- 色番号一覧
タイトルを書く
draw title This is Title.すると「This is Title.」が結果画像の上に記入される。(事前に「d var」など、何か描いておく必要がある。)
別のやり方として、
set strsiz 0.2 0.25 set string 1 c 6 draw string 5.5 8.05 This is Title.でも、似たように書くことが出来る。(事前に「d var」など、何か描いておく必要はない。)
文字中に「\」を使うことで、改行することもできる。
draw title This is\Title.とすれば、以下のように出る。
This is Title.
東北大のHPより
2011年6月28日火曜日
whaleを動かす時のrun.jcfの変更
whaleを動かす時のrun.jcfの変更
#!/bin/sh
# @ class = P16
# @ job_type = parallel
# @ total_tasks = 16
# @ rset = rset_mcm_affinity
# @ output = log.out
# @ error = log.err
# @ notify_user = yoshimura-a@aori.u-tokyo.ac.jp
# @ notification = complete
# @ environment = COPY_ALL
# @ queue
export MEMORY_AFFINITY=MCM
sh fcst.sh
#!/bin/sh
# @ class = P16
# @ job_type = parallel
# @ total_tasks = 16
# @ rset = rset_mcm_affinity
# @ output = log.out
# @ error = log.err
# @ notify_user = yoshimura-a@aori.u-tokyo.ac.jp
# @ notification = complete
# @ environment = COPY_ALL
# @ queue
export MEMORY_AFFINITY=MCM
sh fcst.sh
2011年6月24日金曜日
NHMの更新
NHMの更新☆
気象庁から最新版のNHMをゲット
コンパイル前の準備
whaleでは、makeをgmakeとして設定
確認方法 which makeで確認
最新のNHMのある場所
home/kyoyo/jmamnhm201005
home/yoshi/Nhmの中に NHM1.2として展開
home/yoshi/NHM1.2/p570a/compile.cshをp570で実行
$compile.csh
($;コマンドライン)
を打ちこむ。
このNHMは最適化by mとy先輩のものも考慮済み
6回 yes
ただし、SsやConstはNHM1.1のものをコピーして使いましょう☆
ありがとう。 よくできる同僚に感謝。
気象庁から最新版のNHMをゲット
コンパイル前の準備
whaleでは、makeをgmakeとして設定
確認方法 which makeで確認
最新のNHMのある場所
home/kyoyo/jmamnhm201005
home/yoshi/Nhmの中に NHM1.2として展開
home/yoshi/NHM1.2/p570a/compile.cshをp570で実行
$compile.csh
($;コマンドライン)
を打ちこむ。
このNHMは最適化by mとy先輩のものも考慮済み
6回 yes
ただし、SsやConstはNHM1.1のものをコピーして使いましょう☆
ありがとう。 よくできる同僚に感謝。
2011年6月22日水曜日
vis5D
http://blog.livedoor.jp/rootan2007/archives/51139501.html
http://www.gfd-dennou.org/arch/gtool4/gt4f90io/gt4f90io_current/INSTALL_netcdf.htm
http://ssrs.dpri.kyoto-u.ac.jp/~hp/members.html
http://www.gfd-dennou.org/arch/gtool4/gt4f90io/gt4f90io_current/INSTALL_netcdf.htm
http://ssrs.dpri.kyoto-u.ac.jp/~hp/members.html
.tar .gzの解答方法 @whale
.tar .gz の解答方法 @whale
gzip -d filename.gz
tar xvf filename.tar
だよね~
http://uguisu.skr.jp/Windows/tar.html
参考にしてね
gzip -d filename.gz
tar xvf filename.tar
だよね~
http://uguisu.skr.jp/Windows/tar.html
参考にしてね
圧縮書庫形式 | 拡張子 | 解凍コマンド |
TAR 形式+GZIP 形式 | ~.tgz, ~.tar.gz | gzip -dc filename | tar xvf - GNU tarが使える時(zオプションを使える時) tar zxvf filename |
LZH 形式 | ~.lzh | lha e filename もしくは lha x filename |
ZIP 形式 | ~.zip | unzip filename |
bzip2(BZ2) 形式 | ~.bz2 | bzip2 -dc filename もしくは bunzip2 -c filename |
TAR.BZ2(TBZ) 形式 | ~.tar.bz2, ~.tbz | bzip2 -dc filename | tar xvf - y/z/I オプションを使えるtarコマンドを持っている時 tar yxvf filename tar zxvf filename tar Ixvf filename |
tar.bz2、tbz2形式 | ~.tar.bz2、tbz2 | tar -jxf filename bzip2 -dc filename | tar xvf - |
TAR.Z(TAZ) 形式 | ~.tar.Z | tar zxvf filename もしくは uncompress -c filename | tar xvf - |
gzip(GZ) 形式 | ~.gz | gunzip filename もしくは gzip -dc filename |
compress(Z) 形式 | ~.Z | uncompress filename もしくは compress -d filename |
TAR 形式 | ~.tar | tar xvf filename |
ARJ 形式 | ~.arj | unarj filename |
デジタル台風から画像を取ってくる
デジタル台風から画像をとってくる
画像取得シェルスクリプト
#!usr/bin/sh
#images 7day change every 1h or 3h (d7h2)
#by yoshiyoshi
#start time of image year
echo "write the start time of image. u have to write 0 exp; 1987 87 08 26 00"
echo "year"
read y
echo "yy write the 19yy or 20yy "
read yy
echo "month"
read m
echo "day"
read d
echo "hour"
read h
time=$y$m$d$h
echo "$time image"
echo "$y year $m month $d day $h hour"
mkdir data
mkdir data/$time
#satellite check GMS3orGMS4orGMS5#
#GMS3 step hour s=3
##GMS4 or 5 GOE9 step hour s=1
#time 1989120400 GMS3 to GMS4
#time 1995042800 GMS4 to GMS5
#time 2003052200 GMS5 to GOE9
#time 2005062800 GOE9 to MTS1
#time 1989120400 GMS3 to GMS4
sate=GMS3
nsate=GMS4
z=1989
n=12
e=4
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -gt z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 1995042800 GMS4 to GMS5
#sate=GMS4
nsate=GMS5
z=1995
n=04
e=28
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 2003052200 GMS5 to GOE9
#sate=GMS5
nsate=GOE9
z=2003
n=05
e=22
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 2005062800 GOE9 to MTS1
#sate=GOE9
nsate=MTS1
z=2005
n=06
e=28
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#check time step hour=1 or 3
echo "$sate"
if [ sate -eq GMS3 ]
then
s=3
else
s=1
fi
echo "timestep $s hour"
#if sate chage is no working, write yourself
#sate=GMS5
#######################################################
##########day =30 or 31 or 29 & image get#############
#######################################################
case "$m" in
"04" | 06 | 09 | 11 ) for i in `seq 1 7`
#month of 30 day #make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 30 ] #when d<=30
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
fi
#####finish################
##########time step##
else
#next month >30
m=`expr $m + 1`
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#get 0
#n-day
d=`expr $d - 30`
echo "n-month $m"
echo "n-day $d"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
fi
done
;;
"01" | "03" | "05" | "07" | "08" | "10" | "12" ) for i in `seq 0 7`
#month of 31 day#make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 31 ] #when d<=31
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
else
#########d>31 next month
m=`expr $m + 1`
###if 12 to 1 next year
if [ $m -le 11 ]
then
echo ""
else
#when y>12
y=`expr $y + 1`
yy=`expr $yy + 1`
echo "next year $y"
m=1
fi
if [ $yy -le 99 ]
then
echo ""
else
yy=00
fi
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo "0get"
else
echo ""
fi
#get 0
#get 0
echo "new year $y"
d=`expr $d - 31`
echo "new month $m"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
echo "new day $d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
fi
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo "0get"
else
echo ""
fi
#get 0
done
;;
02 ) for i in `seq 1 7`
#month of 29 day #make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 29 ] #when d<=29
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
else
#when d>29 next month
m=`expr $m + 1`
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#get 0
d=`expr $d - 29`
echo "n-month $m"
echo "n-day $d"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#d get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#d get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
fi
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
done
;;
esac
画像取得シェルスクリプト
#!usr/bin/sh
#images 7day change every 1h or 3h (d7h2)
#by yoshiyoshi
#start time of image year
echo "write the start time of image. u have to write 0 exp; 1987 87 08 26 00"
echo "year"
read y
echo "yy write the 19yy or 20yy "
read yy
echo "month"
read m
echo "day"
read d
echo "hour"
read h
time=$y$m$d$h
echo "$time image"
echo "$y year $m month $d day $h hour"
mkdir data
mkdir data/$time
#satellite check GMS3orGMS4orGMS5#
#GMS3 step hour s=3
##GMS4 or 5 GOE9 step hour s=1
#time 1989120400 GMS3 to GMS4
#time 1995042800 GMS4 to GMS5
#time 2003052200 GMS5 to GOE9
#time 2005062800 GOE9 to MTS1
#time 1989120400 GMS3 to GMS4
sate=GMS3
nsate=GMS4
z=1989
n=12
e=4
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -gt z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 1995042800 GMS4 to GMS5
#sate=GMS4
nsate=GMS5
z=1995
n=04
e=28
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 2003052200 GMS5 to GOE9
#sate=GMS5
nsate=GOE9
z=2003
n=05
e=22
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#time 2005062800 GOE9 to MTS1
#sate=GOE9
nsate=MTS1
z=2005
n=06
e=28
if [ y -gt z ]
#>=z
then
if [ m -gt n ]
then
if [ d -gt e ]
then
sate=$nsate
else
echo ""
fi
else
echo ""
fi
else
echo ""
fi
if [ y -ge z ]
#>z
then
sate=$nsate
else
echo ""
fi
#check time step hour=1 or 3
echo "$sate"
if [ sate -eq GMS3 ]
then
s=3
else
s=1
fi
echo "timestep $s hour"
#if sate chage is no working, write yourself
#sate=GMS5
#######################################################
##########day =30 or 31 or 29 & image get#############
#######################################################
case "$m" in
"04" | 06 | 09 | 11 ) for i in `seq 1 7`
#month of 30 day #make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 30 ] #when d<=30
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
fi
#####finish################
##########time step##
else
#next month >30
m=`expr $m + 1`
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#get 0
#n-day
d=`expr $d - 30`
echo "n-month $m"
echo "n-day $d"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
fi
done
;;
"01" | "03" | "05" | "07" | "08" | "10" | "12" ) for i in `seq 0 7`
#month of 31 day#make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 31 ] #when d<=31
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
else
#########d>31 next month
m=`expr $m + 1`
###if 12 to 1 next year
if [ $m -le 11 ]
then
echo ""
else
#when y>12
y=`expr $y + 1`
yy=`expr $yy + 1`
echo "next year $y"
m=1
fi
if [ $yy -le 99 ]
then
echo ""
else
yy=00
fi
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo "0get"
else
echo ""
fi
#get 0
#get 0
echo "new year $y"
d=`expr $d - 31`
echo "new month $m"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
echo "new day $d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo "0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
fi
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo "0get"
else
echo ""
fi
#get 0
done
;;
02 ) for i in `seq 1 7`
#month of 29 day #make 7 image
do
echo "year $y"
echo "month $m"
echo "day $d"
echo "$i"
if [ $d -le 29 ] #when d<=29
then
echo ""
echo "$d"
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#h get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
else
#when d>29 next month
m=`expr $m + 1`
#month get 0
if [ $m -le 9 ]
then
m=0$m
else
echo ""
fi
#get 0
d=`expr $d - 29`
echo "n-month $m"
echo "n-day $d"
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"next month"
else
echo ""
fi
#get 0
##start###########
##time step######
if [ $s -eq 3 ]
#s=3
then
for j in `seq 1 7`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#d get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
else
#s=1
for j in `seq 1 23`
do
echo "$h"
wget http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/$y/512x512/$sate$yy$m$d$h.globe.1.jpg -O data/$time/$sate$yy$m$d$h.globe.1.jpg #get image and save image at file
h=`expr $h + $s`
#d get 0
if [ $h -le 9 ]
then
h=0$h
echo"0get"
else
echo ""
fi
#get 0
done
h=00
fi
#####finish################
##########time step##
fi
d=`expr $d + 1`
#d get 0
if [ $d -le 9 ]
then
d=0$d
echo"0get"
else
echo ""
fi
#get 0
done
;;
esac
2011年6月15日水曜日
NHM リスタート
NHM リスタート
設定は主に二箇所する必要があります。
○初めにusers guideのp.130、p131のimt_rs_out、imt_rs_inです。
いろいろ試行錯誤したのですが、今のところうまくいったのは、両方とも212にすることです。
下二桁には意味がありません。
最初の計算はimt_rs_out=212,imt_rs_in=-1と書いてください。
二回目以降はimt_rs_in=212,imt_rs_in=212です。
istr_rs_outでリスタートファイルの出力間隔を書いてください。
リスタートファイルの書き出しはかなり時間がかかりますので、あまり小さくしない方がよいと思います。
sw_rest_itはデフォルトで-1ですが、ディスクに余裕があるならば、1にすることをおすすめします。
リスタートファイルに出力スタップが付くのでわかりやすいです。
リスタートファイルはMPIのプロセスの数だけ、実行ディレクトリに出力されてきます。
手を触れないようにしてください。
○二箇所目はp.118のitstとitendです。
一回目の計算を100ステップまでやるならitst=1,itend=100です。
二回目の計算を200ステップまでやるならitst=100,itend=200というように書きます。
二回目以降も同じですが、itstとitendを書き直す必要があり、
同一のパラメータファイルを使いまわせないので、ちょっと面倒です。
あと一般的な注意としてリスタートの前後でMPIのプロセス数を変えないようにする必要があります。
☆whaleでは、一回目の計算でitendもいじらないで そのまま計算させてok。ただし、imt_rsは直して!
もちろん、リスタートかけるときは、fcst.shをコピーして、新しいfcst2.shでも作りましょう。
fcst2の中身でitstは、data1/yoshi/計算結果のファイル におけるlog.fcst・・・をみて、itの値をfcst2.shのimt_rsのところに代入してね。
そのあと、imt_rsの値をリスタートように212を代入してください。
仕上げとして、data1/yoshi/計算結果のファイルはfcst.sh の中のrm *nusdasaで消されてしまうので、計算結果は移動させてあげてね。消えてしまいます。
これでリスタートができるようになった。
☆whaleでは、一回目の計算でitendもいじらないで そのまま計算させてok。ただし、imt_rsは直して!
もちろん、リスタートかけるときは、fcst.shをコピーして、新しいfcst2.shでも作りましょう。
fcst2の中身でitstは、data1/yoshi/計算結果のファイル におけるlog.fcst・・・をみて、itの値をfcst2.shのimt_rsのところに代入してね。
そのあと、imt_rsの値をリスタートように212を代入してください。
仕上げとして、data1/yoshi/計算結果のファイルはfcst.sh の中のrm *nusdasaで消されてしまうので、計算結果は移動させてあげてね。消えてしまいます。
これでリスタートができるようになった。
NHM JRA25 データを取ってくる シェルスクリプト
NHMで計算する際に、
JRA25 データを取ってくる シェルスクリプト
get_jra_month2.sh
yoshi@p570a ~/Nhm/NHM1.1/Nhm/Tools/grib2nus/get_jra_month2.sh
#! /bin/tcsh -f
#type yyyymmddhhhh start and end time
: ${start:=199112240000}
: ${end:=199112310000}
year=`echo ${start} | cut -c 1-4`
month=`echo ${start} | cut -c 5-6`
day=`echo ${start} | cut -c 7-8`
hour=`echo ${start} |cut -c 9-10`
h=00
echo start time ${year} ${month} ${day} ${hour} ${h}
echo end time ${end}
: ${time:=${start}}
i=0
while [ ${time} -le ${end} ]
do
#echo $hour
time=${year}${month}${day}${hour}${h}
#echo yoshiyoshi
echo time $time
echo "$year $month $day $hour $h" > TIMECARD
sh get_jra.sh
sh jra2nus.sh
sleep 2
i=`expr $i + 1`
timestep=6
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
timestep=12
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
timestep=12
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
echo ${time}
done
JRA25 データを取ってくる シェルスクリプト
get_jra_month2.sh
yoshi@p570a ~/Nhm/NHM1.1/Nhm/Tools/grib2nus/get_jra_month2.sh
#! /bin/tcsh -f
#type yyyymmddhhhh start and end time
: ${start:=199112240000}
: ${end:=199112310000}
year=`echo ${start} | cut -c 1-4`
month=`echo ${start} | cut -c 5-6`
day=`echo ${start} | cut -c 7-8`
hour=`echo ${start} |cut -c 9-10`
h=00
echo start time ${year} ${month} ${day} ${hour} ${h}
echo end time ${end}
: ${time:=${start}}
i=0
while [ ${time} -le ${end} ]
do
#echo $hour
time=${year}${month}${day}${hour}${h}
#echo yoshiyoshi
echo time $time
echo "$year $month $day $hour $h" > TIMECARD
sh get_jra.sh
sh jra2nus.sh
sleep 2
i=`expr $i + 1`
timestep=6
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
timestep=12
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
timestep=12
hour=`expr $hour + $timestep`
hour=`echo ${hour} | awk '{printf("%02d",$1)}'`
if [ $hour -eq 24 ]; then
hour=00
# day=`expr $day + 1`
day=`echo ${day} | awk '{printf("%02d",$1+1)}'`
if [ $day -ge 32 ];then
day=01
# month=`expr $month + 1`
month=`echo ${month} | awk '{printf("%02d",$1+1)}'`
if [ $month -ge 13 ];then
month=01
year=`expr $year + 1`
fi
fi
fi
time=${year}${month}${day}${hour}${h}
echo ${time}
done
grads コントロールファイル ctl
grads コントロールファイル ctl
基本的なctlファイルの形式は以下の通り。
上記例の各項目と意味(太字が記述部と対応)
・変数の表し方
基本的に、
などである。これらは、
としたときの、
kpds5,kpds6,kpds7、
もしくは
としたときのkpdsによって指定されている値である。(実際に確認してみてください)
それぞれ
などを表している。
このユニットによって、それぞれの変数が個別に定義されている。
gribmapはこのユニットを読み取り、idxファイルを作成しているようである。
そこで、gribmapでidxファイルを作成するための、任意の変数データを用いたctlファイルを作る場合は、
などによって、求める変数と対応するユニットの値をctlファイルに記述すればよい。
(なお、高度データが複数ある場合はkpds7は0で良い)
任意の変数情報を抜き出したい時の方法は、
2.2 wgirbを用いた方法
を参照のこと。
ctlファイルの変数の記述例
基本的なctlファイルの形式は以下の通り。
dset fnl_040901_00_00 index fnl_040901_00_00.idx undef 9.999E+20 options yrev ydef 181 linear -90.000000 1 xdef 360 linear 0.000000 1.000000 tdef 1 linear 00Z01sep2004 6hr zdef 26 levels 1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 30 20 10 vars 1 HGTprs 26 7,100,0 ** Geopotential height [gpm] ENDVARS |
上記例の各項目と意味(太字が記述部と対応)
dset : 入力するGRIBデータ名 index : gribmapで出力するidxファイル名 (任意に設定) undef : 欠測値 (この値を無視する) options yrev: データが北から順に格納されている場合に必要。 xdef,ydef: 水平方向の格子データ。格子数と格子間隔 y方向には -90度(南緯90度)から1度ごとに181格子(つまり北緯90度まで)、 x方向には 0度(東経0度)から1度ごとに360格子、の意味 tdef : 初期時刻と時間の数 2004年9月1日00時から6時間毎のデータで1つの時間分、の意味 zdef : 鉛直方向の格子数 26個の鉛直成分があり、内容は1000~10(hPa高度のデータ)の意味 vars : 扱う変数の数 この例ではHGTprs 1つのみ HGTprs : 変数の名前など。詳細は後述 ENDVARS : ctlファイルの終わりを意味。これより下には何も書かない。 |
基本的に、
[変数の表現] [データの高度数] [ユニット] [変数の説明] |
で構成され、例えば例の様に26個の鉛直成分を持つジオポテンシャルハイトの場合は
abc 26 99 Geopotential
等のように、[データの高度数]以外は比較的自由に記述できる。
[変数の表現]はアルファベットで始まり、アルファベットか数字で12文字以内。
[データの高度数]は地上データなど気圧で表せない場合は 0 とする。
[ユニット]は通常は0か99にしておけばよい※
[変数の説明]は40文字以内で自由に記述可能。
※ただし、[ユニット]に関して、gribmapでidxファイルを作成する場合は、
このユニット情報を読み取り、元データのGRIBデータと対応させてidxファイルを作成するため、
[ユニット]を正確に記述する必要がある。以下ユニットについて説明した。
GRIBデータにおける[ユニット]は基本的に3つの部分からなる。例えば、
abc 26 99 Geopotential
等のように、[データの高度数]以外は比較的自由に記述できる。
[変数の表現]はアルファベットで始まり、アルファベットか数字で12文字以内。
[データの高度数]は地上データなど気圧で表せない場合は 0 とする。
[ユニット]は通常は0か99にしておけばよい※
[変数の説明]は40文字以内で自由に記述可能。
※ただし、[ユニット]に関して、gribmapでidxファイルを作成する場合は、
このユニット情報を読み取り、元データのGRIBデータと対応させてidxファイルを作成するため、
[ユニット]を正確に記述する必要がある。以下ユニットについて説明した。
GRIBデータにおける[ユニット]は基本的に3つの部分からなる。例えば、
データの種類 | ユニット |
850hPaジオポテンシャルハイト | 7,100,850 |
海面更正気圧 | 2,102,0 |
地上2m気温 | 11,105,2 |
>wgrib fnl_040901_00_00 |
としたときの、
kpds5,kpds6,kpds7、
もしくは
>wgrib fnl_040901_00_00 -v |
としたときのkpdsによって指定されている値である。(実際に確認してみてください)
それぞれ
kpds5 | 表記 | 説明 |
1 | PRES | 圧力[Pa] |
11 | HGT | ジオポテンシャルハイト[gpm] |
33 | UGRD | 温度[K] |
34 | VGRD | 風の東西方向成分[m/s] |
41 | ABSV | 風の南北方向成分[m/s] |
52 | RH | 相対湿度[%] |
kpds6 : 高度毎のデータがある場合は100、そうでない場合は様々な値 |
kpds7 : 高度やその変数の特徴的な数 |
などを表している。
このユニットによって、それぞれの変数が個別に定義されている。
gribmapはこのユニットを読み取り、idxファイルを作成しているようである。
そこで、gribmapでidxファイルを作成するための、任意の変数データを用いたctlファイルを作る場合は、
wgrib -v (GRIBデータ) |
(なお、高度データが複数ある場合はkpds7は0で良い)
任意の変数情報を抜き出したい時の方法は、
2.2 wgirbを用いた方法
を参照のこと。
ctlファイルの変数の記述例
・・・ ・・・ vars 5 pslv 0 2,102,0 Pressure reduced to MSL [Pa] rh 21 52,100,0 Relative humidity [%] hgt 26 7,100,0 Geopotential height [gpm] tmpsfc 0 11,1,0 surface Temp. [K] v3658 0 34,103,3658 3658m v-wind[m/s] ENDVARS |
登録:
投稿 (Atom)