Hello Charles<div>Thank you for the script. Script for individual data file runs fine. But I am not able to run <a href="http://maxwind2.gs">maxwind2.gs</a> using two separate data files <a href="http://uwind05.nc">uwind05.nc</a> and <a href="http://vwind05.nc">vwind05.nc</a> (which are attached here with this mail). </div>
<div><br></div><div>One thing can we check maximum wind at low level. I want to check maximum wind from 1000 upto 600 or 500hPa only. My study is related with low level jet for that purpose i need maximum wind at low level only.<br>
</div><div><br></div><div><br></div><div>Thank you again</div><div><br><div class="gmail_quote">On Wed, May 4, 2011 at 1:17 AM, Charles Seman <span dir="ltr"><<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Sushant,<br>
<br>
Glad to hear the script was helpful.<br>
<br>
An updated script "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a>" (attached) for a single wind file and wind variable (e.g. ucomp or vcomp) is now able to search over a user-specified domain.<br>
<br>
Another script "<a href="http://maxwind2.gs" target="_blank">maxwind2.gs</a>" (attached) has been coded based on "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a>" to find the max wind magnitude of 2 wind variables (e.g. ucomp, vcomp) over a user-specified domain (although the wind magnitude is defined over all (x,y,z) points at each time level).<br>
<br>
The scripts were run over a subset of the total (x,y,z,t) domain to verify they work for a limited domain (note, you can set these in the scripts yourself):<br>
x1 = 2 ; x2 = nx-1<br>
y1 = 2 ; y2 = ny-1<br>
z1 = 2 ; z2 = nz-1<br>
t1 = 2 ; t2 = nt-1<br>
<br>
Run commands:<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> set wind_file = ( <a href="http://ucomp.1981-2000.climatology.nc" target="_blank">ucomp.1981-2000.climatology.nc</a> <a href="http://vcomp.1981-2000.climatology.nc" target="_blank">vcomp.1981-2000.climatology.nc</a> )<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> set wind_var = ( ucomp vcomp )<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> set wind_units = m/s<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> set lev_units = hPa<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> grads -lcx "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> $wind_nc_file[1] $wind_var[1] $wind_units $lev_units"<br>
...<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> grads -lcx "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> $wind_nc_file[2] $wind_var[2] $wind_units $lev_units"<br>
...<br>
cjs: /home/cjs/grads/Sushant_Puranik/ --> grads -lcx "<a href="http://maxwind2.gs" target="_blank">maxwind2.gs</a> $wind_nc_file[1] $wind_var[1] $wind_nc_file[2] $wind_var[2] $wind_units $lev_units"<br>
...<br>
<br>
Please find attached sample plot files: maxwind_ucomp.pdf, maxwind_vcomp.pdf, maxwind2.pdf<br>
<br>
The scripts were tested and appear to be working OK. Please let me know if you find any problems and/or have any questions.<br>
<br>
Thanks,<br>
Chuck<br>
<br>
sushant puranik wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks again It works fine. Since i am interested in low level wind so can you please tell me how to make it to check for low levels only(i have data at 17 pressure levels). Also i have uwind and vwind data in separate files, how to run script with two files?<br>
<br>
<br>
thank you <br>
On Mon, May 2, 2011 at 11:04 PM, Charles Seman <<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>> wrote:<br>
<br>
Sushant,<br>
<br>
Following Kun-Hsuan Chou in the "hurricane_tracking.txt" file (or<br>
<a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a> <<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>>),<br>
please find attached a revised version "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>>" which plots the wind and its max for each time<br>
level.<br>
<br>
To run:<br>
<br>
% grads -lcx "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> nc_file wind wind_units"<br>
<br>
or<br>
<br>
ga-> run <a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> nc_file wind wind_units<br>
<br>
Where a new argument "wind_units" has been added which is plotted in<br>
a title. Be sure there are no blank spaces in the "wind_units" so<br>
that GrADS gets the correct string to plot (e.g. m/s or knots,<br>
etc.). Note, the script as it is clears the screen before each time<br>
level (it plots the wind field itself at the level of maximum wind<br>
and an "x" at the location of the max wind). I'm not sure if this<br>
is what you want? If not, I would suggest adapting the code from<br>
<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> into a modified version of<br>
<a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a> <<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>> (and<br>
rename it to something more appropriate like <a href="http://plot_maxwind.gs" target="_blank">plot_maxwind.gs</a><br>
<<a href="http://plot_maxwind.gs" target="_blank">http://plot_maxwind.gs</a>> or whatever you choose). One thing I found<br>
when running the script several times on the GrADS command line is<br>
that at some point the script exits with a "Memory allocation<br>
error!" condition. I'm not sure why this happens. In an attempt to<br>
prevent this, 'c events' and 'close 1' statements were added in<br>
addition to the previous 'reinit' command, but this did not prevent<br>
the problem.<br>
<br>
I hope this helps,<br>
Chuck<br>
<br>
sushant puranik wrote:<br>
<br>
Hello Charles<br>
I tried <a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> it<br>
works fine as per your suggestion. But i want to know at which<br>
lat lon maximum value is instead of x and y location. So can you<br>
please tell me how to convert x y in lat lon.<br>
<br>
Thanks<br>
<br>
Sushant<br>
On Sat, Apr 30, 2011 at 11:43 AM, sushant puranik<br>
<<a href="mailto:sushantpuranik@gmail.com" target="_blank">sushantpuranik@gmail.com</a> <mailto:<a href="mailto:sushantpuranik@gmail.com" target="_blank">sushantpuranik@gmail.com</a>><br>
<mailto:<a href="mailto:sushantpuranik@gmail.com" target="_blank">sushantpuranik@gmail.com</a><br>
<mailto:<a href="mailto:sushantpuranik@gmail.com" target="_blank">sushantpuranik@gmail.com</a>>>> wrote:<br>
<br>
Thank you for help i will try it. Please don't mind if error<br>
occurs<br>
i'll mail you. Thanks again<br>
<br>
<br>
On Sat, Apr 30, 2011 at 1:32 AM, Charles Seman<br>
<<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>>><br>
wrote:<br>
<br>
Hello Sushant,<br>
<br>
I think it should be possible. Please find attached an email<br>
exchange to this List from several years ago<br>
"hurricane_tracking.txt" in which Kun-Hsuan Chou gave a<br>
method<br>
to track the maximum wind speed using maxloc and max. This<br>
technique works on a 2D field. To find the location of<br>
the max<br>
wind in 4D wind dataset, a short script "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>>" was coded that blends the technique<br>
used in<br>
<br>
a local script "<a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>>" and the technique in<br>
<br>
Kun-Hsuan Chou's "hurricane_tracking.txt".<br>
("<a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>>"<br>
<br>
itself was developed using Joe Covert's script<br>
"<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>" and Kun-Hsuan Chou's<br>
"hurricane_tracking.txt".) "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>>"<br>
<br>
loops over the time levels and finds the value of the max<br>
wind<br>
and its (x,y,z) location for each time level. These<br>
values are<br>
printed out to the screen. Here is a copy of what the<br>
"<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>>"<br>
script printed out using GrADS<br>
<br>
1.9b4 for a local model "ucomp" climatology dataset:<br>
---<br>
...<br>
(nx,ny,nz,nt) = (144,90,23,12)<br>
tt = 1<br>
max ucomp = 81.833<br>
xc = 137<br>
yc = 71<br>
zc = 23<br>
ucomp(x=137,y=71,z=23) = 81.833<br>
tt = 2<br>
max ucomp = 68.9826<br>
xc = 57<br>
yc = 61<br>
zc = 10<br>
ucomp(x=57,y=61,z=10) = 68.9826<br>
tt = 3<br>
max ucomp = 62.7262<br>
xc = 56<br>
yc = 60<br>
zc = 11<br>
ucomp(x=56,y=60,z=11) = 62.7262<br>
tt = 4<br>
max ucomp = 61.6225<br>
xc = 10<br>
yc = 15<br>
zc = 23<br>
ucomp(x=10,y=15,z=23) = 61.6225<br>
tt = 5<br>
max ucomp = 85.5501<br>
xc = 4<br>
yc = 18<br>
zc = 23<br>
ucomp(x=4,y=18,z=23) = 85.5501<br>
tt = 6<br>
max ucomp = 109.233<br>
xc = 4<br>
yc = 19<br>
zc = 23<br>
ucomp(x=4,y=19,z=23) = 109.233<br>
tt = 7<br>
max ucomp = 119.698<br>
xc = 143<br>
yc = 17<br>
zc = 23<br>
ucomp(x=143,y=17,z=23) = 119.698<br>
tt = 8<br>
max ucomp = 117.018<br>
xc = 2<br>
yc = 16<br>
zc = 22<br>
ucomp(x=2,y=16,z=22) = 117.018<br>
tt = 9<br>
max ucomp = 98.7713<br>
xc = 63<br>
yc = 9<br>
zc = 20<br>
ucomp(x=63,y=9,z=20) = 98.7713<br>
tt = 10<br>
max ucomp = 74.1137<br>
xc = 65<br>
yc = 7<br>
zc = 19<br>
ucomp(x=65,y=7,z=19) = 74.1137<br>
tt = 11<br>
max ucomp = 77.7408<br>
xc = 137<br>
yc = 67<br>
zc = 23<br>
ucomp(x=137,y=67,z=23) = 77.7408<br>
tt = 12<br>
max ucomp = 84.3092<br>
xc = 16<br>
yc = 70<br>
zc = 23<br>
ucomp(x=16,y=70,z=23) = 84.3092<br>
...finished.<br>
---<br>
<br>
It seems the script is working OK. You can give it a try for<br>
one of your datasets. To run the script as it is coded,<br>
run it<br>
in batch mode as follows:<br>
% grads -blcx "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> nc_file wind"<br>
<br>
or on the GrADS command line<br>
<a href="http://grads.iges.org/grads/gadoc/gradcomdrun.html" target="_blank">http://grads.iges.org/grads/gadoc/gradcomdrun.html</a> as (no<br>
quotes<br>
as with the batch command):<br>
ga-> run <a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> nc_file wind<br>
<br>
where "nc_file" is the netCDF file containing the "wind"<br>
variable name (the "nc_file" and "wind" are generic names;<br>
please replace them with the actual netCDF file and wind<br>
variable in the netCDF file). Note, please also include the<br>
quotes surrounding "<a href="http://maxwind.gs" target="_blank">maxwind.gs</a> <<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>><br>
<<a href="http://maxwind.gs" target="_blank">http://maxwind.gs</a>> nc_file wind"<br>
<br>
for the batch command or else the batch command won't work.<br>
<br>
I hope this helps. Please let me know if you have any<br>
questions.<br>
<br>
Thanks,<br>
Chuck<br>
<br>
sushant puranik wrote:<br>
<br>
Hello Charles<br>
I want to make a jet stream plot. Can i make it with the<br>
help of hurricane center script by changing minloc<br>
and min<br>
to maxloc and max.<br>
any suggestion?<br>
<br>
thanks<br>
<br>
Sushant<br>
On Wed, Jan 5, 2011 at 1:01 AM, Charles Seman<br>
<<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>>>> wrote:<br>
<br>
Jie,<br>
<br>
Attached is a file<br>
File_Error_1_Grads_1.9-Plot_tc_shi.gs.txt<br>
containing the text from an email exchange to the<br>
GrADS<br>
Listserv<br>
between Joe Covert and Diane Stokes on 9/13/2004 -- on<br>
4/27/06,<br>
found via a Google search for "<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>":<br>
<a href="http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs" target="_blank">http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs</a><br>
<br>
<br>
The attached GrADS script<br>
<a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a> <<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>> (along with<br>
pause.gsf,<br>
aGrADS<br>
<br>
script function used by the plot script) is a locally<br>
modified<br>
version derived from Joe Covert's script<br>
"<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>" (<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a> <mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>>>>) which was posted to the GrADS<br>
Listserv<br>
<br>
on 9/13/2004 (his script was named <a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>) and code from<br>
hurricane_tracking.txt (taken<br>
<br>
from an email exchange posted to the GrADS Listserv by<br>
Kun-Hsuan<br>
Chou and Arturo Caracas Uribe in Oct, 2004)...<br>
<br>
Please find below code from hurricane_tracking.txt<br>
(taken<br>
from an<br>
email exchange posted to the GrADS Listserv by<br>
Kun-Hsuan<br>
Chou and<br>
Arturo Caracas Uribe in Oct, 2004) illustrating a<br>
technique for<br>
finding max wind in a 2D field... and below that some<br>
code from<br>
attached script <a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>> to find the min<br>
sea-level<br>
<br>
pressure in a 2D field...<br>
<br>
code from Kun-Hsuan Chou to find maximum wind<br>
speed from<br>
hurricane_tracking.txt:<br>
---<br>
'd<br>
maxloc(max(mag(u,v),lon=120,lon=130),lat=15,lat=25)'<br>
line=sublin(result,2)<br>
ygrd=subwrd(line,4)<br>
'd<br>
maxloc(max(mag(u,v),lat=15,lat=25),lon=120,lon=130)'<br>
line=sublin(result,2)<br>
xgrd=subwrd(line,4)<br>
'set x 'xgrd<br>
lonval = subwrd(result,4)<br>
'set y 'ygrd<br>
latval = subwrd(result,4)<br>
'q w2xy 'lonval' 'latval<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
'draw mark 1 'xpos' 'ypos' .2'<br>
---<br>
<br>
sample code from <a href="http://plot_hurricane_center3.gs" target="_blank">plot_hurricane_center3.gs</a><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>><br>
<<a href="http://plot_hurricane_center3.gs" target="_blank">http://plot_hurricane_center3.gs</a>> to find hurricane<br>
center (see<br>
<br>
script for supporting code):<br>
---<br>
*<br>
* find minimum "pressure" within box area (x1,x2),<br>
(y1,y2)...<br>
*<br>
'set x 'x1<br>
'set y 'y1<br>
'set z 1'<br>
'set t 'tt<br>
'set gxout print'<br>
nxp = x2-x1+1<br>
* say ' nxp = 'nxp<br>
nyp = y2-y1+1<br>
* say ' nyp = 'nyp<br>
'd minloc(min(psl,y='y1',y='y2'),x='x1',x='x2')'<br>
rec=sublin(result,nxp+3)<br>
xc=subwrd(rec,1)<br>
'd minloc(min(psl,x='x1',x='x2'),y='y1',y='y2')'<br>
rec=sublin(result,nyp+3)<br>
yc=subwrd(rec,1)<br>
say<br>
say 'location of minimum "pressure"...'<br>
say<br>
say ' (xc,yc) = ('xc','yc')'<br>
*<br>
* find "world" coordinates of (xc,yc) and convert<br>
"world"<br>
coordinates<br>
* to "xy" coordinates for plotting track of hurricane<br>
center...<br>
*<br>
'set x 'xc<br>
lonval = subwrd(result,4)<br>
'set y 'yc<br>
latval = subwrd(result,4)<br>
say ' (lonval,latval) = ('lonval','latval')'<br>
'q w2xy 'lonval' 'latval<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
say ' (xpos,ypos) = ('xpos','ypos')'<br>
*<br>
* write (xpos,ypos) to output file...<br>
*<br>
res = write (''<a href="http://hurricane.nf" target="_blank">hurricane.nf</a><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>>'','t = 'tt'<br>
<br>
xpos = 'xpos' ypos = 'ypos'')<br>
<br>
pause()<br>
---<br>
<br>
Please let me know if you have any questions.<br>
<br>
Hope this helps,<br>
Chuck<br>
<br>
Jie TANG wrote:<br>
<br>
<br>
hi,grads folks ,<br>
I am using grads v1.9, trying to find the<br>
center of<br>
typhoon via<br>
minloc function.<br>
the key script is shown as below:<br>
slplat=min(slp,lat=19,lat=26) tclon=minloc(slplat,lon=119,lon=126) slplon=min(slp,lon=119,lon=126) tclat=minloc(slplon,lat=19,lat=26)<br>
<br>
but grads tell me that "function not found min<br>
" and<br>
when i<br>
changed my script to be :<br>
tclat=min(minloc(slpt,lon=119,lon=126),<br>
lat=19,lat=26)<br>
tclon=min(minloc(slpt, lat=19,lat=26<br>
)lon=119,lon=126)<br>
<br>
<br>
how can i finx my scrpit ? thank you .:)<br>
--<br>
TANG Jie<br>
Email: <a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>>> <mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>>>><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>>> <mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a><br>
<mailto:<a href="mailto:totangjie@gmail.com" target="_blank">totangjie@gmail.com</a>>>>><br>
<br>
<br>
Tel: 0086-2154896104<br>
Shanghai Typhoon Institute,China<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>>><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>>>><br>
<br>
<br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
--<br>
Please note that <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>>> should be considered my NOAA<br>
email address, not <a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a><br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>><br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a> <mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>>><br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a> <mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>><br>
<br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a> <mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>>>>.<br>
<br>
<br>
********************************************************************<br>
Charles Seman <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>>><br>
<br>
U.S. Department of Commerce / NOAA / OAR<br>
Geophysical Fluid Dynamics Laboratory voice:<br>
(609) 452-6547<br>
201 Forrestal Road fax:<br>
(609) 987-5063<br>
Princeton, NJ 08540-6649 <a href="http://www.gfdl.noaa.gov/~cjs/" target="_blank">http://www.gfdl.noaa.gov/~cjs/</a><br>
********************************************************************<br>
<br>
"The contents of this message are mine personally<br>
and do<br>
not reflect any<br>
official or unofficial position of the United States<br>
Federal Government,<br>
the United States Department of Commerce, or NOAA."<br>
<br>
<br>
<br>
worked great ... thanks. joe<br>
<br>
Diane Stokes wrote:<br>
<br>
> Joe,<br>
><br>
> Read works fine for me in 1.9.<br>
><br>
> I think this is the issue where 'pull' in 1.9<br>
throws<br>
in a carriage<br>
> return. The read statement is not getting the<br>
exact<br>
filename.<br>
><br>
> Try adding:<br>
> file=sublin(file,1)<br>
> after each:<br>
> pull file<br>
><br>
> Diane<br>
><br>
> Joe Covert wrote:<br>
><br>
>> There appears to be a problem with version 1.9 of<br>
GrADS "read"<br>
function.<br>
>><br>
>> The <a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>> script (see below)<br>
<br>
uses the read function to open the<br>
>> track data file and the program gives the subject<br>
error message<br>
"File<br>
>> Error 1".<br>
>><br>
>> jc<br>
>><br>
>><br>
>> * Script to draw an hurricane-track plot.<br>
>> * Does little error checking on the input file.<br>
>> * Assumes the input file is set up as follows:<br>
>> *<br>
>> * Line 1: Title<br>
>> * Line 2: Drawing primitives for marks:<br>
marktype size<br>
>> * Line 3: Drawing primitives for lines: color<br>
style thickness<br>
>> * Line 4: Starting hour and the interval of<br>
plotting points<br>
>> * e.g., 0 6 means that track<br>
starts at 0<br>
hour and mark<br>
>> * will be plotted every 6 hours.<br>
>> * Rest of lines: hour long. lat.<br>
>> * e.g., 0 -70.5 25.0<br>
>> * 6 -71.8 25.2<br>
>> * :<br>
>> * :<br>
>> *<br>
>> * Also assumes that a file has been opened (any<br>
file, doesn't<br>
>> * matter -- the set command doesn't work until a<br>
file has been<br>
>> * opened).<br>
>> *<br>
>><br>
>> function main()<br>
>><br>
>> * 'clear'<br>
>><br>
>> 'open dummy.ctl'<br>
>> 'set lat 20 50'<br>
>> 'set lon -90 -30'<br>
>> 'set mpdset hires'<br>
>> 'set poli on'<br>
>> 'draw map'<br>
>><br>
>><br>
>> say 'Enter File Name: (type q to stop)'<br>
>> pull fname<br>
>><br>
>> while (fname != 'q')<br>
>><br>
>> * Read the 1st record: Title<br>
>><br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> if (rc>0)<br>
>> say 'File Error 1'<br>
>> return<br>
>> endif<br>
>> title = sublin(ret,2)<br>
>> say title<br>
>><br>
>> * Read the drawing primitives<br>
>><br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> if (rc>0)<br>
>> say 'File Error 2'<br>
>> return<br>
>> endif<br>
>> dpline = sublin(ret,2)<br>
>> marktype = subwrd(dpline,1)<br>
>> marksize = subwrd(dpline,2)<br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> if (rc>0)<br>
>> say 'File Error 3'<br>
>> return<br>
>> endif<br>
>> dpline = sublin(ret,2)<br>
>> lcolor = subwrd(dpline,1)<br>
>> lstyle = subwrd(dpline,2)<br>
>> lthick = subwrd(dpline,3)<br>
>> say ' marktype, marksize, lcolor, lstyle and<br>
lthick:'<br>
>> say ' 'marktype ' ' marksize ' ' lcolor ' '<br>
lstyle<br>
' ' lthick<br>
>><br>
>> * Read starting hour and the interval hours of<br>
plotting points<br>
>><br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> if (rc>0)<br>
>> say 'File Error 4'<br>
>> return<br>
>> endif<br>
>> dhour = sublin(ret,2)<br>
>> start = subwrd(dhour,1)<br>
>> jump = subwrd(dhour,2)<br>
>> say ' starting hour and the interval hours of<br>
plotting points:'<br>
>> say ' 'start' 'jump<br>
>><br>
>> * Read all data points<br>
>><br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> while (rc = 0)<br>
>> loc = sublin(ret,2)<br>
>> hour = subwrd(loc,1)<br>
>> dlong.hour = subwrd(loc,2)<br>
>> dlat.hour = subwrd(loc,3)<br>
>> * prompt ' hour ' hour ' are read,'<br>
>> * say ' long=' dlong.hour ' lat='<br>
dlat.hour<br>
>> ret = read(fname)<br>
>> rc = sublin(ret,1)<br>
>> endwhile<br>
>><br>
>> if (rc!=2 & rc!=0)<br>
>> say 'File Error 5, rc=' rc<br>
>> return<br>
>> endif<br>
>><br>
>> endhour = hour<br>
>> say ' endhour=' endhour<br>
>><br>
>> * Plotting<br>
>><br>
>> 'set line 'lcolor' 'lstyle' 'lthick<br>
>> 'query w2xy 'dlong.start' 'dlat.start<br>
>> xprev = subwrd(result,3)<br>
>> yprev = subwrd(result,6)<br>
>> 'draw mark 'marktype' 'xprev' 'yprev' 'marksize<br>
>> next = start+jump<br>
>> while (next <= endhour)<br>
>> * say ' 'dlong.start' 'dlat.start<br>
>> 'query w2xy 'dlong.next' 'dlat.next<br>
>> xnext = subwrd(result,3)<br>
>> ynext = subwrd(result,6)<br>
>> 'draw line 'xprev' 'yprev' 'xnext' 'ynext<br>
>> * say ' 'xprev' 'yprev' 'xnext' 'ynext<br>
>> 'draw mark 'marktype' 'xnext' 'ynext'<br>
'marksize<br>
>> next = next+jump<br>
>> xprev = xnext<br>
>> yprev = ynext<br>
>> endwhile<br>
>><br>
>> say fname ' is working fine.'<br>
>><br>
>> * read in the filename to be plotted next<br>
>><br>
>> say 'Enter File Name: (type q to stop)'<br>
>> pull fname<br>
>><br>
>> endwhile<br>
>><br>
<br>
<br>
*----------------------------------------------------------------------<br>
*<br>
* Adapted from <a href="http://plot_hurricane_center2c.gs" target="_blank">plot_hurricane_center2c.gs</a><br>
<<a href="http://plot_hurricane_center2c.gs" target="_blank">http://plot_hurricane_center2c.gs</a>><br>
<<a href="http://plot_hurricane_center2c.gs" target="_blank">http://plot_hurricane_center2c.gs</a>><br>
<<a href="http://plot_hurricane_center2c.gs" target="_blank">http://plot_hurricane_center2c.gs</a>>, which was<br>
adapted from:<br>
<br>
*<br>
* (1) "plot_hurricane_center2[a][b].gs" (from<br>
"<a href="http://plot_hurricane_center.gs" target="_blank">plot_hurricane_center.gs</a><br>
<<a href="http://plot_hurricane_center.gs" target="_blank">http://plot_hurricane_center.gs</a>><br>
<<a href="http://plot_hurricane_center.gs" target="_blank">http://plot_hurricane_center.gs</a>><br>
<<a href="http://plot_hurricane_center.gs" target="_blank">http://plot_hurricane_center.gs</a>>"),<br>
<br>
* locally modified versions derived from Joe<br>
Covert's script<br>
* "<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>" (<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a> <mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>>>>), which was posted to the<br>
<br>
* GrADS Listserv on 9/13/2004 (his script was<br>
named<br>
<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>)<br>
<br>
* on 4/27/06, found via a Google search for<br>
"<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>":<br>
<br>
* <a href="http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs" target="_blank">http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs</a><br>
*<br>
* (2) code in "hurricane_tracking.txt" (taken from an<br>
email exchange<br>
* posted to the GrADS Listserv by Kun-Hsuan<br>
Chou and<br>
* Arturo Caracas Uribe in Oct, 2004)<br>
*<br>
*<br>
* To use: grads -l<br>
*<br>
*----------------------------------------------------------------------<br>
<br>
function main()<br>
<br>
'reinit'<br>
<br>
************************************************************************<br>
* Allow external GrADS functions<br>
************************************************************************<br>
<br>
rc = gsfallow("on")<br>
<br>
************************************************************************<br>
* Define dataset file information and plotting limits<br>
for base map...<br>
************************************************************************<br>
<br>
** nc_file1 = ''<br>
** nc_file2 = ''<br>
** nc_file3 = ''<br>
** nc_file = ''nc_file1' 'nc_file2' 'nc_file3''<br>
nc_file = 'your_netCDF_file'<br>
<br>
lon1 = 298 ; lon2 = 308<br>
lat1 = 20 ; lat2 = 25<br>
<br>
************************************************************************<br>
* Legend captions, colors, and marks for the plots<br>
************************************************************************<br>
<br>
** nmodels = 1<br>
** model.1 = 'isabel_ras'<br>
** model.2 = 'isabel_isotke'<br>
** model.3 = 'isabel_my25'<br>
<br>
** titles.1 = model.1 ; colors.1 = 2 ; marks.1 = 2<br>
** titles.2 = model.2 ; colors.2 = 3 ; marks.2 = 2<br>
** titles.3 = model.3 ; colors.3 = 4 ; marks.3 = 2<br>
***<br>
*** Define the legend plotter input...<br>
***<br>
** titles = '-t' ; colors = '-c' ; marks = '-m' ;<br>
lines<br>
= '-l'<br>
** n=1<br>
** while ( n <= nmodels )<br>
** titles = ''titles' "'titles.n'"'<br>
** colors = ''colors' 'colors.n<br>
** marks = ''marks' "'marks.n'"'<br>
** lines = ''lines' 1'<br>
** n=n+1<br>
** endwhile<br>
<br>
** legend_info = ''colors' 'lines' 'marks'<br>
'titles' -p'<br>
<br>
nmodels = 1<br>
model.1 = 'title_name_for_your_netCDF_dataset'<br>
<br>
titles.1 = model.1 ; colors.1 = 2 ; marks.1 = 2<br>
*<br>
* Define the legend plotter input...<br>
*<br>
titles = '-t' ; colors = '-c' ; marks = '-m' ;<br>
lines = '-l'<br>
n=1<br>
while ( n <= nmodels )<br>
titles = ''titles' "'titles.n'"'<br>
colors = ''colors' 'colors.n<br>
marks = ''marks' "'marks.n'"'<br>
lines = ''lines' 1'<br>
n=n+1<br>
endwhile<br>
<br>
legend_info = ''colors' 'lines' 'marks' 'titles' -p'<br>
<br>
* ...other drawing primitives<br>
<br>
marksize = 0.1<br>
<br>
lstyle = 1 ; lthick = 5<br>
<br>
************************************************************************<br>
* Use "cbar_line" or "cbar_line_box"?<br>
************************************************************************<br>
<br>
legend_plotter = 'cbar_line'<br>
* legend_plotter = 'cbar_line_box'<br>
<br>
************************************************************************<br>
* Plot page limits<br>
************************************************************************<br>
<br>
plot_vpage = '0 11 0 8.5'<br>
plot_area = '1 10 1 7.5'<br>
<br>
xl = subwrd(plot_area,1) ; xr = subwrd(plot_area,2)<br>
yb = subwrd(plot_area,3) ; yt = subwrd(plot_area,4)<br>
<br>
xc = xl + (xr-xl)/2<br>
<br>
************************************************************************<br>
* GrADS metafile output...<br>
************************************************************************<br>
<br>
'enable print hurricane_track.gx'<br>
<br>
*-----------------------------------------------------------------------<br>
* Define and plot track of minimum surface<br>
pressure for<br>
each dataset...<br>
*-----------------------------------------------------------------------<br>
<br>
nf=1<br>
while ( nf <= nmodels )<br>
<br>
* Open dataset file and define parameters...<br>
<br>
fname = subwrd(nc_file,nf)<br>
'sdfopen 'fname<br>
'set dfile 'nf<br>
'q file'<br>
rec3 = sublin(result,3) ; binary_file =<br>
subwrd(rec3,2)<br>
say<br>
say<br>
say '*** 'binary_file' ***'<br>
say<br>
rec5 = sublin(result,5)<br>
nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =<br>
subwrd(rec5,9) ;<br>
nt = subwrd(rec5,12)<br>
<br>
if( nf = 1 )<br>
<br>
* Plot base map...<br>
<br>
plot_base_map(plot_vpage,plot_area,lon1,lon2,lat1,lat2)<br>
<br>
endif<br>
<br>
* Define locations of "hurricane center" for plotting<br>
points, and write<br>
* locations out to ASCII text file for read-in for<br>
plotting track<br>
later...<br>
<br>
<a href="http://hurricane.nf" target="_blank">hurricane.nf</a> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>> = 'hurricane_'nf'.txt'<br>
<br>
<br>
ts=2<br>
tt=ts<br>
while ( tt <= nt )<br>
'set t 'tt<br>
say<br>
say '---------'<br>
say ' tt = 'tt<br>
say '---------'<br>
say<br>
'set lon 'lon1' 'lon2<br>
'set lat 'lat1' 'lat2<br>
'set z 1'<br>
*<br>
* here is where you put in the name of your sea-level<br>
pressure variable:<br>
*<br>
'define psl =<br>
name_of_your_sea_level_pressure_variable'<br>
'set gxout shaded'<br>
'd psl'<br>
*<br>
* following interactive "box location" code<br>
adapted from<br>
"<a href="http://cbar_line_box.gs" target="_blank">cbar_line_box.gs</a> <<a href="http://cbar_line_box.gs" target="_blank">http://cbar_line_box.gs</a>><br>
<<a href="http://cbar_line_box.gs" target="_blank">http://cbar_line_box.gs</a>><br>
<<a href="http://cbar_line_box.gs" target="_blank">http://cbar_line_box.gs</a>>"...<br>
<br>
*<br>
say 'Click where you want the left upper<br>
corner of<br>
the box'<br>
'query bpos'<br>
xb1o = subwrd(result,3)<br>
yb2o = subwrd(result,4)<br>
say 'Click where you want the right lower<br>
corner of<br>
the box'<br>
'query bpos'<br>
xb2o = subwrd(result,3)<br>
yb1o = subwrd(result,4)<br>
<br>
say<br>
say '...left upper corner of the box at X Y:<br>
'xb1o'<br>
'yb2o<br>
say '...right lower corner of the box at X Y:<br>
'xb2o'<br>
'yb1o<br>
*<br>
* draw box to show specified area for defining<br>
hurricane<br>
center...<br>
*<br>
'set line 1 1'<br>
'draw rec 'xb1o' 'yb1o' 'xb2o' 'yb2o<br>
*<br>
* convert box "xy" coordinates to "grid" coordinates<br>
* for finding minimum "pressure" (hurricane center)...<br>
*<br>
'q xy2gr 'xb1o' 'yb2o<br>
x1o = subwrd(result,3) ; x1 = math_int(x1o+0.5)<br>
y2o = subwrd(result,6) ; y2 = math_int(y2o+0.5)<br>
'q xy2gr 'xb2o' 'yb1o<br>
x2o = subwrd(result,3) ; x2 = math_int(x2o+0.5)<br>
y1o = subwrd(result,6) ; y1 = math_int(y1o+0.5)<br>
say<br>
say 'Specified grid coordinates (x1o,x2o),<br>
(y1o,y2o)<br>
from box,'<br>
say 'rounded to (x1,x2), (y1,y2) for finding<br>
minimum<br>
"pressure"...'<br>
say<br>
say ' (x1o,x2o) = ('x1o','x2o') --> (x1,x2) =<br>
('x1','x2')'<br>
say ' (y1o,y2o) = ('y1o','y2o') --> (y1,y2) =<br>
('y1','y2')'<br>
*<br>
* find minimum "pressure" within box area (x1,x2),<br>
(y1,y2)...<br>
*<br>
'set x 'x1<br>
'set y 'y1<br>
'set z 1'<br>
'set t 'tt<br>
'set gxout print'<br>
nxp = x2-x1+1<br>
* say ' nxp = 'nxp<br>
nyp = y2-y1+1<br>
* say ' nyp = 'nyp<br>
'd minloc(min(psl,y='y1',y='y2'),x='x1',x='x2')'<br>
rec=sublin(result,nxp+3)<br>
xc=subwrd(rec,1)<br>
'd minloc(min(psl,x='x1',x='x2'),y='y1',y='y2')'<br>
rec=sublin(result,nyp+3)<br>
yc=subwrd(rec,1)<br>
say<br>
say 'location of minimum "pressure"...'<br>
say<br>
say ' (xc,yc) = ('xc','yc')'<br>
*<br>
* find "world" coordinates of (xc,yc) and convert<br>
"world"<br>
coordinates<br>
* to "xy" coordinates for plotting track of hurricane<br>
center...<br>
*<br>
'set x 'xc<br>
lonval = subwrd(result,4)<br>
'set y 'yc<br>
latval = subwrd(result,4)<br>
say ' (lonval,latval) = ('lonval','latval')'<br>
'q w2xy 'lonval' 'latval<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
say ' (xpos,ypos) = ('xpos','ypos')'<br>
*<br>
* write (xpos,ypos) to output file...<br>
*<br>
res = write (''<a href="http://hurricane.nf" target="_blank">hurricane.nf</a><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>>'','t = 'tt'<br>
<br>
xpos = 'xpos' ypos = 'ypos'')<br>
<br>
pause()<br>
*<br>
* erase box showing area for defining hurricane<br>
center...<br>
*<br>
* 'set line 0 1'<br>
* 'draw rec 'xb1o' 'yb1o' 'xb2o' 'yb2o<br>
tt=tt+1<br>
endwhile<br>
<br>
res = close (''<a href="http://hurricane.nf" target="_blank">hurricane.nf</a><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>>'')<br>
<br>
<br>
nf=nf+1<br>
endwhile<br>
<br>
* Clear frame and re-plot base map...<br>
<br>
plot_base_map(plot_vpage,plot_area,lon1,lon2,lat1,lat2)<br>
<br>
* Plot track(s)...<br>
<br>
nf=1<br>
while ( nf <= nmodels )<br>
<br>
* Specify drawing primitives<br>
<br>
marktype = <a href="http://marks.nf" target="_blank">marks.nf</a> <<a href="http://marks.nf" target="_blank">http://marks.nf</a>><br>
<<a href="http://marks.nf" target="_blank">http://marks.nf</a>> <<a href="http://marks.nf" target="_blank">http://marks.nf</a>><br>
lcolor = <a href="http://colors.nf" target="_blank">colors.nf</a> <<a href="http://colors.nf" target="_blank">http://colors.nf</a>><br>
<<a href="http://colors.nf" target="_blank">http://colors.nf</a>> <<a href="http://colors.nf" target="_blank">http://colors.nf</a>><br>
<br>
<br>
<br>
say ' marktype, marksize, lcolor, lstyle and<br>
lthick:'<br>
say ' 'marktype ' ' marksize ' ' lcolor ' '<br>
lstyle ' '<br>
lthick<br>
<br>
tt=ts<br>
*<br>
* read (xpos,ypos) from ASCII text input file...<br>
*<br>
res = read(''<a href="http://hurricane.nf" target="_blank">hurricane.nf</a> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>>'') ; rc =<br>
<br>
sublin(res,1)<br>
if( rc != 0 )<br>
say '"read" status = 'rc<br>
exit<br>
endif<br>
rec = sublin(res,2) ; say '"hurricane.'nf'"<br>
record: 'rec<br>
xc = subwrd(rec,6) ; yc = subwrd(rec,9)<br>
<br>
'set line 'lcolor' 'lstyle' 'lthick<br>
'draw mark 'marktype' 'xc' 'yc' 'marksize<br>
tt = tt+1<br>
while ( tt <= nt )<br>
res = read(''<a href="http://hurricane.nf" target="_blank">hurricane.nf</a><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>> <<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>><br>
<<a href="http://hurricane.nf" target="_blank">http://hurricane.nf</a>>'') ; rc =<br>
<br>
sublin(res,1)<br>
if( rc != 0 )<br>
say '"read" status = 'rc<br>
exit<br>
endif<br>
rec = sublin(res,2) ; say '"hurricane.'nf'"<br>
record: 'rec<br>
xn = subwrd(rec,6) ; yn = subwrd(rec,9)<br>
say ' 'xc' 'yc' 'xn' 'yn<br>
'draw line 'xc' 'yc' 'xn' 'yn<br>
'draw mark 'marktype' 'xn' 'yn' 'marksize<br>
tt=tt+1<br>
xc = xn<br>
yc = yn<br>
endwhile<br>
<br>
nf=nf+1<br>
endwhile<br>
<br>
say<br>
say '...plot legend'<br>
''legend_plotter' -x 3 -y 6 'legend_info<br>
say<br>
<br>
'print'<br>
'disable print'<br>
<br>
say<br>
say<br>
'************************************************'<br>
say ' Finished with this script.'<br>
say<br>
'************************************************'<br>
say<br>
<br>
return<br>
<br>
function<br>
plot_base_map(plot_vpage,plot_area,lon1,lon2,lat1,lat2)<br>
<br>
* Plots base map...<br>
<br>
'c'<br>
'set vpage 'plot_vpage<br>
'set parea 'plot_area<br>
'set lon 'lon1' 'lon2<br>
'set lat 'lat1' 'lat2<br>
'set mproj latlon'<br>
'set mpt * 1 1 5'<br>
'set mpdset hires'<br>
'set poli on'<br>
* 'set grid on'<br>
'set grads off'<br>
'set gxout contour'<br>
'draw map'<br>
<br>
* add lon/lat lines...<br>
<br>
'set ccolor 1'<br>
'set cstyle 5' ; 'd lon'<br>
'set cstyle 5' ; 'd lat'<br>
<br>
* add title, x- and y-labels...<br>
<br>
'draw title \\ Track of Minimum Surface Pressure'<br>
'draw xlab Longitude \\'<br>
'draw ylab \\ Latitude'<br>
<br>
return<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>>><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>>>><br>
<br>
<br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
<br>
<br>
<br>
<br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>><br>
<mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>>><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
<br>
<br>
--<br>
Please note that <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>> should be considered my NOAA<br>
email address, not <a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a><br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>> <mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a><br>
<mailto:<a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>>>.<br>
<br>
********************************************************************<br>
Charles Seman <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>><br>
<mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> <mailto:<a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a>>><br>
U.S. Department of Commerce / NOAA / OAR<br>
Geophysical Fluid Dynamics Laboratory voice:<br>
(609) 452-6547<br>
201 Forrestal Road fax:<br>
(609) 987-5063<br>
Princeton, NJ 08540-6649 <a href="http://www.gfdl.noaa.gov/~cjs/" target="_blank">http://www.gfdl.noaa.gov/~cjs/</a><br>
********************************************************************<br>
<br>
"The contents of this message are mine personally and do not<br>
reflect any<br>
official or unofficial position of the United States Federal<br>
Government,<br>
the United States Department of Commerce, or NOAA."<br>
<br>
*<br>
*<br>
* Subject: Re: Tracking Hurricanes<br>
* From: Kun-Hsuan Chou <<a href="mailto:cwujou@TYPHOON.AS.NTU.EDU.TW" target="_blank">cwujou@TYPHOON.AS.NTU.EDU.TW</a><br>
<mailto:<a href="mailto:cwujou@TYPHOON.AS.NTU.EDU.TW" target="_blank">cwujou@TYPHOON.AS.NTU.EDU.TW</a>><br>
<mailto:<a href="mailto:cwujou@TYPHOON.AS.NTU.EDU.TW" target="_blank">cwujou@TYPHOON.AS.NTU.EDU.TW</a><br>
<mailto:<a href="mailto:cwujou@TYPHOON.AS.NTU.EDU.TW" target="_blank">cwujou@TYPHOON.AS.NTU.EDU.TW</a>>>><br>
<br>
* Date: Fri, 8 Oct 2004 08:03:20 +0800<br>
* To: <a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a><br>
<mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a>> <mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a><br>
<mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a>>><br>
<br>
*<br>
* Hi,<br>
*<br>
* I write a sample to track the maxminum wind speed, it<br>
should<br>
be the script that you want.<br>
<br>
*<br>
'd maxloc(max(mag(u,v),lon=120,lon=130),lat=15,lat=25)'<br>
line=sublin(result,2)<br>
ygrd=subwrd(line,4)<br>
'd maxloc(max(mag(u,v),lat=15,lat=25),lon=120,lon=130)'<br>
line=sublin(result,2)<br>
xgrd=subwrd(line,4)<br>
'set x 'xgrd<br>
lonval = subwrd(result,4)<br>
'set y 'ygrd<br>
latval = subwrd(result,4)<br>
'q w2xy 'lonval' 'latval<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
'draw mark 1 'xpos' 'ypos' .2'<br>
<br>
*============================================================================<br>
*Kun-Hsuan Chou<br>
*Postdoctoral Researcher<br>
*Department of Atmospheric Sciences<br>
*National Taiwan University<br>
*No. 1, Sec. 4, Roosevelt Rd., Taipei 106, Taiwan.<br>
*Phone: 886-2-23625896 ext. 243<br>
*Mobile: 0920079247<br>
*E-mail: <a href="mailto:cwujou@typhoon.as.ntu.edu.tw" target="_blank">cwujou@typhoon.as.ntu.edu.tw</a><br>
<mailto:<a href="mailto:cwujou@typhoon.as.ntu.edu.tw" target="_blank">cwujou@typhoon.as.ntu.edu.tw</a>><br>
<mailto:<a href="mailto:cwujou@typhoon.as.ntu.edu.tw" target="_blank">cwujou@typhoon.as.ntu.edu.tw</a><br>
<mailto:<a href="mailto:cwujou@typhoon.as.ntu.edu.tw" target="_blank">cwujou@typhoon.as.ntu.edu.tw</a>>><br>
<br>
*----- Original Message -----<br>
*From: Arturo Caracas Uribe<br>
*To: <a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a><br>
<mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a>> <mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a><br>
<mailto:<a href="mailto:GRADSUSR@LIST.CINECA.IT" target="_blank">GRADSUSR@LIST.CINECA.IT</a>>><br>
<br>
*Sent: Thursday, October 07, 2004 11:48 PM<br>
*Subject: Tracking Hurricanes<br>
*<br>
*Does anyone know how to get the maximum values of<br>
vorticity of<br>
a domain? (the value, lat and lon).I need the positions<br>
in order<br>
to track a hurricane.<br>
*Thanks in advance<br>
*<br>
*Arturo Caracas<br>
*Atmospheric Sciences, México.<br>
<br>
<br>
*----------------------------------------------------------------------<br>
*<br>
* Adapted from <a href="http://plot_hurricane_center2c.gs" target="_blank">plot_hurricane_center2c.gs</a><br>
<<a href="http://plot_hurricane_center2c.gs" target="_blank">http://plot_hurricane_center2c.gs</a>><br>
<<a href="http://plot_hurricane_center2c.gs" target="_blank">http://plot_hurricane_center2c.gs</a>>, which was adapted from:<br>
*<br>
* (1) "plot_hurricane_center2[a][b].gs" (from<br>
"<a href="http://plot_hurricane_center.gs" target="_blank">plot_hurricane_center.gs</a><br>
<<a href="http://plot_hurricane_center.gs" target="_blank">http://plot_hurricane_center.gs</a>><br>
<<a href="http://plot_hurricane_center.gs" target="_blank">http://plot_hurricane_center.gs</a>>"),<br>
<br>
* locally modified versions derived from Joe<br>
Covert's script<br>
* "<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>"<br>
(<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a> <mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>><br>
<mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a> <mailto:<a href="mailto:Joe.Covert@noaa.gov" target="_blank">Joe.Covert@noaa.gov</a>>>),<br>
which was<br>
posted to the<br>
* GrADS Listserv on 9/13/2004 (his script was named<br>
<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>)<br>
<br>
* on 4/27/06, found via a Google search for<br>
"<a href="http://plot_tc_shi.gs" target="_blank">plot_tc_shi.gs</a> <<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>><br>
<<a href="http://plot_tc_shi.gs" target="_blank">http://plot_tc_shi.gs</a>>":<br>
* <a href="http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs" target="_blank">http://caos.iisc.ernet.in/gslib/plot_tc_shi.gs</a><br>
*<br>
* (2) code in "hurricane_tracking.txt" (taken from an email<br>
exchange<br>
* posted to the GrADS Listserv by Kun-Hsuan Chou and<br>
* Arturo Caracas Uribe in Oct, 2004)<br>
*<br>
*<br>
* To use: grads -l<br>
*<br>
*----------------------------------------------------------------------<br>
<br>
function main()<br>
<br>
'reinit'<br>
<br>
************************************************************************<br>
* Allow external GrADS functions<br>
************************************************************************<br>
<br>
rc = gsfallow("on")<br>
<br>
************************************************************************<br>
* Define dataset file information and plotting limits<br>
for base<br>
map...<br>
************************************************************************<br>
<br>
** nc_file1 = ''<br>
** nc_file2 = ''<br>
** nc_file3 = ''<br>
** nc_file = ''nc_file1' 'nc_file2' 'nc_file3''<br>
nc_file = 'your_netCDF_file'<br>
<br>
lon1 = 298 ; lon2 = 308<br>
lat1 = 20 ; lat2 = 25<br>
<br>
************************************************************************<br>
* Legend captions, colors, and marks for the plots<br>
************************************************************************<br>
<br>
** nmodels = 1<br>
** model.1 = 'isabel_ras'<br>
** model.2 = 'isabel_isotke'<br>
** model.3 = 'isabel_my25'<br>
<br>
** titles.1 = model.1 ; colors.1 = 2 ; marks.1 = 2<br>
** titles.2 = model.2 ; colors.2 = 3 ; marks.2 = 2<br>
** titles.3 = model.3 ; colors.3 = 4 ; marks.3 = 2<br>
***<br>
*** Define the legend plotter input...<br>
***<br>
** titles = '-t' ; colors = '-c' ; marks = '-m' ; lines<br>
= '-l'<br>
** n=1<br>
** while ( n <= nmodels )<br>
** titles = ''titles' "'titles.n'"'<br>
** colors = ''colors' 'colors.n<br>
** marks = ''marks' "'marks.n'"'<br>
** lines = ''lines' 1'<br>
** n=n+1<br>
** endwhile<br>
<br>
** legend_info = ''colors' 'lines' 'marks' 'titles' -p'<br>
<br>
nmodels = 1<br>
model.1 = 'title_name_for_your_netCDF_dataset'<br>
<br>
titles.1 = model.1 ; colors.1 = 2 ; marks.1 = 2<br>
*<br>
* Define the legend plotter input...<br>
*<br>
titles = '-t' ; colors = '-c' ; marks = '-m' ; lines = '-l'<br>
n=1<br>
while ( n <= nmodels )<br>
titles = ''titles' "'titles.n'"'<br>
colors = ''colors' 'colors.n<br>
marks = ''marks' "'marks.n'"'<br>
lines = ''lines' 1'<br>
n=n+1<br>
endwhile<br>
<br>
legend_info = ''colors' 'lines' 'marks' 'titles' -p'<br>
<br>
* ...other drawing primitives<br>
<br>
marksize = 0.1<br>
<br>
lstyle = 1 ; lthick = 5<br>
<br>
************************************************************************<br>
* Use "cbar_line" or "cbar_line_box"?<br>
************************************************************************<br>
<br>
legend_plotter = 'cbar_line'<br>
* legend_plotter = 'cbar_line_box'<br>
<br>
************************************************************************<br>
* Plot page limits<br>
************************************************************************<br>
<br>
plot_vpage = '0 11 0 8.5'<br>
plot_area = '1 10 1 7.5'<br>
<br>
xl = subwrd(plot_area,1) ; xr = subwrd(plot_area,2)<br>
yb = subwrd(plot_area,3) ; yt = subwrd(plot_area,4)<br>
<br>
xc = xl + (xr-xl)/2<br>
<br>
************************************************************************<br>
* GrADS metafile output...<br>
************************************************************************<br>
<br>
'enable print hurricane_track.gx'<br>
<br>
*-----------------------------------------------------------------------<br>
* Define and plot track of minimum surface pressure for each<br>
dataset...<br>
*-----------------------------------------------------------------------<br>
<br>
nf=1<br>
while ( nf <= nmodels )<br>
<br>
* Open dataset file and define parameters...<br>
<br>
fname = subwrd(nc_file,nf)<br>
'sdfopen 'fname<br>
'set dfile 'nf<br>
'q file'<br>
rec3 = sublin(result,3) ; binary_file = subwrd(rec3,2)<br>
say<br>
say<br>
say '*** 'binary_file' ***'<br>
say<br>
rec5 = sublin(result,5)<br>
nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =<br>
subwrd(rec5,9) ; nt = subwrd(rec5,12)<br>
<br>
if( nf = 1 )<br>
<br>
* Plot base map...<br>
<br>
plot_base_map(plot_vpage,plot_area,lon1,lon2,lat1,lat2)<br>
<br>
endif<br>
<br>
* Define locations of "hurricane center" for plotting points,<br>
and write<<br>
<br>
...<br>
<br>
[Message clipped] function maxwind(args)<br>
'reinit'<br>
nc_file = subwrd(args,1)<br>
wind = subwrd(args,2)<br>
wind_units = subwrd(args,3)<br>
say<br>
say nc_file<br>
say wind' ('wind_units')'<br>
say<br>
'sdfopen 'nc_file<br>
'q file'<br>
say result<br>
say<br>
rec5 = sublin(result,5)<br>
nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz = subwrd(rec5,9) ;<br>
nt = subwrd(rec5,12)<br>
say<br>
say '(nx,ny,nz,nt) = ('nx','ny','nz','nt')'<br>
say<br>
nxp = nx<br>
nyp = ny<br>
nzp = nz<br>
*<br>
* get the x- and y-limits for virtual page<br>
*<br>
'q gxinfo'<br>
rec3 = sublin(result,3) ; xpl = subwrd(rec3,4) ; xpu = subwrd(rec3,6)<br>
rec4 = sublin(result,4) ; ypl = subwrd(rec4,4) ; ypu = subwrd(rec4,6)<br>
tt = 1<br>
while ( tt <= nt )<br>
'set x 1'<br>
'set y 1'<br>
'set z 1'<br>
'set t 'tt<br>
say 'tt = 'tt<br>
'set gxout print'<br>
'd max(max(max('wind',x=1,x='nx'),y=1,y='ny'),z=1,z='nz')'<br>
rec = sublin(result,(nyp+1)*nzp+3)<br>
max_wind = subwrd(rec,1)<br>
say ' max 'wind' = 'max_wind<br>
'd maxloc(max(max('wind',y=1,y='ny'),z=1,z='nz'),x=1,x='nx')'<br>
rec = sublin(result,(nzp+1)*nxp+3)<br>
xc = subwrd(rec,1)<br>
'd maxloc(max(max('wind',x=1,x='nx'),z=1,z='nz'),y=1,y='ny')'<br>
rec = sublin(result,(nzp+1)*nyp+3)<br>
yc = subwrd(rec,1)<br>
'd maxloc(max(max('wind',x=1,x='nx'),y=1,y='ny'),z=1,z='nz')'<br>
rec = sublin(result,(nyp+1)*nzp+3)<br>
zc = subwrd(rec,1)<br>
say ' (xc,yc,zc) = ('xc','yc','zc')'<br>
'd 'wind'(x='xc',y='yc',z='zc')'<br>
rec = sublin(result,2)<br>
wind_xc_yc_zc = subwrd(rec,1)<br>
say ' 'wind'(x='xc',y='yc',z='zc') = 'wind_xc_yc_zc<br>
*<br>
* find "world" coordinates of (xc,yc) and convert "world" coordinates<br>
* to "xy" coordinates for plotting track of hurricane center...<br>
*<br>
'set x 'xc<br>
lonc = subwrd(result,4)<br>
'set y 'yc<br>
latc = subwrd(result,4)<br>
say ' (lonc,latc,zc) = ('lonc','latc','zc')'<br>
'd 'wind'(lon='lonc',lat='latc',z='zc')'<br>
rec = sublin(result,2)<br>
wind_lnc_ltc_zc = subwrd(rec,1)<br>
say ' 'wind'(lon='lonc',lat='latc',z='zc') = 'wind_lnc_ltc_zc<br>
*<br>
* plot the wind and place a mark at the max<br>
*<br>
'c'<br>
'set vpage 'xpl' 'xpu' 'ypl' 'ypu<br>
'set parea 'xpl+1' 'xpu-1' 'ypl+1' 'ypu-1<br>
'set x 1 'nx<br>
'set y 1 'ny<br>
'set z 'zc<br>
'set gxout shaded'<br>
'set grads off'<br>
'd 'wind<br>
'run cbar 0.7'<br>
'draw title \ Max 'wind' = 'wind_lnc_ltc_zc' ('wind_units')\at<br>
(lonc,latc,zc)=('lonc','latc','zc')'<br>
'q w2xy 'lonc' 'latc<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
say ' (xpos,ypos) = ('xpos','ypos')'<br>
'set line 1 1 6'<br>
'draw mark 6 'xpos' 'ypos' 0.2'<br>
'c events'<br>
pause()<br>
tt=tt+1<br>
endwhile<br>
say '...finished.'<br>
'close 1'<br>
return<br>
<br>
function pause()<br>
*<br>
* Pauses till ENTER key is pressed<br>
*<br>
say<br>
say '*********************************'<br>
say 'Press "ENTER" key to continue...'<br>
say '*********************************'<br>
pull answer<br>
*<br>
return<br>
<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a> <mailto:<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a>><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
<br>
<br>
<br>
<br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org" target="_blank">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
</blockquote>
<br>
-- <br>
<br>
Please note that <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a> should be considered my NOAA<br>
email address, not <a href="mailto:cjs@gfdl.noaa.gov" target="_blank">cjs@gfdl.noaa.gov</a>.<br>
<br>
********************************************************************<br>
Charles Seman <a href="mailto:Charles.Seman@noaa.gov" target="_blank">Charles.Seman@noaa.gov</a><br>
U.S. Department of Commerce / NOAA / OAR<br>
Geophysical Fluid Dynamics Laboratory voice: (609) 452-6547<br>
201 Forrestal Road fax: (609) 987-5063<br>
Princeton, NJ 08540-6649 <a href="http://www.gfdl.noaa.gov/~cjs/" target="_blank">http://www.gfdl.noaa.gov/~cjs/</a><br>
********************************************************************<br>
<br>
"The contents of this message are mine personally and do not reflect any<br>
official or unofficial position of the United States Federal Government,<br>
the United States Department of Commerce, or NOAA."<br>
<br>function maxwind(args)<br>
'reinit'<br>
wind_nc_file = subwrd(args,1)<br>
wind_var = subwrd(args,2)<br>
wind_units = subwrd(args,3)<br>
lev_units = subwrd(args,4)<br>
say<br>
say wind_nc_file<br>
say wind_var' ('wind_units')'<br>
say<br>
<br>
* open "wind_nc_file" and define variables for (x,y,z,t) dimension limits<br>
<br>
'sdfopen 'wind_nc_file<br>
'q file'<br>
rec5 = sublin(result,5)<br>
nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz = subwrd(rec5,9) ; nt = subwrd(rec5,12)<br>
say result<br>
say '(nx,ny,nz,nt) = ('nx','ny','nz','nt')'<br>
say<br>
<br>
* define (x,y,z,t) lower and upper limits for finding max wind<br>
<br>
x1 = 2 ; x2 = nx-1<br>
y1 = 2 ; y2 = ny-1<br>
z1 = 2 ; z2 = nz-1<br>
t1 = 2 ; t2 = nt-1<br>
say '(x1,x2) = ('x1','x2')'<br>
say '(y1,y2) = ('y1','y2')'<br>
say '(z1,z2) = ('z1','z2')'<br>
say '(t1,t2) = ('t1','t2')'<br>
say<br>
<br>
* get the x- and y-limits for virtual page<br>
<br>
'q gxinfo'<br>
rec3 = sublin(result,3) ; xpl = subwrd(rec3,4) ; xpu = subwrd(rec3,6)<br>
rec4 = sublin(result,4) ; ypl = subwrd(rec4,4) ; ypu = subwrd(rec4,6)<br>
xptime = (xpu-xpl)/2 ; yptime = ypu-0.4<br>
<br>
* print plots into an output file?<br>
<br>
do_print = true<br>
<br>
* plot output<br>
<br>
if ( do_print = true )<br>
gx_file = 'maxwind_'wind_var'.gx'<br>
ps_file = 'maxwind_'wind_var'.ps'<br>
'enable print 'gx_file<br>
endif<br>
<br>
* loop over time<br>
<br>
tt = t1<br>
while ( tt <= t2 )<br>
<br>
* find max wind and its location<br>
<br>
'set x 1'<br>
'set y 1'<br>
'set z 1'<br>
'set t 'tt<br>
'q time' ; ttime = subwrd(result,3)<br>
say 'tt = 'tt' ('ttime')'<br>
'set gxout print'<br>
'd max(max(max('wind_var',x='x1',x='x2'),y='y1',y='y2'),z='z1',z='z2')'<br>
rec = sublin(result,(y2-y1+2)*(z2-z1+1)+3)<br>
max_wind = subwrd(rec,1)<br>
say ' max 'wind_var' = 'max_wind<br>
'd maxloc(max(max('wind_var',y='y1',y='y2'),z='z1',z='z2'),x='x1',x='x2')'<br>
rec = sublin(result,(z2-z1+2)*(x2-x1+1)+3)<br>
xc = subwrd(rec,1)<br>
'd maxloc(max(max('wind_var',x='x1',x='x2'),z='z1',z='z2'),y='y1',y='y2')'<br>
rec = sublin(result,(z2-z1+2)*(y2-y1+1)+3)<br>
yc = subwrd(rec,1)<br>
'd maxloc(max(max('wind_var',x='x1',x='x2'),y='y1',y='y2'),z='z1',z='z2')'<br>
rec = sublin(result,(y2-y1+2)*(z2-z1+1)+3)<br>
zc = subwrd(rec,1)<br>
say ' (xc,yc,zc) = ('xc','yc','zc')'<br>
'd 'wind_var'(x='xc',y='yc',z='zc')'<br>
rec = sublin(result,2)<br>
wind_xc_yc_zc = subwrd(rec,1)<br>
say ' 'wind_var'(x='xc',y='yc',z='zc') = 'wind_xc_yc_zc<br>
<br>
* find "world" coordinates of (xc,yc) and convert "world" coordinates<br>
* to "xy" coordinates for plotting track of hurricane center...<br>
<br>
'set x 'xc<br>
lonc = subwrd(result,4)<br>
'set y 'yc<br>
latc = subwrd(result,4)<br>
'set z 'zc<br>
levc = subwrd(result,4)<br>
say ' (lonc,latc,levc) = ('lonc','latc','levc')'<br>
'd 'wind_var'(lon='lonc',lat='latc',lev='levc')'<br>
rec = sublin(result,2)<br>
wind_lnc_ltc_lvc = subwrd(rec,1)<br>
say ' 'wind_var'(lon='lonc',lat='latc',lev='levc') = 'wind_lnc_ltc_lvc<br>
<br>
* plot the wind at the level of the max and place a mark at the max<br>
<br>
'c'<br>
'set vpage 'xpl' 'xpu' 'ypl' 'ypu<br>
'set parea 'xpl+1' 'xpu-1' 'ypl+1' 'ypu-1<br>
'set x 'x1' 'x2 ; lon1 = subwrd(result,4) ; lon2 = subwrd(result,5)<br>
'set y 'y1' 'y2 ; lat1 = subwrd(result,4) ; lat2 = subwrd(result,5)<br>
'set z 'zc<br>
'set gxout shaded'<br>
'set grads off'<br>
'd 'wind_var<br>
'run cbar 0.7'<br>
'set strsiz 0.16'<br>
'set string 1 c 6'<br>
'draw string 'xptime' 'yptime' 'ttime<br>
'draw title 'wind_var' ('wind_units') \ max='wind_lnc_ltc_lvc' at: \ (x,y,z)=('xc','yc','zc'), (lon,lat,lev)=('lonc'E,'latc'N,'levc''lev_units')'<br>
'draw xlab plot: 'lon1'E to 'lon2'E \'<br>
'draw ylab \ plot: 'lat1'N to 'lat2'N'<br>
'q w2xy 'lonc' 'latc<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
say ' (xpos,ypos) = ('xpos','ypos')'<br>
'set line 1 1 6'<br>
'draw mark 6 'xpos' 'ypos' 0.2'<br>
if ( do_print = true )<br>
'print'<br>
endif<br>
'c events'<br>
*** pause()<br>
tt=tt+1<br>
endwhile<br>
say '...finished.'<br>
'close 1'<br>
if ( do_print = true )<br>
say<br>
'disable print'<br>
'!gxps -c -i 'gx_file' -o 'ps_file<br>
'!ps2pdf 'ps_file<br>
'!rm 'gx_file' 'ps_file<br>
endif<br>
return<br>
<br>
function pause()<br>
<br>
* Pauses till ENTER key is pressed<br>
<br>
say<br>
say '*********************************'<br>
say 'Press "ENTER" key to continue...'<br>
say '*********************************'<br>
pull answer<br>
return<br>
<br>
<br>function maxwind2(args)<br>
'reinit'<br>
wind1_nc_file = subwrd(args,1) ; wind1_var = subwrd(args,2)<br>
wind2_nc_file = subwrd(args,3) ; wind2_var = subwrd(args,4)<br>
wind_units = subwrd(args,5)<br>
lev_units = subwrd(args,6)<br>
say<br>
say wind1_nc_file<br>
say wind1_var<br>
say wind2_nc_file<br>
say wind2_var<br>
say 'wind units: ('wind_units')'<br>
say ' lev units: ('lev_units')'<br>
say<br>
<br>
* open "wind1_nc_file" and "wind2_nc_file" and<br>
* define variables for (x,y,z,t) dimension limits<br>
<br>
'sdfopen 'wind1_nc_file<br>
'q file 1'<br>
rec5 = sublin(result,5)<br>
nx1 = subwrd(rec5,3) ; ny1 = subwrd(rec5,6) ; nz1 = subwrd(rec5,9) ; nt1 = subwrd(rec5,12)<br>
say result<br>
say '(nx1,ny1,nz1,nt1) = ('nx1','ny1','nz1','nt1')'<br>
say<br>
'sdfopen 'wind2_nc_file<br>
'q file 2'<br>
rec5 = sublin(result,5)<br>
nx2 = subwrd(rec5,3) ; ny2 = subwrd(rec5,6) ; nz2 = subwrd(rec5,9) ; nt2 = subwrd(rec5,12)<br>
say result<br>
say '(nx2,ny2,nz2,nt2) = ('nx2','ny2','nz2','nt2')'<br>
say<br>
<br>
* make sure (x,y,z,t) dimensions are the same for "wind1_nc_file" and "wind2_nc_file"<br>
* and, if so, define general variable names for (x,y,z,t) dimension limits<br>
<br>
if( nx2 = nx1 )<br>
nx = nx1<br>
else<br>
say<br>
say 'nx1 = 'nx1<br>
say 'nx2 = 'nx2<br>
say '...are not equal'<br>
say<br>
exit<br>
endif<br>
if( ny2 = ny1 )<br>
ny = ny1<br>
else<br>
say<br>
say 'ny1 = 'ny1<br>
say 'ny2 = 'ny2<br>
say '...are not equal'<br>
say<br>
exit<br>
endif<br>
if( nz2 = nz1 )<br>
nz = nz1<br>
else<br>
say<br>
say 'nz1 = 'nz1<br>
say 'nz2 = 'nz2<br>
say '...are not equal'<br>
say<br>
exit<br>
endif<br>
if( nt2 = nt1 )<br>
nt = nt1<br>
else<br>
say<br>
say 'nt1 = 'nt1<br>
say 'nt2 = 'nt2<br>
say '...are not equal'<br>
say<br>
exit<br>
endif<br>
<br>
* define (x,y,z,t) lower and upper limits for finding max wind<br>
<br>
x1 = 2 ; x2 = nx-1<br>
y1 = 2 ; y2 = ny-1<br>
z1 = 2 ; z2 = nz-1<br>
t1 = 2 ; t2 = nt-1<br>
say '(x1,x2) = ('x1','x2')'<br>
say '(y1,y2) = ('y1','y2')'<br>
say '(z1,z2) = ('z1','z2')'<br>
say '(t1,t2) = ('t1','t2')'<br>
say<br>
<br>
* get the x- and y-limits for virtual page<br>
<br>
'q gxinfo'<br>
rec3 = sublin(result,3) ; xpl = subwrd(rec3,4) ; xpu = subwrd(rec3,6)<br>
rec4 = sublin(result,4) ; ypl = subwrd(rec4,4) ; ypu = subwrd(rec4,6)<br>
xptime = (xpu-xpl)/2 ; yptime = ypu-0.4<br>
<br>
* print plots into an output file?<br>
<br>
do_print = true<br>
<br>
* plot output<br>
<br>
if ( do_print = true )<br>
gx_file = 'maxwind2.gx'<br>
ps_file = '<a href="http://maxwind2.ps" target="_blank">maxwind2.ps</a>'<br>
'enable print 'gx_file<br>
endif<br>
<br>
* loop over time<br>
<br>
tt = t1<br>
while ( tt <= t2 )<br>
<br>
* use "wind1_nc_file" to define dimensions<br>
<br>
'set dfile 1'<br>
'set t 'tt<br>
'q time' ; ttime = subwrd(result,3)<br>
say 'tt = 'tt' ('ttime')'<br>
<br>
* define wind magnitude variable for this time level<br>
<br>
'set x 1 'nx<br>
'set y 1 'ny<br>
'set z 1 'nz<br>
'define wind = mag('wind1_var'.1,'wind2_var'.2)'<br>
<br>
* find max wind and its location<br>
<br>
'set x 1'<br>
'set y 1'<br>
'set z 1'<br>
'set gxout print'<br>
'd max(max(max(wind,x='x1',x='x2'),y='y1',y='y2'),z='z1',z='z2')'<br>
rec = sublin(result,(y2-y1+2)*(z2-z1+1)+3)<br>
max_wind = subwrd(rec,1)<br>
say ' max wind = 'max_wind<br>
'd maxloc(max(max(wind,y='y1',y='y2'),z='z1',z='z2'),x='x1',x='x2')'<br>
rec = sublin(result,(z2-z1+2)*(x2-x1+1)+3)<br>
xc = subwrd(rec,1)<br>
'd maxloc(max(max(wind,x='x1',x='x2'),z='z1',z='z2'),y='y1',y='y2')'<br>
rec = sublin(result,(z2-z1+2)*(y2-y1+1)+3)<br>
yc = subwrd(rec,1)<br>
'd maxloc(max(max(wind,x='x1',x='x2'),y='y1',y='y2'),z='z1',z='z2')'<br>
rec = sublin(result,(y2-y1+2)*(z2-z1+1)+3)<br>
zc = subwrd(rec,1)<br>
say ' (xc,yc,zc) = ('xc','yc','zc')'<br>
'd wind(x='xc',y='yc',z='zc')'<br>
rec = sublin(result,2)<br>
wind_xc_yc_zc = subwrd(rec,1)<br>
say ' wind(x='xc',y='yc',z='zc') = 'wind_xc_yc_zc<br>
<br>
* find "world" coordinates of (xc,yc) and convert "world" coordinates<br>
* to "xy" coordinates for plotting track of hurricane center...<br>
<br>
'set x 'xc<br>
lonc = subwrd(result,4)<br>
'set y 'yc<br>
latc = subwrd(result,4)<br>
'set z 'zc<br>
levc = subwrd(result,4)<br>
say ' (lonc,latc,levc) = ('lonc','latc','levc')'<br>
'd wind(lon='lonc',lat='latc',lev='levc')'<br>
rec = sublin(result,2)<br>
wind_lnc_ltc_lvc = subwrd(rec,1)<br>
say ' wind(lon='lonc',lat='latc',lev='levc') = 'wind_lnc_ltc_lvc<br>
<br>
* plot the wind at the level of the max and place a mark at the max<br>
<br>
'c'<br>
'set vpage 'xpl' 'xpu' 'ypl' 'ypu<br>
'set parea 'xpl+1' 'xpu-1' 'ypl+1' 'ypu-1<br>
'set x 'x1' 'x2 ; lon1 = subwrd(result,4) ; lon2 = subwrd(result,5)<br>
'set y 'y1' 'y2 ; lat1 = subwrd(result,4) ; lat2 = subwrd(result,5)<br>
'set z 'zc<br>
'set gxout shaded'<br>
'set grads off'<br>
'd 'wind<br>
'run cbar 0.7'<br>
'set strsiz 0.16'<br>
'set string 1 c 6'<br>
'draw string 'xptime' 'yptime' 'ttime<br>
'draw title Wind Magnitude ('wind_units') \ max='wind_lnc_ltc_lvc' at: \ (x,y,z)=('xc','yc','zc'), (lon,lat,lev)=('lonc'E,'latc'N,'levc''lev_units')'<br>
'draw xlab plot: 'lon1'E to 'lon2'E\'<br>
'draw ylab \ plot: 'lat1'N to 'lat2'N'<br>
'q w2xy 'lonc' 'latc<br>
xpos = subwrd(result,3)<br>
ypos = subwrd(result,6)<br>
say ' (xpos,ypos) = ('xpos','ypos')'<br>
'set line 1 1 6'<br>
'draw mark 6 'xpos' 'ypos' 0.2'<br>
if ( do_print = true )<br>
'print'<br>
endif<br>
'c events'<br>
'undefine wind'<br>
*** pause()<br>
tt=tt+1<br>
endwhile<br>
say '...finished.'<br>
'close 2' ; 'close 1'<br>
if ( do_print = true )<br>
say<br>
'disable print'<br>
'!gxps -c -i 'gx_file' -o 'ps_file<br>
'!ps2pdf 'ps_file<br>
'!rm 'gx_file' 'ps_file<br>
endif<br>
return<br>
<br>
function pause()<br>
<br>
* Pauses till ENTER key is pressed<br>
<br>
say<br>
say '*********************************'<br>
say 'Press "ENTER" key to continue...'<br>
say '*********************************'<br>
pull answer<br>
return<br>
<br>
<br>_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
<a href="http://gradsusr.org/mailman/listinfo/gradsusr" target="_blank">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>सुशांत पुराणिक <br>वातावरणशास्त्र व अवकाशशास्त्र विभाग,<br>पुणे विद्यापीठ <br>पुणे-०७, महाराष्ट्र <br>भारत. <br><br><br><br>
</div>