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 ##
2016-05-13 11:27:01 -04:00
## Evan Bookbinder 4/29/2016 Fixed storm intensify to a CTA ##
2015-10-30 12:08:43 +00:00
######################################################################################
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")
2016-07-12 20:09:36 +00: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")
2016-07-12 20:09:36 +00: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}
2016-03-10 16:38:11 -06:00
${productId}${siteId}
2012-01-06 08:55:05 -06:00
#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})
2016-03-10 16:38:11 -06:00
#commaOrEllipsis()${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
2016-03-10 16:38:11 -06:00
#commaOrEllipsis()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")
2016-03-10 16:38:11 -06: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
2016-03-10 16:38:11 -06: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")
2016-03-10 16:38:11 -06:00
Torrential rainfall is also occurring with these storms#commaOrEllipsis()and may lead to localized flooding. Do not drive your vehicle through flooded roadways.
2012-01-06 08:55:05 -06:00
#else
2016-03-10 16:38:11 -06:00
Torrential rainfall is also occurring with this storm#commaOrEllipsis()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
##
2016-05-13 11:27:01 -04:00
#if(${list.contains(${bullets}, "stormIntensifyCTA")})
2012-01-06 08:55:05 -06:00
#if(${stormType} == "line")
2016-03-10 16:38:11 -06:00
These storms may intensify#commaOrEllipsis()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
2016-03-10 16:38:11 -06:00
This storm may intensify#commaOrEllipsis()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")})
2016-03-10 16:38:11 -06:00
To report severe weather#commaOrEllipsis()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")})
2016-03-10 16:38:11 -06:00
If on or near !**NAME OF LAKE**!#commaOrEllipsis()get out of the water and move indoors or inside a vehicle. Remember#commaOrEllipsis()lightning can strike out to 10 miles from the parent thunderstorm. If you can hear thunder#commaOrEllipsis()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")