############################## ## 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 ## ######################################################################################### #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#commaOrEllipsis()no longer posing a threat to life or property. Please continue to heed any road closures. #elseif(${list.contains(${bullets}, "recedingWater")}) Flood waters have receded#commaOrEllipsis()and are no longer expected to pose a threat to life or property. Please continue to heed any road closures. #elseif(${list.contains(${bullets}, "rainEnded")}) The heavy rain has ended#commaOrEllipsis()and flooding is no longer expected to pose a threat. #else !** The heavy rain has ended. !** OR **! The flood water is receding. Therefore#commaOrEllipsis()the flooding threat 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")}) The high water is receding#commaOrEllipsis()and is no longer expected to pose a threat. Please continue to heed any road closures. #end #if(${list.contains(${bullets}, "rainEnded")}) The heavy rain has ended#commaOrEllipsis()and flooding is no longer expected to pose a threat. #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 #commaOrEllipsis()${phenom}heavy rain ${waswere} located ## #handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine}) #if(${movementSpeed} < ${landStationary} || ${stationary}) #commaOrEllipsis()and is stationary. ## #else #if(${stormType} == "line") #commaOrEllipsis()and moving ## #else #commaOrEllipsis()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}) #commaOrEllipsis()${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#commaOrEllipsis()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#commaOrEllipsis()culverts#commaOrEllipsis()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#commaOrEllipsis()urban areas#commaOrEllipsis()highways#commaOrEllipsis()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#commaOrEllipsis()country roads#commaOrEllipsis()farmland#commaOrEllipsis()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#commaOrEllipsis()streams#commaOrEllipsis()and rivers can become raging killer currents in a matter of minutes#commaOrEllipsis()even from distant rainfall. #end #if(${list.contains(${bullets}, "burnAreasCTA")}) Move away from recently burned areas. Life threatening flooding of creeks#commaOrEllipsis()roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides#commaOrEllipsis()mudslides and debris flows in steep terrain#commaOrEllipsis()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#commaOrEllipsis()rivers#commaOrEllipsis()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#commaOrEllipsis()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 #################### !** THE HEAVY RAIN HAS ENDED (AND/OR) FLOOD WATER IS RECEDING. THEREFORE#commaOrEllipsis()THE FLOODING THREAT 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") #commaOrEllipsis()thunderstorms producing heavy rain were located ## #handleClosestPoints(${list}, ${closestPoints}, ${otherClosestPoints}, ${stormType}, ${nearPhrase} , ${maxLandNearDistance}, ${overPhrase}, ${maxLandOverDistance}, ${landDistanceUnits}, ${useSecondReferenceLine}) #else #commaOrEllipsis()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") #commaOrEllipsis()and moving ## #else #commaOrEllipsis()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}) #commaOrEllipsis()${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#commaOrEllipsis()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#commaOrEllipsis()culverts#commaOrEllipsis()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#commaOrEllipsis()urban areas#commaOrEllipsis()highways#commaOrEllipsis()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#commaOrEllipsis()country roads#commaOrEllipsis()farmland#commaOrEllipsis()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#commaOrEllipsis()streams#commaOrEllipsis()and rivers can become raging killer currents in a matter of minutes#commaOrEllipsis()even from distant rainfall. #end #if(${list.contains(${bullets}, "burnAreasCTA")}) Move away from recently burned areas. Life threatening flooding of creeks#commaOrEllipsis()roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides#commaOrEllipsis()mudslides and debris flows in steep terrain#commaOrEllipsis()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#commaOrEllipsis()rivers#commaOrEllipsis()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#commaOrEllipsis()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 #################### !** THE HEAVY RAIN HAS ENDED (AND/OR) FLOOD WATER IS RECEDING. THEREFORE#commaOrEllipsis()THE FLOODING THREAT 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}) #commaOrEllipsis()!** warning basis **! #else #thirdBullet(${dateUtil},${event},${timeFormat},${localtimezone},${secondtimezone}) #commaOrEllipsis()${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#commaOrEllipsis()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#commaOrEllipsis()culverts#commaOrEllipsis()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#commaOrEllipsis()urban areas#commaOrEllipsis()highways#commaOrEllipsis()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#commaOrEllipsis()country roads#commaOrEllipsis()farmland#commaOrEllipsis()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#commaOrEllipsis()streams#commaOrEllipsis()and rivers can become raging killer currents in a matter of minutes#commaOrEllipsis()even from distant rainfall. #end #if(${list.contains(${bullets}, "burnAreasCTA")}) Move away from recently burned areas. Life threatening flooding of creeks#commaOrEllipsis()roads and normally dry arroyos is likely. The heavy rains will likely trigger rockslides#commaOrEllipsis()mudslides and debris flows in steep terrain#commaOrEllipsis()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#commaOrEllipsis()rivers#commaOrEllipsis()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#commaOrEllipsis()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")