JTWCのbest_trackをgradsで表示する
台風再現実験において、best_trackデータをgradsで再現する gsスクリプトを作成
~/yoshi/best_trackで作成する
準備1
JTWCのサイトから、描きたいbest_trackデータを持ってくる
datファイルとしてファイルを作成する。
以下に中身を示す
bwp011992.datの中身
WP, 01, 1992010306, , BEST, 0, 33N, 1757E, 20
WP, 01, 1992010312, , BEST, 0, 32N, 1769E, 20
WP, 01, 1992010318, , BEST, 0, 35N, 1778E, 20
WP, 01, 1992010400, , BEST, 0, 40N, 1787E, 20
WP, 01, 1992010406, , BEST, 0, 46N, 1792E, 20
WP, 01, 1992010412, , BEST, 0, 50N, 1791E, 25
WP, 01, 1992010418, , BEST, 0, 53N, 1788E, 25
WP, 01, 1992010500, , BEST, 0, 56N, 1784E, 25
WP, 01, 1992010506, , BEST, 0, 59N, 1777E, 25
WP, 01, 1992010512, , BEST, 0, 60N, 1768E, 30
WP, 01, 1992010518, , BEST, 0, 61N, 1760E, 30
WP, 01, 1992010600, , BEST, 0, 62N, 1752E, 35
WP, 01, 1992010606, , BEST, 0, 62N, 1743E, 40
WP, 01, 1992010612, , BEST, 0, 62N, 1735E, 45
WP, 01, 1992010618, , BEST, 0, 60N, 1727E, 50
WP, 01, 1992010700, , BEST, 0, 59N, 1719E, 50
WP, 01, 1992010706, , BEST, 0, 58N, 1710E, 55
WP, 01, 1992010712, , BEST, 0, 58N, 1701E, 60
WP, 01, 1992010718, , BEST, 0, 58N, 1690E, 65
WP, 01, 1992010800, , BEST, 0, 59N, 1678E, 70
WP, 01, 1992010806, , BEST, 0, 60N, 1665E, 70
WP, 01, 1992010812, , BEST, 0, 60N, 1651E, 70
WP, 01, 1992010818, , BEST, 0, 60N, 1636E, 70
WP, 01, 1992010900, , BEST, 0, 62N, 1621E, 70
WP, 01, 1992010906, , BEST, 0, 65N, 1606E, 65
WP, 01, 1992010912, , BEST, 0, 69N, 1593E, 65
WP, 01, 1992010918, , BEST, 0, 73N, 1580E, 60
WP, 01, 1992011000, , BEST, 0, 77N, 1567E, 60
WP, 01, 1992011006, , BEST, 0, 83N, 1556E, 55
WP, 01, 1992011012, , BEST, 0, 89N, 1545E, 50
WP, 01, 1992011018, , BEST, 0, 93N, 1534E, 45
WP, 01, 1992011100, , BEST, 0, 95N, 1523E, 45
WP, 01, 1992011106, , BEST, 0, 96N, 1512E, 40
WP, 01, 1992011112, , BEST, 0, 97N, 1501E, 40
WP, 01, 1992011118, , BEST, 0, 98N, 1490E, 35
WP, 01, 1992011200, , BEST, 0, 99N, 1479E, 35
WP, 01, 1992011206, , BEST, 0, 101N, 1469E, 35
WP, 01, 1992011212, , BEST, 0, 104N, 1459E, 35
WP, 01, 1992011218, , BEST, 0, 109N, 1450E, 35
WP, 01, 1992011300, , BEST, 0, 116N, 1442E, 30
WP, 01, 1992011306, , BEST, 0, 122N, 1434E, 30
WP, 01, 1992011312, , BEST, 0, 128N, 1426E, 30
WP, 01, 1992011318, , BEST, 0, 135N, 1420E, 30
WP, 01, 1992011400, , BEST, 0, 143N, 1413E, 30
WP, 01, 1992011406, , BEST, 0, 152N, 1409E, 30
WP, 01, 1992011412, , BEST, 0, 164N, 1408E, 30
WP, 01, 1992011418, , BEST, 0, 179N, 1412E, 30
WP, 01, 1992011500, , BEST, 0, 202N, 1428E, 30
WP, 01, 1992011506, , BEST, 0, 230N, 1470E, 25
その次に、
・draw_track3_1.gsでreadするデータのファイル名を変える(今、作ったファイルを参照させる)
・whileループの繰り返し数を参照するデータの数に合わせる
準備完了
まずgradsを立ち上げる
$grads
ga>open gmap.ctl
ga>blankmap.gs
これで白地図が完成
(白地図が作れないときは、適当に地形データを作成、開いたものに記述する)
ga>draw_track3_1.gs
台風の強度別(Vmax)に色を変えてプロット
*vmax
vmax=subwrd(tmp2,9)
say vmax_ vmax
if (vmax>64)
say T vmax red
'set line 2'
endif
if (vmax<64 & vmax>48)
say STS vmax orange
'set line 8'
endif
if (vmax<48 & vmax>34)
say TS vmax green
'set line 3'
endif
if (vmax<34)
say TD vmax blue
'set line 4 '
endif
色を変えないバージョンはdraw_track2_1.gs
ちなみに、学会で使ったtwin TCsの表示させるプログラムはdraw4.gs
以下にdraw_track3_1.gsのプログラムを示す
'set display color white'
i=1
while (i<=49)
*set lon and lat
say
say n_hemisphere
tmp=read(bwp011992.dat)
tmp1=sublin(tmp,1)
tmp2=sublin(tmp,2)
nlon=subwrd(tmp2,8)
nlat=subwrd(tmp2,7)
say tmp2
say nlon
say nlat
nnlon=substr(nlon,1,4)
nnlon=nnlon*0.1
say nnlon_is_ nnlon
str_len=strlen(nlat)
say lat_of_length_ str_len
if (str_len<5)
nnlat=substr(nlat,1,2)
nnlat=nnlat*0.1
say nnlat_is_ nnlat
else
nnlat=substr(nlat,1,3)
nnlat=nnlat*0.1
say nnlat_is_ nnlat
endif
say
say lon_and_lat_is
say nnlon__ nnlon
say nnlat__ nnlat
*vmax
vmax=subwrd(tmp2,9)
say vmax_ vmax
if (vmax>64)
say T vmax red
'set line 2'
endif
if (vmax<64 & vmax>48)
say STS vmax orange
'set line 8'
endif
if (vmax<48 & vmax>34)
say TS vmax green
'set line 3'
endif
if (vmax<34)
say TD vmax blue
'set line 4 '
endif
sym = 3
siz = 0.15
'q w2xy 'nnlon' 'nnlat''
x = subwrd(result,3)
y = subwrd(result,6)
'draw mark 'sym' 'x' 'y' 'siz
i=i+1
endwhile
i=1
while (i<=44)
say
say s_hemisphere
tmp=read(bsh111992.dat)
tmp1=sublin(tmp,1)
tmp2=sublin(tmp,2)
slon=subwrd(tmp2,8)
slat=subwrd(tmp2,7)
say tmp2
say slon
say slat
sslon=substr(slon,1,4)
sslon=sslon*0.1
say sslon_is_ sslon
str_len=strlen(slat)
say lat_of_length_ str_len
if (str_len<5)
sslat=substr(slat,1,2)
sslat=-sslat*0.1
say sslat_is_ sslat
else
sslat=substr(slat,1,3)
sslat=-sslat*0.1
say sslat_is_ sslat
endif
say
say lon_and_lat_is
say sslon__ sslon
say sslat__ sslat
*vmax
vmax=subwrd(tmp2,9)
say vmax_ vmax
if (vmax>64)
say T vmax red
'set line 2'
endif
if (vmax<64 & vmax>48)
say STS vmax orange
'set line 8'
endif
if (vmax<48 & vmax>34)
say TS vmax green
'set line 3'
endif
if (vmax<34)
say TD vmax blue
'set line 4 '
endif
sym = 3
siz = 0.15
'q w2xy 'sslon' 'sslat''
x = subwrd(result,3)
y = subwrd(result,6)
'draw mark 'sym' 'x' 'y' 'siz
i=i+1
endwhile
draw4.gsは以下に示す
whileがこのときは使えなかったので、繰り返しになってるw
*tmp1=0
*tmp=read(data.dat)
*while(tmp1=0)
tmp=read(data.dat)
tmp1=sublin(tmp,1)
tmp2=sublin(tmp,2)
nlon=subwrd(tmp2,1)
nlat=subwrd(tmp2,2)
slon=subwrd(tmp2,3)
slat=subwrd(tmp2,4)
say tmp2
sym = 3
siz = 0.15
'q w2xy 'nlon' 'nlat''
x1 = subwrd(result,3)
y1 = subwrd(result,6)
'draw mark 'sym' 'x1' 'y1' 'siz
'q w2xy 'slon' 'slat''
x2 = subwrd(result,3)
y2 = subwrd(result,6)
'draw mark 'sym' 'x2' 'y2' 'siz
'draw line 'x1' 'y1' 'x2' 'y2''
gmap.ctl中身
DSET ^gmap.dat
TITLE MAP DRAW
UNDEF 1.E36
XDEF 2 LINEAR 100.000 80.00000
YDEF 2 LINEAR -30.000 60.00000
ZDEF 1 LINEAR .000 1.00000
TDEF 1 LINEAR 00JAN1997 60MN
VARS 1
PT 1 99 PT
ENDVARS
blankmap.gsの中身
'c'
'set vpage 0 8.5 0 5.5'
'set font 1'
'set xlint 10'
'set ylint 10'
'set xlopts 1 5 0.13'
'set ylopts 1 5 0.13'
'set grads off'
'set mpdset mres'
'set map 1 1 5'
'set cmin 1'
'd pt'
'set vpage off'
0 件のコメント:
コメントを投稿