2015-10-30 12:08:43 +00:00
######################################################################################
## SPS - SIGNIFICANT WEATHER ADVISORY ##
## WRITTEN BY: ##
## TOM BIRCHARD WFO HFO/EVAN BOOKBINDER WFO PBZ ##
## Modified by: ##
## Phil Kurimski 9/16/2013 OB13.5.2-4 MAJOR RELEASE ##
## Evan Bookbinder 9/18/2013 Implemented config.vm ##
## Mike Dangelo 6/24/2014 Made inclusion of both watches dependent on GUI ##
## bullet choices ##
## Mike Dangelo 26 Mar 2015 Mixed Case edits ##
## Evan Bookbinder 6/15/15 Fixed horrible grammar on line-based selections ##
## Evan Bookbinder 9/4/15 Replaced flash flooding with localized flooding in ##
## torrentainRain CTA so as not to imply need for FFW ##
## Phil Kurimski 10/20/2015 Fixed line of storms wording/added campers CTA ##
######################################################################################
2012-01-06 08:55:05 -06:00
##
##SET SOME INITIAL VARIABLES
2013-09-30 13:05:31 -04:00
#parse("config.vm")
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2015-10-30 12:08:43 +00:00
#set($report = "strong thunderstorms were reported")
#set($reportType1 = "strong thunderstorms")
2015-06-08 14:14:55 -05:00
#set($reportType2 = "these storms were")
2012-01-06 08:55:05 -06:00
#else
2015-09-23 17:37:51 -05:00
#set($report = "a strong thunderstorm was reported")
2015-10-30 12:08:43 +00:00
#set($reportType1 = "a strong thunderstorm")
2015-06-08 14:14:55 -05:00
#set($reportType2 = "this storm was")
2012-01-06 08:55:05 -06:00
#end
2013-09-30 13:05:31 -04:00
#set($windThreat = "")
#set($hailThreat = "")
#set($hailTrail = "")
2012-01-06 08:55:05 -06:00
#############################################################
#### CREATE BASIS WORDING ###################################
#############################################################
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "doppler")})
2015-10-30 12:08:43 +00:00
#set($report = "Doppler radar was tracking ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "capable of producing")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "stormSpotters")})
2015-10-30 12:08:43 +00:00
#set($report = "trained weather spotters reported ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "producing")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "lawEnforcement")})
2015-10-30 12:08:43 +00:00
#set($report = "local law enforcement reported ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "producing")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "emergencyMgmt")})
2015-10-30 12:08:43 +00:00
#set($report = "emergency management reported ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "producing")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "public")})
2015-10-30 12:08:43 +00:00
#set($report = "the public reported ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "producing")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "amateurRadio")})
2015-10-30 12:08:43 +00:00
#set($report = "amateur radio operators reported ${reportType1}")
2015-06-08 14:14:55 -05:00
#set($reportAuthSVR = "producing")
2012-01-06 08:55:05 -06:00
#end
###################################################
## HANDLE WIND POSSIBILITIES ######################
###################################################
2013-07-18 12:07:22 -04:00
#set($windSpeed = 0)
#if(${list.contains(${bullets}, "wind30")})
2015-06-08 14:14:55 -05:00
#set($windThreat = "Winds in excess of 30 mph")
2013-07-18 12:07:22 -04:00
#set($windSpeed = 30)
#set($windTag = "30MPH")
#end
#if(${list.contains(${bullets}, "wind40")})
2015-06-08 14:14:55 -05:00
#set($windThreat = "Winds in excess of 40 mph")
2013-07-18 12:07:22 -04:00
#set($windSpeed = 40)
#set($windTag = "40MPH")
#end
#if(${list.contains(${bullets}, "wind50")})
2015-06-08 14:14:55 -05:00
#set($windThreat = "Wind gusts up to 50 mph")
2013-07-18 12:07:22 -04:00
#set($windSpeed = 50)
#set($windTag = "50MPH")
2012-01-06 08:55:05 -06:00
#end
2013-09-30 13:05:31 -04:00
#if(${list.contains(${bullets}, "wind55")})
2015-06-08 14:14:55 -05:00
#set($windThreat = "Wind gusts of 50 to 55 mph")
2013-09-30 13:05:31 -04:00
#set($windSpeed = 50)
#set($windTag = "55MPH")
#end
2012-01-06 08:55:05 -06:00
###################################################
## HANDLE HAIL POSSIBILITIES ######################
###################################################
2013-07-18 12:07:22 -04:00
#set($hailSize = 0)
#set($smallHail = "")
#if(${list.contains(${bullets}, "peaHail")})
2013-09-30 13:05:31 -04:00
#set($hailSize = 0.25)
2015-06-08 14:14:55 -05:00
#set($hailThreat = "Pea size")
#set($hailTrail = " hail")
2013-07-18 12:07:22 -04:00
#end
2013-09-30 13:05:31 -04:00
#if(${list.contains(${bullets}, "halfHail")})
#set($hailSize = 0.50)
2015-06-08 14:14:55 -05:00
#set($hailThreat = "Half inch")
#set($hailTrail = " hail")
2013-09-30 13:05:31 -04:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "dimeHail")})
#set($hailSize = 0.75)
2015-06-08 14:14:55 -05:00
#set($hailThreat = "Dime size")
#set($hailTrail = " hail")
2013-07-18 12:07:22 -04:00
#end
#if(${list.contains(${bullets}, "nickelHail")})
#set($hailSize = 0.88)
2015-06-08 14:14:55 -05:00
#set($hailThreat = "Nickel size")
#set($hailTrail = " hail")
2012-01-06 08:55:05 -06:00
#end
################################################################
######### ~*~*~*~*~*~* BEGIN OUTPUT ~*~*~*~*~*~*~ ##############
################################################################
${WMOId} ${vtecOffice} 000000 ${BBBId}
SPS${siteId}
#if(${productClass}=="T")
2015-06-24 14:42:53 -05:00
TEST...Special Weather Statement...TEST##
2012-01-06 08:55:05 -06:00
#else
2015-06-24 14:42:53 -05:00
Special Weather Statement##
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
2015-06-24 14:42:53 -05:00
National Weather Service ${officeShort}
2012-01-06 08:55:05 -06:00
#backupText(${backupSite})
2015-06-24 14:42:53 -05:00
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
2012-01-06 08:55:05 -06:00
#if(${productClass}=="T")
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
${ugcline}
#foreach (${area} in ${areas})
2015-10-30 12:08:43 +00:00
#capitalize(${area.name} "FIRST")
2013-09-30 13:05:31 -04:00
#if(${includeStateAbbreviation}==true)
${area.stateabbr}##
2012-01-06 08:55:05 -06:00
#end
2013-09-30 13:05:31 -04:00
-##
#end
2015-06-24 14:42:53 -05:00
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
2012-01-06 08:55:05 -06:00
#if(${productClass}=="T")
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
THIS IS A TEST MESSAGE. ##
#end
#if(${windSpeed} >= 40 || ${hailSize} >= 0.70)
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
...SIGNIFICANT WEATHER ADVISORY FOR ##
2015-06-08 14:14:55 -05:00
## #zoneHeadlineLocList(${areas} true true true false "ALL")
2013-07-18 12:07:22 -04:00
##REPLACE WITH THE LINE ABOVE WITH THE FOLLOWING IF YOU USE ZONE OUTPUT
2015-06-08 14:14:55 -05:00
#headlineLocList(${affectedCounties} true true true false "ALL")
UNTIL #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
2012-01-06 08:55:05 -06:00
...##
#elseif(${windSpeed} == 0 && ${hailSize} == 0)
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
!** YOU DID NOT SELECT ANY WIND OR HAIL THREATS. PLEASE RE-GENERATE THIS ADVISORY **!
#else
2015-06-08 14:14:55 -05:00
2012-01-06 08:55:05 -06:00
...SPECIAL WEATHER STATEMENT...
#end
######################################################
###### Storm current location description ##########
######################################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
2013-07-18 12:07:22 -04:00
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
2015-06-08 14:14:55 -05:00
, ${report} ##
2013-09-30 13:05:31 -04:00
##Many of the variables passed below are controlled by config.vm
2013-07-18 12:07:22 -04:00
#if(${stormType} == "line")
2013-09-30 13:05:31 -04:00
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
2013-07-18 12:07:22 -04:00
#else
2013-09-30 13:05:31 -04:00
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
2013-07-18 12:07:22 -04:00
#end
2013-09-30 13:05:31 -04:00
#if(${movementSpeed} < ${landStationary} || ${stationary})
2015-06-08 14:14:55 -05:00
. ${reportType2} nearly stationary. ${smallHail}
2012-01-06 08:55:05 -06:00
#else
#if(${stormType} == "line")
2015-10-30 12:08:43 +00:00
. Movement was ##
2012-01-06 08:55:05 -06:00
#else
2015-06-08 14:14:55 -05:00
, moving ##
2012-01-06 08:55:05 -06:00
#end
2015-06-08 14:14:55 -05:00
#direction(${movementDirectionRounded}) at ${mathUtil.roundTo5(${movementSpeed})} mph. ${smallHail}
2012-01-06 08:55:05 -06:00
#end
#if(${stormType} == "line")
2013-09-30 13:05:31 -04:00
#if(${hailThreat} != "" && ${windThreat} != "")
2015-06-08 14:14:55 -05:00
${hailThreat}${hailTrail} and #capitalize(${windThreat} "NONE") will be possible with these storms.
2013-09-30 13:05:31 -04:00
#elseif(${hailThreat}=="" && ${windThreat}!="")
2015-06-08 14:14:55 -05:00
${windThreat} will be possible with these storms.
2013-09-30 13:05:31 -04:00
#elseif(${hailThreat}!="" && ${windThreat}=="")
2015-06-08 14:14:55 -05:00
${hailThreat}${hailTrail} will be possible with these storms.
2012-01-06 08:55:05 -06:00
#end
#else
2013-09-30 13:05:31 -04:00
#if(${hailThreat} != "" && ${windThreat} != "")
2015-09-23 17:37:51 -05:00
${hailThreat}${hailTrail} and #capitalize(${windThreat} "NONE") will be possible with this storm.
2013-09-30 13:05:31 -04:00
#elseif(${hailThreat}=="" && ${windThreat}!="")
2015-06-08 14:14:55 -05:00
${windThreat} will be possible with this storm.
2013-09-30 13:05:31 -04:00
#elseif(${hailThreat}!="" && ${windThreat}=="")
2015-06-08 14:14:55 -05:00
${hailThreat}${hailTrail} will be possible with this storm.
2012-01-06 08:55:05 -06:00
#end
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
###################################################
######## GENERATE PATHCAST OR CITIES LIST #########
###################################################
#if(${stormType} == "line")
2015-06-08 14:14:55 -05:00
#set($pathcastLead = "Strong thunderstorms")
#set($otherLead = "These storms")
2012-01-06 08:55:05 -06:00
#else
2015-06-08 14:14:55 -05:00
#set($pathcastLead = "This strong thunderstorm")
#set($otherLead = "This storm")
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "pathcast")})
2012-01-06 08:55:05 -06:00
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
2015-06-08 14:14:55 -05:00
#pathCast("${pathcastLead} will be near..." ${otherLead} ${pathCast} ${otherPoints} ${affectedCounties} ${dateUtil} ${timeFormat} 0)
2012-01-06 08:55:05 -06:00
2013-07-18 12:07:22 -04:00
#elseif(${list.contains(${bullets}, "listofcities")})
2012-01-06 08:55:05 -06:00
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#### THE THIRD ARGUMENT IS A NUMBER SPECIFYING THE NUMBER OF COLUMNS TO OUTPUT THE CITIES LIST IN
#### 0 IS A ... SEPARATED LIST, 1 IS ONE PER LINE, >1 IS A COLUMN FORMAT
#### IF YOU USE SOMETHING OTHER THAN "LOCATIONS IMPACTED INCLUDE" LEAD IN BELOW, MAKE SURE THE
#### ACCOMPANYING XML FILE PARSE STRING IS CHANGED TO MATCH!
2015-06-08 14:14:55 -05:00
#locationsList("Locations impacted include..." ${otherLead} 0 ${cityList} ${otherPoints} ${affectedCounties} ${dateUtil} ${timeFormat} 0)
2012-01-06 08:55:05 -06:00
#end
##############################################
##############################################
###### SPECIAL VENUE/EVENT CASE ##############
##############################################
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "specialEvent")})
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2015-06-08 14:14:55 -05:00
Those attending the !**EVENT/VENUE NAME OR LOCATION**! are in the path of these storms and should prepare for imminent dangerous weather conditions.
2012-01-06 08:55:05 -06:00
#else
2015-06-08 14:14:55 -05:00
Those attending the !**EVENT/VENUE NAME OR LOCATION**! are in the path of this storm and should prepare for imminent dangerous weather conditions.
2012-01-06 08:55:05 -06:00
#end
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
2012-02-22 11:14:43 -06:00
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
2013-09-30 13:05:31 -04:00
## Uncomment below pull in point marker info
## #parse("pointMarkers.vm")
2012-02-22 11:14:43 -06:00
2012-01-06 08:55:05 -06:00
##################################
######### CALLS TO ACTION ########
##################################
2013-07-18 12:07:22 -04:00
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
2012-01-06 08:55:05 -06:00
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "torrentialRainfallCTA")})
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2015-10-30 12:08:43 +00:00
Torrential rainfall is also occurring with these storms, and may lead to localized flooding. Do not drive your vehicle through flooded roadways.
2012-01-06 08:55:05 -06:00
#else
2015-10-30 12:08:43 +00:00
Torrential rainfall is also occurring with this storm, and may lead to localized flooding. Do not drive your vehicle through flooded roadways.
2012-01-06 08:55:05 -06:00
#end
#end
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "lightningCTA")})
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2015-10-30 12:08:43 +00:00
Frequent cloud to ground lightning is occurring with these storms. Lightning can strike 10 miles away from a thunderstorm. Seek a safe shelter inside a building or vehicle.
2012-01-06 08:55:05 -06:00
#else
2015-10-30 12:08:43 +00:00
Frequent cloud to ground lightning is occurring with this storm. Lightning can strike 10 miles away from a thunderstorm. Seek a safe shelter inside a building or vehicle.
2012-01-06 08:55:05 -06:00
#end
#end
##
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "stormIntensify")})
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2015-06-08 14:14:55 -05:00
These storms may intensify, so be certain to monitor local radio stations and available television stations for additional information and possible warnings from the National Weather Service.
2012-01-06 08:55:05 -06:00
#else
2015-06-08 14:14:55 -05:00
This storm may intensify, so be certain to monitor local radio stations and available television stations for additional information and possible warnings from the National Weather Service.
2012-01-06 08:55:05 -06:00
#end
#end
##
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "lawEnforcementCTA")})
2015-06-08 14:14:55 -05:00
To report severe weather, contact your nearest law enforcement agency. They will relay your report to the National Weather Service office in ${officeLoc}.
2012-01-06 08:55:05 -06:00
#end
##
2013-07-18 12:07:22 -04:00
#if(${list.contains(${bullets}, "boatersCTA")})
2015-10-30 12:08:43 +00:00
If on or near !**NAME OF LAKE**!, get out of the water and move indoors or inside a vehicle. Remember, lightning can strike out to 10 miles from the parent thunderstorm. If you can hear thunder, you are close enough to be struck by lightning. Move to safe shelter now! Do not be caught on the water in a thunderstorm.
2012-01-06 08:55:05 -06:00
#end
2013-07-18 12:07:22 -04:00
2015-10-30 12:08:43 +00:00
##
#if(${list.contains(${bullets}, "camperCTA")})
#if(${stormType} == "line")
Persons in campgrounds should consider seeking sturdy shelter until these storms pass.
#else
Persons in campgrounds should consider seeking sturdy shelter until this storm passes.
#end
#end
2012-01-06 08:55:05 -06:00
##
#if(${ctaSelected} == "YES")
&&
#end
#############
## WATCHES ##
#############
2014-10-01 15:55:10 -04:00
#if(${list.contains(${includedWatches}, "TO.A")} && ${list.contains(${bullets}, "includeTorWatches")})
2012-01-06 08:55:05 -06:00
#inserttorwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
#end
2014-10-01 15:55:10 -04:00
#if(${list.contains(${includedWatches}, "SV.A")} && ${list.contains(${bullets}, "includeSvrWatches")})
2012-01-06 08:55:05 -06:00
#insertsvrwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
#end
####################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
####################################
#end
#printcoords(${areaPoly}, ${list})
2013-07-18 12:07:22 -04:00
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
2012-01-06 08:55:05 -06:00
2012-03-27 17:20:30 -05:00
2012-01-06 08:55:05 -06:00
$$
2013-07-18 12:07:22 -04:00
#parse("forecasterName.vm")