[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20000907: Plot hurricane tracks in 5.4?
- Subject: 20000907: Plot hurricane tracks in 5.4?
- Date: Thu, 07 Sep 2000 10:57:17 -0600
>From: address@hidden (Chris Hennon)
>Organization: UCAR/Unidata
>Keywords: 200009071606.e87G6ZN01178
>Can you plot a hurricane track in gempak 5.4?
>
>Thanks.
>
>Chris
>
>================================================
>| Chris Hennon Ohio State University |
>| Tropical Meteorology address@hidden |
>| |
>| Dept of Geography Office: 1155 Derby Hall |
>| 1036 Derby Hall Phone : (614) 292-2704 |
>| Columbus, OH 43210 Fax : (614) 292-6213 |
>================================================
>
Yep.
See the "tropical storm tracks" link from
http://www.unidata.ucar.edu/packages/gempak/examples/
Marker types 23 and 24 are tropical storm and hurricane symbols respectively.
The dctrop decoder decodes realtime bulletins, and I have a script
which plots those files using sfmap. Or, you can create your own station table
format file and use the STNPLT option for station position setting the
marker appropriately.
The dctrop output file looks like:
PARM = FCHR;SKNT;SCAT
STN YYMMDD/HHMM FCHR SKNT SCAT
ERNESTO 000902/0900 0.00 35.00 6.00
ERNESTO 000902/0900 12.00 40.00 6.00
ERNESTO 000902/0900 24.00 40.00 6.00
ERNESTO 000902/0900 36.00 40.00 6.00
ERNESTO 000902/0900 48.00 40.00 6.00
ERNESTO 000902/0900 72.00 45.00 6.00
ERNESTO 000902/1500 0.00 35.00 6.00
ERNESTO 000902/1500 12.00 35.00 6.00
ERNESTO 000902/1500 24.00 40.00 6.00
ERNESTO 000902/1500 36.00 40.00 6.00
ERNESTO 000902/1500 48.00 40.00 6.00
ERNESTO 000902/1500 72.00 40.00 6.00
ERNESTO 000902/2100 0.00 35.00 6.00
ERNESTO 000902/2100 12.00 35.00 6.00
ERNESTO 000902/2100 24.00 35.00 6.00
ERNESTO 000902/2100 36.00 35.00 6.00
ERNESTO 000902/2100 48.00 35.00 6.00
ERNESTO 000902/2100 72.00 35.00 6.00
ERNESTO 000903/0300 0.00 35.00 6.00
ERNESTO 000903/0300 12.00 35.00 6.00
ERNESTO 000903/0300 24.00 35.00 6.00
ERNESTO 000903/0300 36.00 35.00 6.00
ERNESTO 000903/0300 48.00 35.00 6.00
ERNESTO 000903/0300 72.00 35.00 6.00
ERNESTO 000903/0900 0.00 35.00 6.00
ERNESTO 000903/0900 12.00 35.00 6.00
ERNESTO 000903/0900 24.00 35.00 6.00
ERNESTO 000903/0900 36.00 35.00 6.00
ERNESTO 000903/0900 48.00 35.00 6.00
ERNESTO 000903/0900 72.00 35.00 6.00
ERNESTO 000903/1500 0.00 35.00 6.00
ERNESTO 000903/1500 12.00 35.00 6.00
ERNESTO 000903/1500 24.00 35.00 6.00
ERNESTO 000903/1500 36.00 35.00 6.00
ERNESTO 000903/1500 48.00 35.00 6.00
ERNESTO 000903/1500 72.00 35.00 6.00
ERNESTO 000903/2100 0.00 30.00 7.00
ERNESTO 000903/2100 12.00 30.00 7.00
Below is the script I run for the 4 plots from the examples page above.
Basically, I run sfmap once to plot the FCHR=0 hour forecast positions for
all times, then for the last time, I plot all the forecast positions
for the overlay of the forecast track. I set the symbol based on the
SCAT storm category, where 1 through 5 are hurricane safir-simpson
categories, 6 is tropical storm, and 7 is depression. SO below in the
script, you'll find that I set the marker to "+" for the depressions,
then 23 for tropical storm and 24 for hurricane.
Steve Chiswell
#!/bin/csh -f
# this script sends output to the PS driver since it uses
# dattim=all (gif would create separate frames)
setenv PATH ${PATH}:/usr/local/bin
setenv TMPDIR /tmp
cd $TMPDIR
source /home/gempak/Gemenviron
setenv DISPLAY unix:0
if($#argv == 1) then
set region=$1
else
set region=epacific
endif
setenv STORM $GEMDATA/storm/tropic/$region
set WORK=/home/chiz/web/tmp
if(! -e $STORM) then
echo No such directory $region
exit
endif
switch ($region)
case 'wpacific':
set GAREA='#25;130;22;30'
breaksw
case 'epacific':
set GAREA='#20;-120;20;30'
set GAREA='#30;-108;16;21'
set GAREA='#18;-108;16;21'
breaksw
case 'atlantic':
set GAREA='#30;-85;15;20'
set GAREA='#27.5;-62.5;24;38'
breaksw
case 'cpacific':
set GAREA='#22;-155;22;30'
breaksw
default:
echo Unknown region
exit
endsw
cd $STORM
set FILES=`find *.gem -mtime -1 -print`
if($#FILES == 0) then
#echo No current storms
exit
endif
@ COUNT = 1
while ($COUNT <= $#FILES)
if(! -l $FILES[$COUNT]) then
echo $FILES[$COUNT]:r >>! $WORK/storm_names.$$
endif
@ COUNT = $COUNT + 1
end
cd $WORK
set names=`cat storm_names.$$`
rm storm_names.$$
@ COUNT = 0
foreach FILE ($FILES)
if(-l $STORM/$FILE) then
echo Just a link $FILE
continue
endif
echo $FILE $COUNT
sflist << EOF1
dattim = all
sffile = \$STORM/$FILE
sfparm = dset
output = f/tropic_dat.$$
area = dset
idntyp = stid
\$respond = yes
r
e
EOF1
set DATE=`cat tropic_dat.$$ | nawk
'/[0-9][0-9][0-9][0-9][0-9][0-9]\/[0-9][0-9][0-9][0-9]/ { print $2 }'`
cat tropic_dat.$$
if($#DATE > 0) then
set TITLE=$DATE[1]
else
set TITLE=`date -u '+%y%m%d/%H%M'`
endif
if(-e tropic_dat.$$) then
rm tropic_dat.$$
endif
set DEVICE="ps|${region}.ps||C"
if($COUNT == 0) then
set CLEAR=n
set MAP='1/1/2'
set LATLON='30/2/1'
else
set CLEAR=n
set MAP=0
set LATLON=0
endif
@ LST = 3 + $COUNT
gpmap << GP_EOF
\$mapfil = hipowo.cia
MAP = $MAP
GAREA = $GAREA
PROJ = mer
SATFIL =
RADFIL =
LATLON = $LATLON
PANEL = 0
TEXT = 1.5/22/1/hw
CLEAR = $CLEAR
DEVICE = $DEVICE
title = 2/-${LST}/Forecast Track $FILE:r $TITLE
r
CLEAR = n
MAP = 0
LATLON = 0
TITLE = 4/-2/Track History, $names
r
e
GP_EOF
sfmap << EOF
AREA = dset
GAREA = $GAREA
SATFIL =
RADFIL =
DATTIM = all
SFFILE = $STORM/$FILE
COLORS = 4;0;0;2
MAP = 0
LATLON = 0
TITLE = 0
CLEAR = n
PANEL = 0
PROJ = mer
FILTER = .8
TEXT = 1.2/22/1/hw
SKPMIS = n
SFPARM = mark:1/2/2;fchr=0;scat=7;sknt
!MARKER = 4/1/2/2/hw
OUTPUT = t
TITLE = 0
r
SFPARM = mark:23/4/6;fchr=0;scat=6;sknt
!MARKER = 4/23/4/6/hw
r
SFPARM = mark:24/4/6;fchr=0;scat<5.1;sknt
!MARKER = 4/24/4/6/hw
r
DATTIM = LAST
COLOR = 2;0;0;2
filter = n
SFPARM = mark:1/2/2;scat=7;fchr>1;sknt
!MARKER = 2/1/2/2/hw
r
SFPARM = mark:23/4/6;scat=6;fchr>1;sknt
!MARKER = 2/23/4/6/hw
r
SFPARM = mark:24/4/6;scat=1;fchr>1;sknt
!MARKER = 2/24/4/6/hw
r
COLOR = 15;0;0;2
SFPARM = mark:24/4/6;scat=2;fchr>1;sknt
!MARKER = 15/24/4/6/hw
r
COLOR = 14;0;0;2
SFPARM = mark:24/4/6;scat=3;fchr>1;sknt
!MARKER = 14/24/4/6/hw
r
COLOR = 13;0;0;2
SFPARM = mark:24/4/6;scat=4;fchr>1;sknt
!MARKER = 13/24/4/6/hw
r
COLOR = 12;0;0;2
SFPARM = mark:24/4/6;scat=5;fchr>1;sknt
!MARKER = 12/24/4/6/hw
r
e
EOF
@ COUNT = $COUNT + 1
end
gpend
# use the imagemagick package to convert the ps to gif
convert -rotate 90 $region.ps $region.gif
mv $region.gif /www/staff/chiz/storm/tropic