awips2/edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/significantWeatherAdvisory.vm

358 lines
13 KiB
Text
Raw Normal View History

######################################################################################
## 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 ##
## Evan Bookbinder 4/29/2016 Fixed storm intensify to a CTA ##
######################################################################################
##
##SET SOME INITIAL VARIABLES
#parse("config.vm")
#if(${stormType} == "line")
#set($report = "strong thunderstorms were reported")
#set($reportType1 = "strong thunderstorms")
#set($reportType2 = "These storms were")
#else
#set($report = "a strong thunderstorm was reported")
#set($reportType1 = "a strong thunderstorm")
#set($reportType2 = "This storm was")
#end
#set($windThreat = "")
#set($hailThreat = "")
#set($hailTrail = "")
#############################################################
#### CREATE BASIS WORDING ###################################
#############################################################
#if(${list.contains(${bullets}, "doppler")})
#set($report = "Doppler radar was tracking ${reportType1}")
#set($reportAuthSVR = "capable of producing")
#end
#if(${list.contains(${bullets}, "stormSpotters")})
#set($report = "trained weather spotters reported ${reportType1}")
#set($reportAuthSVR = "producing")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set($report = "local law enforcement reported ${reportType1}")
#set($reportAuthSVR = "producing")
#end
#if(${list.contains(${bullets}, "emergencyMgmt")})
#set($report = "emergency management reported ${reportType1}")
#set($reportAuthSVR = "producing")
#end
#if(${list.contains(${bullets}, "public")})
#set($report = "the public reported ${reportType1}")
#set($reportAuthSVR = "producing")
#end
#if(${list.contains(${bullets}, "amateurRadio")})
#set($report = "amateur radio operators reported ${reportType1}")
#set($reportAuthSVR = "producing")
#end
###################################################
## HANDLE WIND POSSIBILITIES ######################
###################################################
#set($windSpeed = 0)
#if(${list.contains(${bullets}, "wind30")})
#set($windThreat = "Winds in excess of 30 mph")
#set($windSpeed = 30)
#set($windTag = "30MPH")
#end
#if(${list.contains(${bullets}, "wind40")})
#set($windThreat = "Winds in excess of 40 mph")
#set($windSpeed = 40)
#set($windTag = "40MPH")
#end
#if(${list.contains(${bullets}, "wind50")})
#set($windThreat = "Wind gusts up to 50 mph")
#set($windSpeed = 50)
#set($windTag = "50MPH")
#end
#if(${list.contains(${bullets}, "wind55")})
#set($windThreat = "Wind gusts of 50 to 55 mph")
#set($windSpeed = 50)
#set($windTag = "55MPH")
#end
###################################################
## HANDLE HAIL POSSIBILITIES ######################
###################################################
#set($hailSize = 0)
#set($smallHail = "")
#if(${list.contains(${bullets}, "peaHail")})
#set($hailSize = 0.25)
#set($hailThreat = "Pea size")
#set($hailTrail = " hail")
#end
#if(${list.contains(${bullets}, "halfHail")})
#set($hailSize = 0.50)
#set($hailThreat = "Half inch")
#set($hailTrail = " hail")
#end
#if(${list.contains(${bullets}, "dimeHail")})
#set($hailSize = 0.75)
#set($hailThreat = "Dime size")
#set($hailTrail = " hail")
#end
#if(${list.contains(${bullets}, "nickelHail")})
#set($hailSize = 0.88)
#set($hailThreat = "Nickel size")
#set($hailTrail = " hail")
#end
################################################################
######### ~*~*~*~*~*~* BEGIN OUTPUT ~*~*~*~*~*~*~ ##############
################################################################
${WMOId} ${vtecOffice} 000000 ${BBBId}
${productId}${siteId}
#if(${productClass}=="T")
TEST...Special Weather Statement...TEST##
#else
Special Weather Statement##
#end
National Weather Service ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugcline}
#foreach (${area} in ${areas})
#capitalize(${area.name} "FIRST")
#if(${includeStateAbbreviation}==true)
${area.stateabbr}##
#end
-##
#end
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#if(${windSpeed} >= 40 || ${hailSize} >= 0.70)
...SIGNIFICANT WEATHER ADVISORY FOR ##
## #zoneHeadlineLocList(${areas} true true true false "ALL")
##REPLACE WITH THE LINE ABOVE WITH THE FOLLOWING IF YOU USE ZONE OUTPUT
#headlineLocList(${affectedCounties} true true true false "ALL")
UNTIL #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone})
...##
#elseif(${windSpeed} == 0 && ${hailSize} == 0)
!** YOU DID NOT SELECT ANY WIND OR HAIL THREATS. PLEASE RE-GENERATE THIS ADVISORY **!
#else
...SPECIAL WEATHER STATEMENT...
#end
######################################################
###### Storm current location description ##########
######################################################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
#commaOrEllipsis()${report} ##
##Many of the variables passed below are controlled by config.vm
#if(${stormType} == "line")
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
#else
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
#end
#if(${movementSpeed} < ${landStationary} || ${stationary})
. ${reportType2} nearly stationary. ${smallHail}
#else
#if(${stormType} == "line")
. Movement was ##
#else
#commaOrEllipsis()moving ##
#end
#direction(${movementDirectionRounded}) at ${mathUtil.roundTo5(${movementSpeed})} mph. ${smallHail}
#end
#if(${stormType} == "line")
#if(${hailThreat} != "" && ${windThreat} != "")
${hailThreat}${hailTrail} and #capitalize(${windThreat} "NONE") will be possible with these storms.
#elseif(${hailThreat}=="" && ${windThreat}!="")
${windThreat} will be possible with these storms.
#elseif(${hailThreat}!="" && ${windThreat}=="")
${hailThreat}${hailTrail} will be possible with these storms.
#end
#else
#if(${hailThreat} != "" && ${windThreat} != "")
${hailThreat}${hailTrail} and #capitalize(${windThreat} "NONE") will be possible with this storm.
#elseif(${hailThreat}=="" && ${windThreat}!="")
${windThreat} will be possible with this storm.
#elseif(${hailThreat}!="" && ${windThreat}=="")
${hailThreat}${hailTrail} will be possible with this storm.
#end
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
###################################################
######## GENERATE PATHCAST OR CITIES LIST #########
###################################################
#if(${stormType} == "line")
#set($pathcastLead = "Strong thunderstorms")
#set($otherLead = "These storms")
#else
#set($pathcastLead = "This strong thunderstorm")
#set($otherLead = "This storm")
#end
#if(${list.contains(${bullets}, "pathcast")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#pathCast("${pathcastLead} will be near..." ${otherLead} ${pathCast} ${otherPoints} ${affectedCounties} ${dateUtil} ${timeFormat} 0)
#elseif(${list.contains(${bullets}, "listofcities")})
#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!
#locationsList("Locations impacted include..." ${otherLead} 0 ${cityList} ${otherPoints} ${affectedCounties} ${dateUtil} ${timeFormat} 0)
#end
##############################################
##############################################
###### SPECIAL VENUE/EVENT CASE ##############
##############################################
#if(${list.contains(${bullets}, "specialEvent")})
#if(${stormType} == "line")
Those attending the !**EVENT/VENUE NAME OR LOCATION**! are in the path of these storms and should prepare for IMMINENT DANGEROUS WEATHER CONDITIONS.
#else
Those attending the !**EVENT/VENUE NAME OR LOCATION**! are in the path of this storm and should prepare for IMMINENT DANGEROUS WEATHER CONDITIONS.
#end
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
## Uncomment below pull in point marker info
## #parse("pointMarkers.vm")
##################################
######### CALLS TO ACTION ########
##################################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "torrentialRainfallCTA")})
#if(${stormType} == "line")
Torrential rainfall is also occurring with these storms#commaOrEllipsis()and may lead to localized flooding. Do not drive your vehicle through flooded roadways.
#else
Torrential rainfall is also occurring with this storm#commaOrEllipsis()and may lead to localized flooding. Do not drive your vehicle through flooded roadways.
#end
#end
#if(${list.contains(${bullets}, "lightningCTA")})
#if(${stormType} == "line")
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.
#else
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.
#end
#end
##
#if(${list.contains(${bullets}, "stormIntensifyCTA")})
#if(${stormType} == "line")
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.
#else
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.
#end
#end
##
#if(${list.contains(${bullets}, "lawEnforcementCTA")})
To report severe weather#commaOrEllipsis()contact your nearest law enforcement agency. They will relay your report to the National Weather Service office in ${officeLoc}.
#end
##
#if(${list.contains(${bullets}, "boatersCTA")})
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.
#end
##
#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
##
#if(${ctaSelected} == "YES")
&&
#end
#############
## WATCHES ##
#############
#if(${list.contains(${includedWatches}, "TO.A")} && ${list.contains(${bullets}, "includeTorWatches")})
#inserttorwatches(${watches}, ${list}, ${secondtimezone}, ${dateUtil}, ${timeFormat})
#end
#if(${list.contains(${includedWatches}, "SV.A")} && ${list.contains(${bullets}, "includeSvrWatches")})
#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})
#tml(${TMLtime}, ${timeFormat}, ${movementDirection}, ${movementInKnots}, ${eventLocation})
$$
#parse("forecasterName.vm")