<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
Many have asked me for the code to draw cyclone tracks. My scripts to draw these plots are still under development and are being hardened with every forecast cycle. I will share when they are ready. The core of the algorithm is below, starting with a ulon/ulat
 that are close to the center of a local minimum in sea level pressure:</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<font face="Courier" style="font-size: 14px;" class="">'set lon 'ulon<br class="">
'set lat 'ulat<br class="">
dimexpr='lon='ulon-radius',lon='ulon&#43;radius',lat='ulat-radius',lat='ulat&#43;radius<br class="">
* get the grid coordinates&nbsp;</font></div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<font face="Courier" style="font-size: 14px;" class="">'d aminlocx(mslp.1,'dimexpr')' ; minlocx=subwrd(result,4)<br class="">
'd aminlocy(mslp.1,'dimexpr')' ; minlocy=subwrd(result,4)<br class="">
<br class="">
* Convert the grid coordinates to lat/lon, save in a script variable&nbsp;<br class="">
'set x 'minlocx ; minlon.e.t=subwrd(result,4)<br class="">
'set y 'minlocy ; minlat.e.t=subwrd(result,4)</font></div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
The above code is in a loop, so that each minlon/minlat becomes the starting point (ulon/ulat) for the next time step/ensemble. After I have all the slp minimum location data for each ensemble member and time step, then I draw the lines. Start with an empty
 lat/lon map to set up the scaling, then use ‘q w2xy’ to get the page coordinates for each point and save them in another script variable. Connect the points with ‘draw line’:</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<font face="Courier" style="font-size: 14px;" class="">* &nbsp; get the page coordinates<br class="">
'q w2xy 'minlon.e.t' 'minlat.e.t<br class="">
minx.e.t=subwrd(result,3)&nbsp;<br class="">
miny.e.t=subwrd(result,6)&nbsp; &nbsp;&nbsp;<br class="">
* &nbsp; draw the line<br class="">
tm1=t-1<br class="">
'draw line 'minx.e.tm1' 'miny.e.tm1' 'minx.e.t' ‘miny.e.t</font><br class="">
<br class="">
Bells and whistles include the background map, line styles and colors, mark types and sizes, watches and warnings and position data from NHC, annotation, and the wind masks, which are defined using the following expressions:</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<font face="Courier" style="font-size: 14px;" class="">'spd39=sum(sum(const(const(maskout(mph.2,mph.2-39),1),0,-u),t=1,t='tfinal'),e=2,e='efinal')'<br class="">
'spd58=sum(sum(const(const(maskout(mph.2,mph.2-58),1),0,-u),t=1,t='tfinal'),e=2,e='efinal')'<br class="">
'spd74=sum(sum(const(const(maskout(mph.2,mph.2-74),1),0,-u),t=1,t='tfinal'),e=2,e='efinal')'<br class="">
</font><br class="">
That ought to be enough to get you started drawing your own cyclone tracks.&nbsp;</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
In the meanwhile, here is my latest, with Jose and Maria:&nbsp;</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br class="">
</div>
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<img apple-inline="yes" id="FA6CC470-041E-4D2B-B098-FA90A514A52A" src="cid:2AFE93CD-A2FC-4E13-A95C-E655390F8E75@mesa.gmu.edu" class=""><br class="">
<div class=""><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">On Sep 7, 2017, at 3:40 PM, Frank Colby &lt;<a href="mailto:Frank_Colby@uml.edu" class="">Frank_Colby@uml.edu</a>&gt; wrote:<br class="">
<br class="">
Jennifer,<br class="">
<br class="">
Beautiful map! &nbsp;Would you share the script?<br class="">
<br class="">
Thanks,<br class="">
Frank Colby<br class="">
UMass Lowell<br class="">
<br class="">
_______________________________________________<br class="">
gradsusr mailing list<br class="">
<a href="mailto:gradsusr@gradsusr.org" class="">gradsusr@gradsusr.org</a><br class="">
http://gradsusr.org/mailman/listinfo/gradsusr<br class="">
</blockquote>
<br class="">
<div class="">--<br class="">
Jennifer Miletta Adams<br class="">
Center for Ocean-Land-Atmosphere Studies (COLA)<br class="">
George Mason University<br class="">
<br class="">
<br class="">
</div>
<br class="">
</div>
</div>
</div>
</body>
</html>