awips2/edexOsgi/com.raytheon.uf.common.dataplugin.warning/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.vm
2022-05-05 12:34:50 -05:00

924 lines
35 KiB
Text

##############################
## FLOOD ADVISORY FOLLOW-UP ##
##############################
#########################################################################################
## RECENT VERSION HISTORY: ##
## Phil Kurimski 2-28-2012 for OB 12.2.1-3 ##
## Mike Dangelo 9-13-2012 minor tweaks to ${variables} ##
## Phil Kurimski 2-05-2013 for OB13.2.1-3 Added rain so far section ##
## Mike Dangelo 9-18-2013 added initial position and pathcasting options ##
## Evan Bookbinder 9-18-2013 implemented config.vm ##
## Mike Rega 1-18-2014 added Alaska GP changes for 14.2.1 ##
## Phil Kurimski 6-24-2014 altered urbanCTA for more succinct words ##
## Mike Dangelo 3-26-2015 Mixed Case changes ##
## Evan Bookbinder 9-4-2015 Fixed line of storms grammar ##
## Mike Dangelo 10-20-2015 Standard CTAs ##
## Phil Kurimski 10-21-2015 Back to the future day! Insert default end stmt ##
## Phil/Dave 10-20-2015 Added Canned statement for CAN ##
## Evan Bookbinder 12-7-2015 Added missing satellite source ##
## Evan Bookbinder 12-07-16 Fixed grammar error DR 19344 ##
## Evan Bookbinder 1-30-17 Mixed case downgrade message DR 19300 ##
#########################################################################################
#parse("config.vm")
#if(${action} == "EXT")
#set($starttime = "000000T0000Z")
#set($extend = true)
#else
#set($starttime = ${dateUtil.format(${start}, ${timeFormat.ymdthmz})})
#set($extend = false)
#end
##
#set($advType = "FLOOD ADVISORY")
#set($advTypeShort = "minor flooding")
#if(${list.contains(${bullets}, "small")})
#set($advType = "SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "small stream flooding")
#elseif(${list.contains(${bullets}, "uss")})
#set($advType = "URBAN AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "urban and small stream flooding")
#elseif(${list.contains(${bullets}, "arroyo")})
#set($advType = "ARROYO AND SMALL STREAM FLOOD ADVISORY")
#set($advTypeShort = "arroyo and small stream flooding")
#elseif(${list.contains(${bullets}, "hydrologic")})
#set($advType = "HYDROLOGIC ADVISORY")
#set($advTypeShort = "minor flooding")
#end
#set($hycType = "")
#set ($report = "!** warning basis **!")
#set ($report2 = "")
#set ($cause = "heavy rain")
#if(${ic} == "SM")
#set ($cause = "snowmelt")
#set ($hycType = "FOR SNOWMELT ")
#end
#if(${ic} == "RS")
#set ($cause = "rain and snowmelt")
#set ($hycType = "FOR RAIN AND SNOWMELT ")
#end
#if(${ic} == "IJ")
#set ($cause = "an ice jam")
#set ($hycType = "FOR AN ICE JAM ")
#end
#if(${ic} == "DR")
#set ($cause = "a dam floodgate release")
#set ($hycType = "FOR A DAM FLOODGATE RELEASE ")
#end
#if(${ic} == "IC")
#set ($cause = "an ice jam and heavy rain")
#end
#if(${list.contains(${bullets}, "rapidRises")})
#set ($report2 = ". Rapid rises will result in minor flooding")
#set ($hycType = "${hycType}FOR RAPID RISES ")
#end
#if(${list.contains(${bullets}, "poorDrainage")})
#set ($report2 = ". Overflowing poor drainage areas will result in minor flooding")
#set ($hycType = "${hycType}FOR MINOR FLOODING IN POOR DRAINAGE AREAS ")
#end
#set($rainAmount = "")
#if(${list.contains(${bullets}, "rain1")} )
#set($rainAmount = "Up to one inch of rain has already fallen.")
#end
#if(${list.contains(${bullets}, "rain2")} )
#set($rainAmount = "Up to two inches of rain have already fallen.")
#end
#if(${list.contains(${bullets}, "rain3")} )
#set($rainAmount = "Up to three inches of rain have already fallen.")
#end
#if(${list.contains(${bullets}, "rainEdit")} )
#set($rainAmount = "!** RAINFALL AMOUNTS **! inches of rain have fallen.")
#end
#if(${list.contains(${bullets}, "doppler")})
#set ($report = "Doppler radar indicated ${cause} that will cause ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "actual")})
#set ($report = "Doppler radar indicated ${cause} causing ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "doppler")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "Doppler radar indicated ${cause} due to thunderstorms. This will cause ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "dopplerGauge")})
#set ($report = "Doppler radar and automated rain gauges indicated ${cause}. This will cause ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "actual")})
#set ($report = "Doppler radar indicated ${cause} causing ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "dopplerGauge")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "Doppler radar and automated rain gauges indicated ${cause} due to thunderstorms. This will cause ${advTypeShort}${report2} in the advisory area")
#end
#if(${list.contains(${bullets}, "trainedSpotters")})
#set ($report = "trained weather spotters reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "trained weather spotters reported ${cause} in !** LOCATION **! due to thunderstorms. This will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "actual")})
#set ($report = "trained weather spotters reported ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "trainedSpotters")} && ${list.contains(${bullets}, "plainRain")})
#set ($report = "trained weather spotters reported ${cause} in !** LOCATION **! that will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")})
#set ($report = "local law enforcement reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "local law enforcement reported ${cause} in !** LOCATION **! due to thunderstorms. This will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "actual")})
#set ($report = "local law enforcement reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "lawEnforcement")} && ${list.contains(${bullets}, "plainRain")})
#set ($report = "local law enforcement reported ${cause} in !** LOCATION **! that will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")})
#set ($report = "emergency management reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "emergency management reported ${cause} in !** LOCATION **! due to thunderstorms. This will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "actual")})
#set ($report = "emergency management reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "emergencyManagement")} && ${list.contains(${bullets}, "plainRain")})
#set ($report = "emergency management reported ${cause} in !** LOCATION **! that will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "public")})
#set ($report = "the public reported ${cause} causing ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "thunder")})
#set ($report = "the public reported ${advTypeShort} in !** LOCATION **! due to thunderstorms. This will cause ${advTypeShort}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "actual")})
#set ($report = "the public reported ${advTypeShort} in !** LOCATION **!${report2}")
#end
#if(${list.contains(${bullets}, "public")} && ${list.contains(${bullets}, "plainRain")})
#set ($report = "the public reported ${cause} in !** LOCATION **! that will cause ${advTypeShort}${report2}")
#end
#if(${list.contains(${bullets}, "satelliteEstimates")})
#set($report = "satellite estimates indicate ${cause} in !** LOCATION **! that will cause ${advTypeShort}${report2}.")
#end
#if(${list.contains(${bullets}, "satelliteEstimates")} && ${list.contains(${bullets}, "thunder")})
#set($report = "satellite estimates indicate ${cause} from thunderstorms over !** LOCATION **! that will cause ${advTypeShort}${report2}.")
#end
#### added by GP
#if(${list.contains(${bullets}, "onlyGauge")})
#set ($report = "gauge reports indicated !**EVENT TYPE**!." )
#end
### GP end
##########################################
## FLOOD ADVISORY FOLLOW-UP HEADER INFO ##
##########################################
#if(${action}=="COR" && ${cancelareas})
#set($CORCAN = "true")
#else
#set($CORCAN = "false")
#end
#if(${action}!="CANCON" && ${CORCAN}!="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
${productId}${siteId}
#if(${productClass}=="T")
TEST...Flood Advisory...TEST
#else
Flood Advisory
#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}
/${productClass}.${action}.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#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 MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#end
########################
## FLOOD ADVISORY CAN ##
########################
#if(${action}=="CAN")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${affectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
#### GP End
#if(${list.contains(${bullets}, "recedingWater")} && ${list.contains(${bullets}, "rainEnded")})
The heavy rain has ended and flood waters have receded, no longer posing a threat to property. Please continue to heed any road closures.
#elseif(${list.contains(${bullets}, "recedingWater")})
Flood waters have receded, and are no longer expected to pose a threat to property. Please continue to heed any road closures.
#elseif(${list.contains(${bullets}, "rainEnded")})
The heavy rain has ended, and flooding is no longer expected to pose a threat.
#else
!** SELECT ONE BELOW
The heavy rain has ended. Therefore, the flooding threat has ended.
The heavy rain has ended and flood water is receding. Therefore, the flooding threat has ended.
The flood water is receding, and the threat for flooding has ended.
**!
#end
#end
########################
## FLOOD ADVISORY EXP ##
########################
#if(${action}=="EXP")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}##
#if(${now.compareTo(${expire})} > -1)
EXPIRED AT #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
#else
WILL EXPIRE AT #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
#end
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${affectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
#### GP End
#if(${list.contains(${bullets}, "recedingWater")} && ${list.contains(${bullets}, "rainEnded")})
The heavy rain has ended and flood waters have receded, no longer posing a threat to property. Please continue to heed any road closures.
#elseif(${list.contains(${bullets}, "recedingWater")})
Flood waters have receded, and are no longer expected to pose a threat to property. Please continue to heed any road closures.
#elseif(${list.contains(${bullets}, "rainEnded")})
The heavy rain has ended, and flooding is no longer expected to pose a threat.
#else
!** SELECT ONE BELOW
The heavy rain has ended. Therefore, the flooding threat has ended.
The heavy rain has ended and flood water is receding. Therefore, the flooding threat has ended.
The flood water is receding, and the threat for flooding has ended.
**!
#end
#end
########################
## FLOOD ADVISORY CON ##
########################
#if(${action}=="CON" || (${action}=="COR" && ${CORCAN}=="false"))
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}REMAINS IN EFFECT UNTIL #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${afectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
### GP end
########### END HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#if(${ic} == "DR")
Flooding will continue !** Specify location(s) **! due to an upstream dam floodgate release.
#else
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
#if(${list.contains(${bullets},"stormPosition")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
#set($phenom="")
#set($waswere="was")
#if(${stormType} == "line" && ${list.contains(${bullets}, "thunder")})
#set($phenom="thunderstorms producing ")
#set($waswere="were")
#elseif(${list.contains(${bullets}, "thunder")})
#set($phenom="a thunderstorm producing ")
#end
, ${phenom}heavy rain ${waswere} located ##
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
#if(${movementSpeed} < ${landStationary} || ${stationary})
, and is stationary. ##
#else
#if(${stormType} == "line")
, and moving ##
#else
, moving ##
#end
#direction(${movementDirectionRounded}) at ${mathUtil.roundTo5(${movementSpeed})} mph. ##
#end
${rainAmount}
#else
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
, ${report}. ${rainAmount}
#end
#end
############################################
######## (CITY LIST) #########
############################################
############# IF TRACK IS ENABLED AND pathcast AND stormPosition BOTH SELECTED ###############################################
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#if($movementSpeed < 3 )
#pathCast("Heavy rain will continue over the following locations..." "heavy rain" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#else
#pathCast("Heavy rain will move over the following locations..." "heavy rain" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
#end
#if(${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("Some locations that will experience flooding include..." "this flooding" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
## Uncomment below to pull in point marker info
## #parse("pointMarkers.vm")
#if(${list.contains(${bullets}, "addRainfall")})
Additional rainfall of !** EDIT AMOUNT **! inches is expected over the area. This additional rain will result in minor flooding.
#end
#if(${list.contains(${bullets}, "specificPlace")})
Minor flooding is occurring near !** ENTER LOCATION **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
#####################
## CALL TO ACTIONS ##
#####################
##Check to see if we've selected any calls to action. In our .xml file
##we ended each CTA bullet ID with "CTA" for this reason as a 'trip'
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set ($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "TADD_CTA")})
Turn around, don't drown when encountering flooded roads. Most flood deaths occur in vehicles.
#end
#if(${list.contains(${bullets}, "childSafetyCTA")})
Keep children away from storm drains, culverts, creeks and streams. Water levels can rise rapidly and sweep children away.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
Be especially cautious at night when it is harder to recognize the dangers of flooding.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, urban areas, highways, streets and underpasses as well as other drainage areas and low lying spots.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, country roads, farmland, and other low lying spots.
#end
#if(${list.contains(${bullets}, "stayAwayCTA")})
Stay away or be swept away. River banks and culverts can become unstable and unsafe.
#end
#if(${list.contains(${bullets}, "lowSpotsCTA")})
In hilly terrain there are hundreds of low water crossings which are potentially dangerous in heavy rain. Do not attempt to cross flooded roads. Find an alternate route.
#end
#if(${list.contains(${bullets}, "arroyosCTA")})
Remain alert for flooding even in locations not receiving rain. Arroyos, streams, and rivers can become raging killer currents in a matter of minutes, even from distant rainfall.
#end
#if(${list.contains(${bullets}, "burnAreasCTA")})
Move away from recently burned areas. Minor flooding of creeks, roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides, mudslides and debris flows in steep terrain, especially in and around these areas.
#end
#if(${list.contains(${bullets}, "camperSafetyCTA")})
Flooding is occurring or is imminent. It is important to know where you are relative to streams, rivers, or creeks which can become killers in heavy rains. Campers and hikers should avoid streams or creeks.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
Please report flooding to your local law enforcement agency when you can do so safely.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A Flood Advisory means river or stream flows are elevated, or ponding of water in urban or other areas is occurring or is imminent.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
#end
############################
## FLOOD ADVISORY CAN/CON ##
############################
#if(${action}=="CANCON")
${WMOId} ${vtecOffice} 000000 ${BBBId}
${productId}${siteId}
#if(${productClass}=="T")
TEST...Flood Advisory...TEST
#else
Flood Advisory
#end
National Weather Service ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.CAN.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#foreach (${area} in ${cancelareas})
#capitalize(${area.name} "FIRST")
#if(${includeStateAbbreviation}==true)
${area.stateabbr}##
#end
-##
#end
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${cancelaffectedCounties} true true true false "ALL")...
#else
#headlineLocList(${cancelareas} true true true false "ALL")...
#end
#### GP End
###REPLACE headlineLocList ABOVE WITH THE FOLLOWING FOR ZONE BASED PRODUCT W/ COUNTY HEADLINE
###headlineLocList(${cancelaffectedCounties} true true true false "ALL")...
########### END NEW HEADLINE CODE ####################
!** SELECT ONE BELOW
The heavy rain has ended. Therefore, the flooding threat has ended.
The heavy rain has ended and flood water is receding. Therefore, the flooding threat has ended.
The flood water is receding, and the threat for flooding has ended.
**!
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.CON.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#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 MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} REMAINS IN EFFECT UNTIL #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${affectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
#### GP End
########### END NEW HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
############# IF TRACK IS ENABLED AND stormPosition SELECTED ###############################################
#if(${list.contains(${bullets},"stormPosition")})
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
#if(${stormType} == "line")
, thunderstorms producing heavy rain were located ##
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine})
#else
, a thunderstorm producing heavy rain was located ##
#handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceCell})
#end
#if(${movementSpeed} < ${landStationary} || ${stationary})
. Movement is stationary. ##
#else
#if(${stormType} == "line")
, and moving ##
#else
, moving ##
#end
#direction(${movementDirectionRounded}) at ${mathUtil.roundTo5(${movementSpeed})} mph. ##
#end
${rainAmount}
#else
###############IF TRACK IS NOT ENABLED OR stormPosition IS NOT SELECTED #######################################
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
, ${report}. ${rainAmount}
#end
############################################
######## (CITY LIST) #########
############################################
############# IF TRACK IS ENABLED AND pathcast AND stormPosition BOTH SELECTED ###############################################
#if(${list.contains(${bullets},"pathcast")} && ${list.contains(${bullets}, "stormPosition")})
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#if($movementSpeed < 3 )
#pathCast("Heavy rain will continue over the following locations..." "heavy rain" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#else
#pathCast("Heavy rain will move over the following locations..." "heavy rain" ${pathCast} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
#end
#if(${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("Some locations that will experience flooding include..." "this flooding" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
## Uncomment below to pull in point marker info
## #parse("pointMarkers.vm")
#if(${list.contains(${bullets}, "addRainfall")})
Additional rainfall of !** EDIT AMOUNT **! inches is expected over the area. This additional rain will result in minor flooding.
#end
#if(${list.contains(${bullets}, "specificPlace")})
Minor flooding is occurring near !** Enter Location **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
#####################
## CALL TO ACTIONS ##
#####################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set ($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "TADD_CTA")})
Turn around, don't drown when encountering flooded roads. Most flood deaths occur in vehicles.
#end
#if(${list.contains(${bullets}, "childSafetyCTA")})
Keep children away from storm drains, culverts, creeks and streams. Water levels can rise rapidly and sweep children away.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
Be especially cautious at night when it is harder to recognize the dangers of flooding.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, urban areas, highways, streets and underpasses as well as other drainage areas and low lying spots.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, country roads, farmland, and other low lying spots.
#end
#if(${list.contains(${bullets}, "stayAwayCTA")})
Stay away or be swept away. River banks and culverts can become unstable and unsafe.
#end
#if(${list.contains(${bullets}, "lowSpotsCTA")})
In hilly terrain there are hundreds of low water crossings which are potentially dangerous in heavy rain. Do not attempt to cross flooded roads. Find an alternate route.
#end
#if(${list.contains(${bullets}, "arroyosCTA")})
Remain alert for flooding even in locations not receiving rain. Arroyos, streams, and rivers can become raging killer currents in a matter of minutes, even from distant rainfall.
#end
#if(${list.contains(${bullets}, "burnAreasCTA")})
Move away from recently burned areas. Minor flooding of creeks, roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides, mudslides and debris flows in steep terrain, especially in and around these areas.
#end
#if(${list.contains(${bullets}, "camperSafetyCTA")})
Flooding is occurring or is imminent. It is important to know where you are relative to streams, rivers, or creeks which can become killers in heavy rains. Campers and hikers should avoid streams or creeks.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
Please report flooding to your local law enforcement agency when you can do so safely.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A Flood Advisory means river or stream flows are elevated, or ponding of water in urban or other areas is occurring or is imminent.
#end
#if(${ctaSelected} == "YES")
&&
#end
#################################### END OF CTA STUFF ###################################
#elseif(${CORCAN}=="true")
${WMOId} ${vtecOffice} 000000 ${BBBId}
${productId}${siteId}
#if(${productClass}=="T")
TEST...Flood Advisory...TEST
#else
Flood Advisory
#end
National Weather Service ${officeShort}
#backupText(${backupSite})
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
${ugclinecan}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#foreach (${area} in ${cancelareas})
#capitalize(${area.name} "ALL")
#if(${includeStateAbbreviation}==true)
${area.stateabbr}##
#end
-##
#end
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${affectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
#### GP End
########### END NEW HEADLINE CODE ####################
!** SELECT ONE BELOW
The heavy rain has ended. Therefore, the flooding threat has ended.
The heavy rain has ended and flood water is receding. Therefore, the flooding threat has ended.
The flood water is receding, and the threat for flooding has ended.
**!
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
${ugcline}
/${productClass}.COR.${vtecOffice}.FA.Y.${etn}.000000T0000Z-${dateUtil.format(${expire}, ${timeFormat.ymdthmz}, 15)}/
/00000.N.${ic}.000000T0000Z.000000T0000Z.000000T0000Z.OO/
#foreach (${area} in ${areas})
#capitalize(${area.name} "ALL")
#if(${includeStateAbbreviation}==true)
${area.stateabbr}##
#end
-##
#end
${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})}
#if(${productClass}=="T")
...THIS MESSAGE IS FOR TEST PURPOSES ONLY...
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE.##
#end
...THE ${advType} REMAINS IN EFFECT UNTIL #headlineExpire(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ##
#### modified by GP
#if(${alaska}=="true")
!**INSERT RIVER/STREAM OR AREA**! IN !**INSERT GEO AREA**!...
#elseif(${wrZoneCounty}=="true")
#headlineLocList(${affectedCounties} true true true false "ALL")...
#else
#headlineLocList(${areas} true true true false "ALL")...
#end
#### GP End
########### END NEW HEADLINE CODE ####################
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
, !** warning basis **!
#else
#thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone})
, ${report}. ${rainAmount}
#end
#set ($phenomena = "FLASH FLOOD")
#set ($warningType = "ADVISORY")
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. ##
#end
#locationsList("Some locations that will experience minor flooding include" "The flooding is expected to impact mainly rural areas of" 0 ${cityList} ${otherPoints} ${areas} ${dateUtil} ${timeFormat} 0)
#if(${list.contains(${bullets}, "addRainfall")})
Additional rainfall of !** EDIT AMOUNT **! inches is expected over the area. This additional rain will result in minor flooding.
#end
#if(${list.contains(${bullets}, "specificPlace")})
Minor flooding is occurring near !** ENTER LOCATION **!.
#end
#if(${list.contains(${bullets}, "drainages")})
#drainages(${riverdrainages})
#end
## parse file command here is to pull in mile marker info
## #parse("mileMarkers.vm")
## Uncomment below to pull in point marker info
## #parse("pointMarkers.vm")
#####################
## CALL TO ACTIONS ##
#####################
#foreach (${bullet} in ${bullets})
#if(${bullet.endsWith("CTA")})
#set ($ctaSelected = "YES")
#end
#end
##
#if(${ctaSelected} == "YES")
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
#if(${list.contains(${bullets}, "TADD_CTA")})
Turn around, don't drown when encountering flooded roads. Most flood deaths occur in vehicles.
#end
#if(${list.contains(${bullets}, "childSafetyCTA")})
Keep children away from storm drains, culverts, creeks and streams. Water levels can rise rapidly and sweep children away.
#end
#if(${list.contains(${bullets}, "nighttimeCTA")})
Be especially cautious at night when it is harder to recognize the dangers of flooding.
#end
#if(${list.contains(${bullets}, "urbanCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, urban areas, highways, streets and underpasses as well as other drainage areas and low lying spots.
#end
#if(${list.contains(${bullets}, "ruralCTA")})
Excessive runoff from heavy rainfall will cause flooding of small creeks and streams, country roads, farmland, and other low lying spots.
#end
#if(${list.contains(${bullets}, "stayAwayCTA")})
Stay away or be swept away. River banks and culverts can become unstable and unsafe.
#end
#if(${list.contains(${bullets}, "lowSpotsCTA")})
In hilly terrain there are hundreds of low water crossings which are potentially dangerous in heavy rain. Do not attempt to cross flooded roads. Find an alternate route.
#end
#if(${list.contains(${bullets}, "arroyosCTA")})
Remain alert for flooding even in locations not receiving rain. Arroyos, streams, and rivers can become raging killer currents in a matter of minutes, even from distant rainfall.
#end
#if(${list.contains(${bullets}, "burnAreasCTA")})
Move away from recently burned areas. Minor flooding of creeks, roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides, mudslides and debris flows in steep terrain, especially in and around these areas.
#end
#if(${list.contains(${bullets}, "camperSafetyCTA")})
Flooding is occurring or is imminent. It is important to know where you are relative to streams, rivers, or creeks which can become killers in heavy rains. Campers and hikers should avoid streams or creeks.
#end
#if(${list.contains(${bullets}, "reportFloodingCTA")})
Please report flooding to your local law enforcement agency when you can do so safely.
#end
#if(${list.contains(${bullets}, "advisoryMeansCTA")})
A Flood Advisory means river or stream flows are elevated, or ponding of water in urban or other areas is occurring or is imminent.
#end
#if(${ctaSelected} == "YES")
&&
#end
#end
#if(${productClass}=="T")
THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#end
#printcoords(${areaPoly}, ${list})
$$
#parse("forecasterName.vm")