Omaha #5411 Updates per latest mixed case guidelines

Change-Id: I6e578238e09da773489302895a7e7433d561455f

Former-commit-id: ea79be27628188bab964e3f6be31f96ceb008aca
This commit is contained in:
Ron Anderson 2016-02-24 13:43:13 -06:00
parent adbc9253a5
commit 31ddc8e3da
24 changed files with 106 additions and 96 deletions

View file

@ -35,6 +35,7 @@
# Updated 3/29/10 Shannon for tropical # Updated 3/29/10 Shannon for tropical
# Updated 1/12/11 Shannon to remove HI/TI hazards and fix typos # Updated 1/12/11 Shannon to remove HI/TI hazards and fix typos
# Updated 7/28/15 yteng to change Red Flag Warning CTA language for DR 17777 # Updated 7/28/15 yteng to change Red Flag Warning CTA language for DR 17777
# Updated 2/24/16 randerso for mixed case guidelines
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
class CallToActions: class CallToActions:
@ -339,7 +340,7 @@ Listen to NOAA Weather Radio or local media for further information.""",
def ctaEHA(self): def ctaEHA(self):
return [ return [
"""An Excessive Heat Watch means that a prolonged period of hot temperatures is expected. The combination of hot temperatures and high humidity will combine to create a dangerous situation in which heat illnesses are possible. Drink plenty of fluids...stay in an air-conditioned room...stay out of the sun...and check up on relatives and neighbors.""", """An Excessive Heat Watch means that a prolonged period of hot temperatures is expected. The combination of hot temperatures and high humidity will combine to create a DANGEROUS SITUATION in which heat illnesses are possible. Drink plenty of fluids...stay in an air-conditioned room...stay out of the sun...and check up on relatives and neighbors.""",
"""Young children and pets should never be left unattended in vehicles under any circumstances. This is especially true during warm or hot weather when car interiors can reach lethal temperatures in a matter of minutes.""", """Young children and pets should never be left unattended in vehicles under any circumstances. This is especially true during warm or hot weather when car interiors can reach lethal temperatures in a matter of minutes.""",
] ]
@ -347,7 +348,7 @@ Listen to NOAA Weather Radio or local media for further information.""",
return [ return [
"""Take extra precautions...if you work or spend time outside. When possible...reschedule strenuous activities to early morning or evening. Know the signs and symptoms of heat exhaustion and heat stroke. Wear light weight and loose fitting clothing when possible and drink plenty of water.\n\n """Take extra precautions...if you work or spend time outside. When possible...reschedule strenuous activities to early morning or evening. Know the signs and symptoms of heat exhaustion and heat stroke. Wear light weight and loose fitting clothing when possible and drink plenty of water.\n\n
To reduce risk during outdoor work...the occupational safety and health administration recommends scheduling frequent rest breaks in shaded or air conditioned environments. Anyone overcome by heat should be moved to a cool and shaded location. Heat stroke is an emergency...call 9 1 1.\n\n To reduce risk during outdoor work...the occupational safety and health administration recommends scheduling frequent rest breaks in shaded or air conditioned environments. Anyone overcome by heat should be moved to a cool and shaded location. Heat stroke is an emergency...call 9 1 1.\n\n
An Excessive Heat Warning means that a prolonged period of dangerously hot temperatures will occur. The combination of hot temperatures and high humidity will combine to create a dangerous situation in which heat illnesses are likely. Drink plenty of fluids...stay in an air-conditioned room...stay out of the sun...and check up on relatives and neighbors.\n\n An Excessive Heat Warning means that a prolonged period of dangerously hot temperatures will occur. The combination of hot temperatures and high humidity will combine to create a DANGEROUS SITUATION in which heat illnesses are likely. Drink plenty of fluids...stay in an air-conditioned room...stay out of the sun...and check up on relatives and neighbors.\n\n
Young children and pets should never be left unattended in vehicles under any circumstances. This is especially true during warm or hot weather when car interiors can reach lethal temperatures in a matter of minutes.""", Young children and pets should never be left unattended in vehicles under any circumstances. This is especially true during warm or hot weather when car interiors can reach lethal temperatures in a matter of minutes.""",
] ]
@ -358,7 +359,7 @@ Listen to NOAA Weather Radio or local media for further information.""",
def ctaFFA(self): def ctaFFA(self):
return [ return [
"""A Flash Flood Watch means that conditions may develop that lead to flash flooding. Flash flooding is a very dangerous situation.\n\nYou should monitor later forecasts and be prepared to take action should Flash Flood Warnings be issued.""", """A Flash Flood Watch means that conditions may develop that lead to flash flooding. Flash flooding is a VERY DANGEROUS SITUATION.\n\nYou should monitor later forecasts and be prepared to take action should Flash Flood Warnings be issued.""",
] ]
def ctaFGY(self): def ctaFGY(self):
@ -770,7 +771,7 @@ If you become caught in a rip current...yell for help. Remain calm...do not exha
("***PRIOR NOTICE OF EXTENSIVE AREAL FLOODING", """Extensive flooding is expected |**today or tonight or next day**|. \n\n Persons living near or in poor drainage locations should prepare for possible evacuation later |**today or tonight or next day**|. In these areas...significant property damage will occur...and some power outages are likely. Minor property damage is possible elsewhere. \n\nWater levels in very poor drainage areas will approach 7 feet. Other poor drainage locations will have rises between 3 and 5 feet. Elsewhere...expect water rises to near 2 feet. Numerous main roads will be closed. Driving is highly discouraged except for emergencies."""), ("***PRIOR NOTICE OF EXTENSIVE AREAL FLOODING", """Extensive flooding is expected |**today or tonight or next day**|. \n\n Persons living near or in poor drainage locations should prepare for possible evacuation later |**today or tonight or next day**|. In these areas...significant property damage will occur...and some power outages are likely. Minor property damage is possible elsewhere. \n\nWater levels in very poor drainage areas will approach 7 feet. Other poor drainage locations will have rises between 3 and 5 feet. Elsewhere...expect water rises to near 2 feet. Numerous main roads will be closed. Driving is highly discouraged except for emergencies."""),
("***DANGEROUS FLOODING", """This is a dangerous flood situation! \n\nPersons living in or near poor drainage areas should evacuate immediately. Significant property damage will occur in these locations. Minor property damage is possible in other areas. Some power outages are expected. \n\n Water levels in very poor drainage areas will approach 7 feet. Other poor drainage locations will have rises between 3 and 5 feet. Elsewhere...expect water rises to near 2 feet. Numerous main roads will be closed. Driving is highly discouraged until well after flood waters recede. \n\n Move to safety immediately."""), ("***DANGEROUS FLOODING", """This is a dangerous flood situation! \n\nPersons living in or near poor drainage areas should evacuate immediately. Significant property damage will occur in these locations. Minor property damage is possible in other areas. Some power outages are expected. \n\n Water levels in very poor drainage areas will approach 7 feet. Other poor drainage locations will have rises between 3 and 5 feet. Elsewhere...expect water rises to near 2 feet. Numerous main roads will be closed. Driving is highly discouraged until well after flood waters recede. \n\n Move to safety immediately."""),
("***PRIOR NOTICE OF EXTENSIVE RIVER FLOODING", """Extensive flooding is expected |**today or tonight or next day**|. \n\n By |**time**|...all small streams and creeks will have surpassed bank full. These conditions will last between 3 and 6 hours. Some streams will exceed their banks by several feet and may flood nearby homes. Evacuations are possible.\n\n Rivers in affected areas will rise...with some reaching or exceeding flood stage. Normally quick-rising rivers will exceed flood stage by several feet...flooding homes along the riverside. Pastures will also flood...but livestock losses should be minimal. Several secondary roads and bridges will be washed out. Driving is highly discouraged."""), ("***PRIOR NOTICE OF EXTENSIVE RIVER FLOODING", """Extensive flooding is expected |**today or tonight or next day**|. \n\n By |**time**|...all small streams and creeks will have surpassed bank full. These conditions will last between 3 and 6 hours. Some streams will exceed their banks by several feet and may flood nearby homes. Evacuations are possible.\n\n Rivers in affected areas will rise...with some reaching or exceeding flood stage. Normally quick-rising rivers will exceed flood stage by several feet...flooding homes along the riverside. Pastures will also flood...but livestock losses should be minimal. Several secondary roads and bridges will be washed out. Driving is highly discouraged."""),
("***DANGEROUS RIVER FLOODING", """This is a dangerous situation! \n\nAll streams...creeks..and some rivers will surpass bankfull...for between 3 and 6 hours. Some streams will exceed their banks by several feet...flooding nearby homes. Evacuations are possible. \n\n Rivers in affected areas will rise...with some reaching or exceeding flood stage. Normally quick rising rivers will exceed flood stage by several feet...flooding homes along the riverside. Pastures will also flood...but livestock losses should be minimal."""), ("***DANGEROUS RIVER FLOODING", """This is a DANGEROUS SITUATION! \n\nAll streams...creeks..and some rivers will surpass bankfull...for between 3 and 6 hours. Some streams will exceed their banks by several feet...flooding nearby homes. Evacuations are possible. \n\n Rivers in affected areas will rise...with some reaching or exceeding flood stage. Normally quick rising rivers will exceed flood stage by several feet...flooding homes along the riverside. Pastures will also flood...but livestock losses should be minimal."""),
("***CATASTROPHIC FLOODING EXPECTED", """Catastrophic flooding is expected later |**edit day or night periods**|. \n\n A state of emergency has been issued |**by agency**| for |**edit area here**|. \n\n Residents in flood prone areas should rush to completion preparations to protect their property...then move to a place of safety...this |**edit time period**|. Mandatory evacuations are underway. \n\n |** opening paragraph describing antecedent rainfall and expected heavier rainfall **| \n\n life threatening flooding is likely! In urban areas...extensive property damage will occur in all poor drainage areas...with moderate to major property damage elsewhere. Widespread power outages are likely. \n\n In rural locations...all streams...creeks...and arroyos will surpass bank full for more than 6 hours. Each will exceed their banks by several feet...flooding homes...even those up to one half mile away from the banks. \n\n In all areas...hundreds of roads will flood. Dozens of secondary roads may become washed out in rural areas. Numerous low water bridges will likely wash out as well. \n\n Water levels will exceed 5 feet in all poor drainage urban areas...and average at least 2 feet elsewhere. All rivers in affected areas will rise...and most will exceed flood stage. Quick rising rivers will exceed flood stage...and reach near record crests...causing inundation of nearby homes. In rural locations...extensive pastureland flooding will occur as water levels rise to 2 feet or more. Widespread livestock losses are likely."""), ("***CATASTROPHIC FLOODING EXPECTED", """Catastrophic flooding is expected later |**edit day or night periods**|. \n\n A state of emergency has been issued |**by agency**| for |**edit area here**|. \n\n Residents in flood prone areas should rush to completion preparations to protect their property...then move to a place of safety...this |**edit time period**|. Mandatory evacuations are underway. \n\n |** opening paragraph describing antecedent rainfall and expected heavier rainfall **| \n\n life threatening flooding is likely! In urban areas...extensive property damage will occur in all poor drainage areas...with moderate to major property damage elsewhere. Widespread power outages are likely. \n\n In rural locations...all streams...creeks...and arroyos will surpass bank full for more than 6 hours. Each will exceed their banks by several feet...flooding homes...even those up to one half mile away from the banks. \n\n In all areas...hundreds of roads will flood. Dozens of secondary roads may become washed out in rural areas. Numerous low water bridges will likely wash out as well. \n\n Water levels will exceed 5 feet in all poor drainage urban areas...and average at least 2 feet elsewhere. All rivers in affected areas will rise...and most will exceed flood stage. Quick rising rivers will exceed flood stage...and reach near record crests...causing inundation of nearby homes. In rural locations...extensive pastureland flooding will occur as water levels rise to 2 feet or more. Widespread livestock losses are likely."""),
("***CATASTROPHIC FLOODING OCCURRING", """Catastrophic flooding is occurring in |**edit area**|. \n\n States of emergency remain in effect for the following locations: \n\n |**edit counties and cities here**| \n\n residents remain prohibited from venturing out. Law enforcement and |**military support group edit here**| evacuations are now underway. \n\n This remains a life threatening situation! Extensive property damage is occurring in all poor drainage areas. Elsewhere...moderate to major property damage is occurring. Hundreds of roads are closed...and some are likely damaged. Several area bridges are washed out. Streams...creeks...and arroyos are several feet above bank full...and will remain so for hours. Many rivers are nearing flood stage...and some have already surpassed it. Homes near these rivers are likely flooded. Flood waters will continue for several more hours. \n\n Water levels are in excess of 5 feet in all poor drainage areas. Elsewhere...average water levels are at least 2 feet. Power outages are widespread. \n\n Stay tuned to NOAA Weather Radio for further information on this dangerous flood. Heed all evacuation orders from law enforcement or military personnel."""), ("***CATASTROPHIC FLOODING OCCURRING", """Catastrophic flooding is occurring in |**edit area**|. \n\n States of emergency remain in effect for the following locations: \n\n |**edit counties and cities here**| \n\n residents remain prohibited from venturing out. Law enforcement and |**military support group edit here**| evacuations are now underway. \n\n This remains a life threatening situation! Extensive property damage is occurring in all poor drainage areas. Elsewhere...moderate to major property damage is occurring. Hundreds of roads are closed...and some are likely damaged. Several area bridges are washed out. Streams...creeks...and arroyos are several feet above bank full...and will remain so for hours. Many rivers are nearing flood stage...and some have already surpassed it. Homes near these rivers are likely flooded. Flood waters will continue for several more hours. \n\n Water levels are in excess of 5 feet in all poor drainage areas. Elsewhere...average water levels are at least 2 feet. Power outages are widespread. \n\n Stay tuned to NOAA Weather Radio for further information on this dangerous flood. Heed all evacuation orders from law enforcement or military personnel."""),
("***GENERATOR PRECAUTIONS", """If you plan on using a portable generator...be sure to observe all safety precautions to avoid carbon monoxide poisoning...electrocution...or fire. Be sure to operate your generator in a dry outdoor area away from windows...doors and vents. Carbon monoxide poisoning deaths can occur due to improperly located portable generators!"""), ("***GENERATOR PRECAUTIONS", """If you plan on using a portable generator...be sure to observe all safety precautions to avoid carbon monoxide poisoning...electrocution...or fire. Be sure to operate your generator in a dry outdoor area away from windows...doors and vents. Carbon monoxide poisoning deaths can occur due to improperly located portable generators!"""),

View file

@ -6,6 +6,8 @@
# TCV_Dictionary file # TCV_Dictionary file
# Author: GFE Installation Script # Author: GFE Installation Script
# Last Modified: Feb 13, 2015 # Last Modified: Feb 13, 2015
#
# 02/24/2016 #5411 randerso Changed all instances of MPH to mph per mixed case guidelines
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Needed to prevent an error from the SmartTool module # Needed to prevent an error from the SmartTool module
WeatherElementEdited = None WeatherElementEdited = None
@ -14,17 +16,17 @@ ThreatStatements = {
"Wind": { "Wind": {
"Extreme": { "Extreme": {
"check plans": { "check plans": {
"planning": "Emergency planning should include a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3 intensity or higher.", "planning": "Emergency planning should include a reasonable threat for major hurricane force wind greater than 110 mph of equivalent Category 3 intensity or higher.",
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Efforts should now be underway to secure all properties.", "preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Efforts should now be underway to secure all properties.",
"action": "Extremely Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering.", "action": "Extremely Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering.",
}, },
"complete preparations": { "complete preparations": {
"planning": "Emergency plans should include a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3 intensity or higher.", "planning": "Emergency plans should include a reasonable threat for major hurricane force wind greater than 110 mph of equivalent Category 3 intensity or higher.",
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Remaining efforts to secure properties should now be brought to completion.", "preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Remaining efforts to secure properties should now be brought to completion.",
"action": "Extremely dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering. Move to safe shelter before the wind becomes hazardous.", "action": "Extremely dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering. Move to safe shelter before the wind becomes hazardous.",
}, },
"hunker down": { "hunker down": {
"planning": "Remain braced against the reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3 intensity or higher.", "planning": "Remain braced against the reasonable threat for major hurricane force wind greater than 110 mph of equivalent Category 3 intensity or higher.",
"preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to devastating to catastrophic wind impacts.", "preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to devastating to catastrophic wind impacts.",
"action": "Now is the time to urgently hide from the wind. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering. Remain sheltered until the hazardous wind subsides. Be ready to quickly move to the safest place within your shelter if extreme wind warnings are issued.", "action": "Now is the time to urgently hide from the wind. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering. Remain sheltered until the hazardous wind subsides. Be ready to quickly move to the safest place within your shelter if extreme wind warnings are issued.",
}, },
@ -34,24 +36,24 @@ ThreatStatements = {
"action": "Failure to exercise due safety may result in additional injury or loss of life. If you have a life-threatening emergency dial 9 1 1.", "action": "Failure to exercise due safety may result in additional injury or loss of life. If you have a life-threatening emergency dial 9 1 1.",
}, },
"default": { "default": {
"planning": "Emergency considerations should include a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3 or higher.", "planning": "Emergency considerations should include a reasonable threat for major hurricane force wind greater than 110 mph of equivalent Category 3 or higher.",
"preparation": "Be safe and aggressively protect against the potential of devastating to catastrophic wind impacts.", "preparation": "Be safe and aggressively protect against the potential of devastating to catastrophic wind impacts.",
"action": "Extremely dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering.", "action": "Extremely dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering.",
}, },
}, },
"High": { "High": {
"check plans": { "check plans": {
"planning": "Emergency planning should include a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 to 2 intensity.", "planning": "Emergency planning should include a reasonable threat for hurricane force wind of 74 to 110 mph of equivalent Category 1 to 2 intensity.",
"preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Efforts should now be underway to secure all properties.", "preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Efforts should now be underway to secure all properties.",
"action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life.", "action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life.",
}, },
"complete preparations": { "complete preparations": {
"planning": "Emergency plans should include a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 to 2 intensity.", "planning": "Emergency plans should include a reasonable threat for hurricane force wind of 74 to 110 mph of equivalent Category 1 to 2 intensity.",
"preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Remaining efforts to secure properties should now be brought to completion.", "preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Remaining efforts to secure properties should now be brought to completion.",
"action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life. Move to safe shelter before the wind becomes hazardous.", "action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life. Move to safe shelter before the wind becomes hazardous.",
}, },
"hunker down": { "hunker down": {
"planning": "Remain braced against the reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 to 2 intensity.", "planning": "Remain braced against the reasonable threat for hurricane force wind of 74 to 110 mph of equivalent Category 1 to 2 intensity.",
"preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to extensive wind impacts.", "preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to extensive wind impacts.",
"action": "Now is the time to urgently hide from the wind. Failure to adequately shelter may result in serious injury or loss of life. Remain sheltered until the hazardous wind subsides.", "action": "Now is the time to urgently hide from the wind. Failure to adequately shelter may result in serious injury or loss of life. Remain sheltered until the hazardous wind subsides.",
}, },
@ -61,24 +63,24 @@ ThreatStatements = {
"action": "Failure to exercise due safety may result in additional injury or loss of life. If you have a life-threatening emergency dial 9 1 1." , "action": "Failure to exercise due safety may result in additional injury or loss of life. If you have a life-threatening emergency dial 9 1 1." ,
}, },
"default": { "default": {
"planning": "Emergency considerations should include a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 to 2 intensity.", "planning": "Emergency considerations should include a reasonable threat for hurricane force wind of 74 to 110 mph of equivalent Category 1 to 2 intensity.",
"preparation": "Be safe and aggressively protect against for the potential of extensive wind impacts.", "preparation": "Be safe and aggressively protect against for the potential of extensive wind impacts.",
"action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life.", "action": "Dangerous and life threatening wind is possible. Failure to adequately shelter may result in serious injury or loss of life.",
}, },
}, },
"Mod": { "Mod": {
"check plans": { "check plans": {
"planning": "Emergency planning should include a reasonable threat for strong tropical storm force wind of 58 to 73 MPH.", "planning": "Emergency planning should include a reasonable threat for strong tropical storm force wind of 58 to 73 mph.",
"preparation": "To be safe, earnestly prepare for the potential of significant wind impacts. Efforts should now be underway to secure all properties.", "preparation": "To be safe, earnestly prepare for the potential of significant wind impacts. Efforts should now be underway to secure all properties.",
"action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life.", "action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life.",
}, },
"complete preparations": { "complete preparations": {
"planning": "Emergency plans should include a reasonable threat for strong tropical storm force wind of 58 to 73 MPH.", "planning": "Emergency plans should include a reasonable threat for strong tropical storm force wind of 58 to 73 mph.",
"preparation": "To be safe, earnestly prepare for the potential of significant wind impacts. Remaining efforts to secure properties should now be brought to completion.", "preparation": "To be safe, earnestly prepare for the potential of significant wind impacts. Remaining efforts to secure properties should now be brought to completion.",
"action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life. Move to safe shelter before the wind becomes hazardous.", "action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life. Move to safe shelter before the wind becomes hazardous.",
}, },
"hunker down": { "hunker down": {
"planning": "Remain braced against the reasonable threat for strong tropical storm force wind of 58 to 73 MPH.", "planning": "Remain braced against the reasonable threat for strong tropical storm force wind of 58 to 73 mph.",
"preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to significant wind impacts.", "preparation": "To be safe, efforts should fully focus on protecting life. Properties remain subject to significant wind impacts.",
"action": "Now is the time to hide from the wind. Failure to adequately shelter may result in serious injury, or in some cases loss of life. Remain sheltered until the hazardous wind subsides.", "action": "Now is the time to hide from the wind. Failure to adequately shelter may result in serious injury, or in some cases loss of life. Remain sheltered until the hazardous wind subsides.",
}, },
@ -88,24 +90,24 @@ ThreatStatements = {
"action": "Failure to exercise due safety may result in additional injury, or in some cases loss of life. If you have a life-threatening emergency dial 9 1 1.", "action": "Failure to exercise due safety may result in additional injury, or in some cases loss of life. If you have a life-threatening emergency dial 9 1 1.",
}, },
"default": { "default": {
"planning": "Emergency considerations should include a reasonable threat for strong tropical storm force wind of 58 to 73 MPH.", "planning": "Emergency considerations should include a reasonable threat for strong tropical storm force wind of 58 to 73 mph.",
"preparation": "Be safe and earnestly protect against the potential of significant wind impacts.", "preparation": "Be safe and earnestly protect against the potential of significant wind impacts.",
"action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life.", "action": "Dangerous wind is possible. Failure to adequately shelter may result in serious injury, or in some cases loss of life.",
}, },
}, },
"Elevated": { "Elevated": {
"check plans": { "check plans": {
"planning": "Emergency planning should include a reasonable threat for tropical storm force wind of 39 to 57 MPH.", "planning": "Emergency planning should include a reasonable threat for tropical storm force wind of 39 to 57 mph.",
"preparation": "To be safe, prepare for the potential of limited wind impacts. Efforts should now be underway to secure all properties.", "preparation": "To be safe, prepare for the potential of limited wind impacts. Efforts should now be underway to secure all properties.",
"action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury.", "action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury.",
}, },
"complete preparations": { "complete preparations": {
"planning": "Emergency plans should include a reasonable threat for tropical storm force wind of 39 to 57 MPH.", "planning": "Emergency plans should include a reasonable threat for tropical storm force wind of 39 to 57 mph.",
"preparation": "To be safe, prepare for the potential of limited wind impacts. Remaining efforts to secure properties should now be brought to completion.", "preparation": "To be safe, prepare for the potential of limited wind impacts. Remaining efforts to secure properties should now be brought to completion.",
"action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury. Move to safe shelter before the wind becomes hazardous.", "action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury. Move to safe shelter before the wind becomes hazardous.",
}, },
"hunker down": { "hunker down": {
"planning": "Remain braced against the reasonable threat for tropical storm force wind of 39 to 57 MPH.", "planning": "Remain braced against the reasonable threat for tropical storm force wind of 39 to 57 mph.",
"preparation": "To be safe, efforts should fully focus on avoiding injury. Properties remain subject to limited wind impacts.", "preparation": "To be safe, efforts should fully focus on avoiding injury. Properties remain subject to limited wind impacts.",
"action": "Now is the time to hide from the wind. Failure to adequately shelter may result in serious injury. Remain sheltered until the hazardous wind subsides.", "action": "Now is the time to hide from the wind. Failure to adequately shelter may result in serious injury. Remain sheltered until the hazardous wind subsides.",
}, },
@ -115,24 +117,24 @@ ThreatStatements = {
"action": "Failure to exercise due safety may result in additional injury. If you have a life-threatening emergency dial 9 1 1.", "action": "Failure to exercise due safety may result in additional injury. If you have a life-threatening emergency dial 9 1 1.",
}, },
"default": { "default": {
"planning": "Emergency considerations should include a reasonable threat for tropical storm force wind of 39 to 57 MPH.", "planning": "Emergency considerations should include a reasonable threat for tropical storm force wind of 39 to 57 mph.",
"preparation": "Be safe and protect against the potential of limited wind impacts.", "preparation": "Be safe and protect against the potential of limited wind impacts.",
"action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury.", "action": "Hazardous wind is possible. Failure to adequately shelter may result in serious injury.",
}, },
}, },
"None": { "None": {
"check plans": { "check plans": {
"planning": "Emergency planning for this event need not include a threat for tropical storm force wind. The wind will remain less than 39 MPH, but conditions may still be breezy to windy.", "planning": "Emergency planning for this event need not include a threat for tropical storm force wind. The wind will remain less than 39 mph, but conditions may still be breezy to windy.",
"preparation": "Little to no preparations needed to guard against tropical winds at this time.", "preparation": "Little to no preparations needed to guard against tropical winds at this time.",
"action": "Ensure readiness for the next tropical wind event.", "action": "Ensure readiness for the next tropical wind event.",
}, },
"complete preparations": { "complete preparations": {
"planning": "Emergency plans for this event need not include a threat for tropical storm force wind. The wind will remain less than 39 MPH, but conditions may still be breezy to windy.", "planning": "Emergency plans for this event need not include a threat for tropical storm force wind. The wind will remain less than 39 mph, but conditions may still be breezy to windy.",
"preparation": "Little to no preparations needed to guard against tropical winds at this time.", "preparation": "Little to no preparations needed to guard against tropical winds at this time.",
"action": "Ensure readiness for the next tropical wind event.", "action": "Ensure readiness for the next tropical wind event.",
}, },
"hunker down": { "hunker down": {
"planning": "Emergency considerations need not include a threat for tropical storm force wind. The wind will remain less than 39 MPH, but conditions may still be breezy to windy.", "planning": "Emergency considerations need not include a threat for tropical storm force wind. The wind will remain less than 39 mph, but conditions may still be breezy to windy.",
"preparation": "Little to no preparations needed to guard against tropical winds at this time.", "preparation": "Little to no preparations needed to guard against tropical winds at this time.",
"action": "Ensure readiness for the next tropical wind event.", "action": "Ensure readiness for the next tropical wind event.",
}, },

View file

@ -183,9 +183,10 @@ import com.raytheon.viz.ui.simulatedtime.SimulatedTimeOperations;
* match the current time * match the current time
* 01/21/2016 18505 lshi Resent product should have same WMO, MND, and segment times * 01/21/2016 18505 lshi Resent product should have same WMO, MND, and segment times
* as original product. * as original product.
* 02/05/2016 5242 dgilling Remove calls to deprecated Localization APIs. * 02/05/2016 5242 dgilling Remove calls to deprecated Localization APIs.
* 02/10/2016 5337 dgilling Prevent CAN products past VTEC end time * 02/10/2016 5337 dgilling Prevent CAN products past VTEC end time
* from being transmitted. * from being transmitted.
* 02/24/2016 5411 randerso Leave issue times in mixed case.
* </pre> * </pre>
* *
* @author lvenable * @author lvenable
@ -2019,7 +2020,7 @@ public class ProductEditorComp extends Composite implements
SimpleDateFormat fmt = new SimpleDateFormat( SimpleDateFormat fmt = new SimpleDateFormat(
longLocalFmtStr); longLocalFmtStr);
fmt.setTimeZone(localTimeZone); fmt.setTimeZone(localTimeZone);
String issueTime = fmt.format(now).toUpperCase(); String issueTime = fmt.format(now);
textComp.replaceText(tip, issueTime); textComp.replaceText(tip, issueTime);
} }
} }
@ -2044,7 +2045,7 @@ public class ProductEditorComp extends Composite implements
int numSegments = pds.getSegmentsArray().size(); int numSegments = pds.getSegmentsArray().size();
SimpleDateFormat fmt = new SimpleDateFormat(longLocalFmtStr); SimpleDateFormat fmt = new SimpleDateFormat(longLocalFmtStr);
fmt.setTimeZone(localTimeZone); fmt.setTimeZone(localTimeZone);
String officeIssueTime = fmt.format(now).toUpperCase(); String officeIssueTime = fmt.format(now);
for (int i = 0; i < numSegments; i++) { for (int i = 0; i < numSegments; i++) {
textComp.startUpdate(); textComp.startUpdate();
@ -2081,7 +2082,7 @@ public class ProductEditorComp extends Composite implements
issueTime = officeIssueTime; issueTime = officeIssueTime;
} else { } else {
fmt.setTimeZone(TimeZone.getTimeZone(tz)); fmt.setTimeZone(TimeZone.getTimeZone(tz));
issueTime = fmt.format(now).toUpperCase(); issueTime = fmt.format(now);
} }
if (sb.length() > 0) { if (sb.length() > 0) {
sb.append(" /"); sb.append(" /");

View file

@ -175,7 +175,7 @@ class TextProduct(GenericReport.TextProduct):
def _makeCallToAction(self, fcst, editArea, areaLabel, argDict): def _makeCallToAction(self, fcst, editArea, areaLabel, argDict):
ctaBodyPhrase = "" ctaBodyPhrase = ""
if self._callToAction: if self._callToAction:
ctaBodyPhrase = "\n\nPrecautionary/preparedness actions...\n\n" + \ ctaBodyPhrase = "\n\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n" + \
ctaBodyPhrase + \ ctaBodyPhrase + \
"|* Call to action goes here *|\n\n" + \ "|* Call to action goes here *|\n\n" + \
"\n\n&&\n\n" "\n\n&&\n\n"

View file

@ -27,6 +27,7 @@
# 06/17/2015 4027 dgilling Perform case-insensitive # 06/17/2015 4027 dgilling Perform case-insensitive
# comparisons in foundCTAs. # comparisons in foundCTAs.
# 07/13/2015 4648 randerso Fix bullets in follow up products # 07/13/2015 4648 randerso Fix bullets in follow up products
# 02/24/2016 5411 randerso Make bullet headers upper case
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# Description: This product is a template for creating Hazard Products. # Description: This product is a template for creating Hazard Products.
@ -348,13 +349,13 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
# Added to place line feeds in the CAP tags to keep separate from CTAs # Added to place line feeds in the CAP tags to keep separate from CTAs
fcst = string.replace(fcst, \ fcst = string.replace(fcst, \
r"Precautionary/preparedness actions\.\.\.", \ r"PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", \
r"\nPrecautionary/preparedness actions\.\.\.\n") r"\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n")
fcst = string.replace(fcst, "\n ","\n") fcst = string.replace(fcst, "\n ","\n")
fcst = string.replace(fcst, "&&", "\n&&\n") fcst = string.replace(fcst, "&&", "\n&&\n")
# Prevent empty Call to Action Tags # Prevent empty Call to Action Tags
fcst = re.sub(r'\nPrecautionary/preparedness actions\.\.\.\s*&&\n', \ fcst = re.sub(r'\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\s*&&\n', \
"", fcst) "", fcst)
fcst = self._indentBulletText(fcst) fcst = self._indentBulletText(fcst)
@ -717,14 +718,14 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
if (re.search("\* " + self._bulletOrder()[i] + "\.\.\.", segmentText, flags=re.IGNORECASE) is not None) and bulletFlag: if (re.search("\* " + self._bulletOrder()[i] + "\.\.\.", segmentText, flags=re.IGNORECASE) is not None) and bulletFlag:
print "* " + self._bulletOrder()[i] + "... found!" print "* " + self._bulletOrder()[i] + "... found!"
segmentTextSplit = re.split("\* " + self._bulletOrder()[i] + "\.\.\.", segmentText, flags=re.IGNORECASE) segmentTextSplit = re.split("\* " + self._bulletOrder()[i] + "\.\.\.", segmentText, flags=re.IGNORECASE)
segmentText = string.join(segmentTextSplit,"* " + bullet + \ segmentText = string.join(segmentTextSplit,"* " + bullet.upper() + \
"...|* Enter bullet text *|\n\n* " + self._bulletOrder()[i] + "...") "...|* Enter bullet text *|\n\n* " + self._bulletOrder()[i] + "...")
bulletFlag = 0 bulletFlag = 0
if bulletFlag: if bulletFlag:
print "appending to bottom list of bullets!" print "appending to bottom list of bullets!"
segmentTextSplit = re.split("Precautionary/preparedness actions\.\.\.", segmentText, flags=re.IGNORECASE) segmentTextSplit = re.split("PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", segmentText, flags=re.IGNORECASE)
segmentText = "\n" + string.join(segmentTextSplit,"* " + bullet + \ segmentText = "\n" + string.join(segmentTextSplit,"* " + bullet.upper() + \
"...|* Enter bullet text *|\n\nPrecautionary/preparedness actions...") "...|* Enter bullet text *|\n\nPRECAUTIONARY/PREPAREDNESS ACTIONS...")
bulletFlag = 0 bulletFlag = 0
# #
# Now if there is a can/exp hazard and previous segment Text, then # Now if there is a can/exp hazard and previous segment Text, then
@ -759,9 +760,9 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
if len(segmentTextSplit2) == 2: if len(segmentTextSplit2) == 2:
segmentTextSplit[1] = "*" + segmentTextSplit2[1] segmentTextSplit[1] = "*" + segmentTextSplit2[1]
else: else:
segmentTextSplit2 = re.split("Precautionary/preparedness actions\.\.\.", segmentTextSplit[1], 1, flags=re.IGNORECASE) segmentTextSplit2 = re.split("PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", segmentTextSplit[1], 1, flags=re.IGNORECASE)
if len(segmentTextSplit2) == 2: if len(segmentTextSplit2) == 2:
segmentTextSplit[1] = "Precautionary/preparedness actions..." + segmentTextSplit2[1] segmentTextSplit[1] = "PRECAUTIONARY/PREPAREDNESS ACTIONS..." + segmentTextSplit2[1]
segmentText = string.join(segmentTextSplit,"") segmentText = string.join(segmentTextSplit,"")
if removeBulletList != []: if removeBulletList != []:
segmentText = "|*\n" + segmentText + "*|" segmentText = "|*\n" + segmentText + "*|"
@ -807,7 +808,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
bulletOrder.remove(bullet) bulletOrder.remove(bullet)
print "reordered bullets are: ", bulletOrder print "reordered bullets are: ", bulletOrder
for b in bulletOrder: for b in bulletOrder:
bullets = bullets + "* " + b + "...|* Enter bullet text *|\n\n" bullets = bullets + "* " + b.upper() + "...|* Enter bullet text *|\n\n"
hazardBodyPhrase = hazardBodyPhrase + "\n\n" + bullets hazardBodyPhrase = hazardBodyPhrase + "\n\n" + bullets
@ -844,13 +845,13 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
if len(ctas) > 0: if len(ctas) > 0:
hazardBodyPhrase = hazardBodyPhrase + \ hazardBodyPhrase = hazardBodyPhrase + \
'Precautionary/preparedness actions...\n\n' 'PRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n'
for c in ctas: for c in ctas:
hazardBodyPhrase = hazardBodyPhrase + c + '\n\n' hazardBodyPhrase = hazardBodyPhrase + c + '\n\n'
hazardBodyPhrase = hazardBodyPhrase + '&&\n\n' hazardBodyPhrase = hazardBodyPhrase + '&&\n\n'
# Make sure there is only one CAP tag pairs # Make sure there is only one CAP tag pairs
hazardBodyPhrase = re.sub(r'&&\s*Precautionary/preparedness actions\.\.\.\n', \ hazardBodyPhrase = re.sub(r'&&\s*PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n', \
"", hazardBodyPhrase) "", hazardBodyPhrase)
return hazardBodyPhrase return hazardBodyPhrase

View file

@ -1027,7 +1027,7 @@ class TextProduct(HLSTCV_Common.TextProduct):
def _preparednessSection(self, productDict, productSegmentGroup, productSegment): def _preparednessSection(self, productDict, productSegmentGroup, productSegment):
sectionDict = dict() sectionDict = dict()
sectionDict['title'] = "Precautionary/Preparedness Actions" sectionDict['title'] = "PRECAUTIONARY/PREPAREDNESS ACTIONS"
sectionDict['genericAction'] = None sectionDict['genericAction'] = None
if not self._ImpactsAnticipated: if not self._ImpactsAnticipated:

View file

@ -209,14 +209,14 @@ class TextProduct(GenericHazards.TextProduct):
# Added to place line feeds in the CAP tags to keep separate from CTAs # Added to place line feeds in the CAP tags to keep separate from CTAs
fcst = string.replace(fcst, \ fcst = string.replace(fcst, \
r"Precautionary/preparedness actions\.\.\.", \ r"PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", \
r"\nPrecautionary/preparedness actions\.\.\.\n") r"\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n")
fcst = string.replace(fcst, ".:", ".") fcst = string.replace(fcst, ".:", ".")
fcst = string.replace(fcst, "\n ","\n") fcst = string.replace(fcst, "\n ","\n")
fcst = string.replace(fcst, "&&", "\n&&\n") fcst = string.replace(fcst, "&&", "\n&&\n")
# Prevent empty Call to Action Tags # Prevent empty Call to Action Tags
fcst = re.sub(r'\nPrecautionary/preparedness actions\.\.\.\s*&&\n', \ fcst = re.sub(r'\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\s*&&\n', \
"", fcst) "", fcst)
### to remove any empty framing code ### to remove any empty framing code
fcst = re.sub("\|\*\s*\*\|", "", fcst) fcst = re.sub("\|\*\s*\*\|", "", fcst)

View file

@ -525,16 +525,16 @@ class TextProduct(GenericHazards.TextProduct):
cta = '' cta = ''
if len(cta) > 1: if len(cta) > 1:
ctaBodyPhrase ="\n\nPrecautionary/preparedness actions...\n\n" + \ ctaBodyPhrase ="\n\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n" + \
cta + \ cta + \
"\n\n&&\n\n" "\n\n&&\n\n"
else: else:
ctaBodyPhrase = cta ctaBodyPhrase = cta
if ctaBodyPhrase.find('Precautionary/preparedness actions...') != -1 and \ if ctaBodyPhrase.find('PRECAUTIONARY/PREPAREDNESS ACTIONS...') != -1 and \
attribution.find('&&') != -1: attribution.find('&&') != -1:
attribution = attribution.replace('&&','') attribution = attribution.replace('&&','')
ctaBodyPhrase = ctaBodyPhrase.replace('Precautionary/preparedness actions...','') ctaBodyPhrase = ctaBodyPhrase.replace('PRECAUTIONARY/PREPAREDNESS ACTIONS...','')
attrPhrase = attribution + '\n\n' + headPhrase + '\n' + \ attrPhrase = attribution + '\n\n' + headPhrase + '\n' + \
endTimePhrase + '\n' + basisPhrase + '\n' + impactsPhrase + \ endTimePhrase + '\n' + basisPhrase + '\n' + impactsPhrase + \

View file

@ -412,8 +412,8 @@ class TextProduct(GenericHazards.TextProduct):
}, },
{ {
"name": "Overview_PrecautionaryPreparednessActions", "name": "Overview_PrecautionaryPreparednessActions",
"label": "Precautionary/Preparedness Actions", "label": "PRECAUTIONARY/PREPAREDNESS ACTIONS",
"title": ".Precautionary/Preparedness Actions...\nPrecautionary/Preparedness Actions...\n\n", "title": ".PRECAUTIONARY/PREPAREDNESS ACTIONS...\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n",
"endStr": "\n&&" "endStr": "\n&&"
}, },
{ {
@ -626,14 +626,14 @@ class TextProduct(GenericHazards.TextProduct):
}, },
{ {
"name": "PrecautionaryPreparednessActions", "name": "PrecautionaryPreparednessActions",
"label": "Precautionary/Preparedness Actions", "label": "PRECAUTIONARY/PREPAREDNESS ACTIONS",
"defaultOn": True, "defaultOn": True,
"includeFor": self._allAreas(), "includeFor": self._allAreas(),
"usePrev": True, "usePrev": True,
"inSegments": "optional", "inSegments": "optional",
"importMethod": None, "importMethod": None,
"importPIL": None, "importPIL": None,
"title": "...Precautionary/preparedness actions...\nprecautionary/preparedness actions...\n\n", "title": "...PRECAUTIONARY/PREPAREDNESS ACTIONS...\nPRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n",
"endStr":"\n&&", "endStr":"\n&&",
}, },
{ {
@ -1387,7 +1387,7 @@ class TextProduct(GenericHazards.TextProduct):
fcst = fcst.replace("&&", "\n&&\n") fcst = fcst.replace("&&", "\n&&\n")
# Prevent empty Call to Action Tags # Prevent empty Call to Action Tags
fcst = re.sub(r'\nPrecautionary/preparedness actions\.\.\.\s*&&\n', \ fcst = re.sub(r'\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\s*&&\n', \
"", fcst) "", fcst)
# #
# Clean up multiple line feeds # Clean up multiple line feeds
@ -5861,7 +5861,7 @@ TTAA00 KNHC DDHHMM
BULLETIN BULLETIN
HURRICANE KATRINA ADVISORY NUMBER 10 HURRICANE KATRINA ADVISORY NUMBER 10
NWS TPC/NATIONAL HURRICANE CENTER Miami FL NWS TPC/NATIONAL HURRICANE CENTER Miami FL
11 PM EDT THU AUG 25 2005 11 PM EDT Thu Aug 25 2005
...Eye of Katrina moving southwestward across Miami-Dade county... ...Eye of Katrina moving southwestward across Miami-Dade county...
@ -5964,7 +5964,7 @@ NNNN
##BULLETIN ##BULLETIN
##HURRICANE LINDA ADVISORY NUMBER 12 ##HURRICANE LINDA ADVISORY NUMBER 12
##NWS TPC/NATIONAL HURRICANE CENTER MIAMI FL EP152009 ##NWS TPC/NATIONAL HURRICANE CENTER MIAMI FL EP152009
##800 PM PDT WED SEP 09 2009 ##800 PM PDT Wed Sep 09 2009
## ##
##...Linda becomes a hurricane...the sixth hurricane of the eastern ##...Linda becomes a hurricane...the sixth hurricane of the eastern
##Pacific season... ##Pacific season...

View file

@ -213,14 +213,14 @@ class TextProduct(GenericHazards.TextProduct):
# Added to place line feeds in the CAP tags to keep separate from CTAs # Added to place line feeds in the CAP tags to keep separate from CTAs
fcst = string.replace(fcst, \ fcst = string.replace(fcst, \
r"Precautionary/preparedness actions\.\.\.", \ r"PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", \
r"\nPrecautionary/preparedness actions\.\.\.\n") r"\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n")
fcst = string.replace(fcst, ".:", ".") fcst = string.replace(fcst, ".:", ".")
fcst = string.replace(fcst, "\n ","\n") fcst = string.replace(fcst, "\n ","\n")
fcst = string.replace(fcst, "&&", "\n&&\n") fcst = string.replace(fcst, "&&", "\n&&\n")
# Prevent empty Call to Action Tags # Prevent empty Call to Action Tags
fcst = re.sub(r'\nPrecautionary/preparedness actions\.\.\.\s*&&\n', \ fcst = re.sub(r'\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\s*&&\n', \
"", fcst) "", fcst)
### to remove any empty framing code ### to remove any empty framing code
fcst = re.sub("\|\*\s*\*\|", "", fcst) fcst = re.sub("\|\*\s*\*\|", "", fcst)

View file

@ -453,13 +453,13 @@ class TextProduct(GenericHazards.TextProduct):
if len(ctas) > 0: if len(ctas) > 0:
hazardBodyPhrase = hazardBodyPhrase + \ hazardBodyPhrase = hazardBodyPhrase + \
'Precautionary/preparedness actions...\n\n' 'PRECAUTIONARY/PREPAREDNESS ACTIONS...\n\n'
for c in ctas: for c in ctas:
hazardBodyPhrase = hazardBodyPhrase + c + '\n\n' hazardBodyPhrase = hazardBodyPhrase + c + '\n\n'
hazardBodyPhrase = hazardBodyPhrase + '&&\n\n' hazardBodyPhrase = hazardBodyPhrase + '&&\n\n'
# Make sure there is only one CAP tag pairs # Make sure there is only one CAP tag pairs
hazardBodyPhrase = re.sub(r'&&\s*Precautionary/preparedness actions\.\.\.\n', \ hazardBodyPhrase = re.sub(r'&&\s*PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n', \
"", hazardBodyPhrase) "", hazardBodyPhrase)
return hazardBodyPhrase return hazardBodyPhrase
@ -870,14 +870,14 @@ class TextProduct(GenericHazards.TextProduct):
# Added to place line feeds in the CAP tags to keep separate from CTAs # Added to place line feeds in the CAP tags to keep separate from CTAs
fcst = string.replace(fcst, \ fcst = string.replace(fcst, \
r"Precautionary/preparedness actions\.\.\.", \ r"PRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.", \
r"\nPrecautionary/preparedness actions\.\.\.\n") r"\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\n")
# Commented out following line to prevent it from changing bullet indentation # Commented out following line to prevent it from changing bullet indentation
#fcst = string.replace(fcst, "\n ","\n") #fcst = string.replace(fcst, "\n ","\n")
fcst = string.replace(fcst, "&&", "\n&&\n") fcst = string.replace(fcst, "&&", "\n&&\n")
# Prevent empty Call to Action Tags # Prevent empty Call to Action Tags
fcst = re.sub(r'\nPrecautionary/preparedness actions\.\.\.\s*&&\n', \ fcst = re.sub(r'\nPRECAUTIONARY/PREPAREDNESS ACTIONS\.\.\.\s*&&\n', \
"", fcst) "", fcst)
fcst = self._indentBulletText(fcst) fcst = self._indentBulletText(fcst)

View file

@ -62,6 +62,7 @@ import com.raytheon.uf.common.time.TimeRange;
* 10/29/2013 2476 njensen Updated getNumpy() and added getKeyList() * 10/29/2013 2476 njensen Updated getNumpy() and added getKeyList()
* 10/31/2013 2508 randerso Added getKeys(), deprecated getKey() * 10/31/2013 2508 randerso Added getKeys(), deprecated getKey()
* Apr 23, 2015 4259 njensen Updated for new JEP API * Apr 23, 2015 4259 njensen Updated for new JEP API
* Feb 24, 2106 5411 randerso Fixed null pointer in equals()
* *
* </pre> * </pre>
* *
@ -233,6 +234,8 @@ public class DiscreteGridSlice extends AbstractGridSlice implements Cloneable {
return true; return true;
} }
return false; return false;
} else if (rhsGrid == null) {
return false;
} }
if ((grid.getXdim() != rhsGrid.getXdim()) if ((grid.getXdim() != rhsGrid.getXdim())

View file

@ -244,7 +244,7 @@ THIS IS A TEST MESSAGE. ##
#else #else
, moving ## , moving ##
#end #end
#direction(${movementDirectionRounded}) AT ${mathUtil.roundTo5(${movementSpeed})} MPH. ## #direction(${movementDirectionRounded}) at ${mathUtil.roundTo5(${movementSpeed})} mph. ##
#end #end
${rainAmount} ${rainAmount}
#else #else

View file

@ -180,7 +180,7 @@ producing swaths of tornado-like damage.
#end #end
#if(${list.contains(${bullets}, "takeCoverCTA")}) #if(${list.contains(${bullets}, "takeCoverCTA")})
Take cover now! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life! TAKE COVER NOW! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life!
#end #end
#if(${list.contains(${bullets}, "safePlacesCTA")}) #if(${list.contains(${bullets}, "safePlacesCTA")})

View file

@ -232,7 +232,7 @@ Widespread destructive winds of !** **! to !** **! mph will spread across ##
#end #end
#if(${list.contains(${bullets}, "cta2")}) #if(${list.contains(${bullets}, "cta2")})
Take cover now! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life! TAKE COVER NOW! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life!
#end #end
#if(${list.contains(${bullets}, "cta3")}) #if(${list.contains(${bullets}, "cta3")})
@ -459,7 +459,7 @@ producing swaths of tornado-like damage.
#end #end
#if(${list.contains(${bullets}, "takeCoverCTA")}) #if(${list.contains(${bullets}, "takeCoverCTA")})
Take cover now! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life! TAKE COVER NOW! Treat these imminent extreme winds as if a tornado was approaching and move immediately to the safe room in your shelter. Take action now to protect your life!
#end #end
#if(${list.contains(${bullets}, "safePlacesCTA")}) #if(${list.contains(${bullets}, "safePlacesCTA")})

View file

@ -508,10 +508,10 @@ This storm is producing large hail. Seek shelter now inside a sturdy structure a
## ##
#if(${list.contains(${bullets}, "historyWindCTA")}) #if(${list.contains(${bullets}, "historyWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is a dangerous situation. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows! This is a DANGEROUS SITUATION. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This is a dangerous situation. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows! This is a DANGEROUS SITUATION. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end
@ -528,10 +528,10 @@ This is a dangerous storm. Prepare immediately for large destructive hail capabl
## ##
#if(${list.contains(${bullets}, "extremeWindsCTA")}) #if(${list.contains(${bullets}, "extremeWindsCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. These storms have the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. These storms have the potential to cause serious injury and significant property damage.
#else #else
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. This storm has the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. This storm has the potential to cause serious injury and significant property damage.
#end #end
#end #end
@ -548,10 +548,10 @@ This is a potentially deadly storm. Seek shelter in an interior room on the lowe
## ##
#if(${list.contains(${bullets}, "widespreadWindCTA")}) #if(${list.contains(${bullets}, "widespreadWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is an extremely dangerous situation. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows! This is an EXTREMELY DANGEROUS SITUATION. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This is an extremely dangerous situation. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows! This is an EXTREMELY DANGEROUS SITUATION. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end

View file

@ -1105,10 +1105,10 @@ This storm is producing large hail. Seek shelter now inside a sturdy structure a
## ##
#if(${list.contains(${bullets}, "historyWindCTA")}) #if(${list.contains(${bullets}, "historyWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is a dangerous situation. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows. This is a DANGEROUS SITUATION. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows.
#else #else
This is a dangerous situation. This storm is producing widespread wind damage across !** ENTER LOCATION **!. sSek shelter now inside a sturdy structure and stay away from windows. This is a DANGEROUS SITUATION. This storm is producing widespread wind damage across !** ENTER LOCATION **!. sSek shelter now inside a sturdy structure and stay away from windows.
#end #end
#end #end
@ -1125,10 +1125,10 @@ This is a dangerous storm. Prepare immediately for large destructive hail capabl
## ##
#if(${list.contains(${bullets}, "extremeWindsCTA")}) #if(${list.contains(${bullets}, "extremeWindsCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
THis is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. These storms have the potential to cause serious injury and significant property damage. THis is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. These storms have the potential to cause serious injury and significant property damage.
#else #else
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. This storm has the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move to an interior room on the lowest floor of a building. This storm has the potential to cause serious injury and significant property damage.
#end #end
#end #end
@ -1145,10 +1145,10 @@ This is a potentially deadly storm. Seek shelter in an interior room on the lowe
## ##
#if(${list.contains(${bullets}, "widespreadWindCTA")}) #if(${list.contains(${bullets}, "widespreadWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is an extremely dangerous situation. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows. This is an EXTREMELY DANGEROUS SITUATION. These storms are producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows.
#else #else
This is an extremely dangerous situation. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows. This is an EXTREMELY DANGEROUS SITUATION. This storm is producing widespread wind damage across !** ENTER LOCATION **!. Seek shelter now inside a sturdy structure and stay away from windows.
#end #end
#end #end

View file

@ -511,8 +511,8 @@ THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
#if($spoutTag.length() > 0) #if($spoutTag.length() > 0)
<L>${spoutTag}</L> <L>${spoutTag}</L>
#end #end
<L>HAIL...${hailTag}IN</L> <L>HAIL...${hailTag}in</L>
<L>WIND...${windTag}KTS</L> <L>WIND...${windTag}kts</L>
$$ $$

View file

@ -749,10 +749,10 @@ THIS IS A TEST MESSAGE. DO NOT TAKE ACTION BASED ON THIS MESSAGE.
<L>${spoutTag}</L> <L>${spoutTag}</L>
#end #end
#if($hailTag.length() > 0) #if($hailTag.length() > 0)
<L>HAIL...${hailTag}IN</L> <L>HAIL...${hailTag}in</L>
#end #end
#if($windTag.length() > 0) #if($windTag.length() > 0)
<L>WIND...${windTag}KTS</L> <L>WIND...${windTag}kts</L>
#end #end
$$ $$

View file

@ -394,20 +394,20 @@ This storm has a history of producing large hail. Seek shelter now inside a stur
## ##
#if(${list.contains(${bullets}, "historyWindCTA")}) #if(${list.contains(${bullets}, "historyWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
These storms have a history of producing wind damage. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! These storms have a history of producing wind damage. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This storm has a history of producing wind damage. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! This storm has a history of producing wind damage. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end
## ##
#if(${list.contains(${bullets}, "historyWindHailCTA")}) #if(${list.contains(${bullets}, "historyWindHailCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
These storms have a history of producing destructive winds and large hail. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! These storms have a history of producing destructive winds and large hail. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This storm has a history of producing destructive winds and large hail. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! This storm has a history of producing destructive winds and large hail. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end
@ -439,10 +439,10 @@ Wind damage with this storm will occur well ahead of any rain or lightning. Do n
## ##
#if(${list.contains(${bullets}, "extremeWindsCTA")}) #if(${list.contains(${bullets}, "extremeWindsCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. These storms have the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. These storms have the potential to cause serious injury and significant property damage.
#else #else
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. This storm has the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. This storm has the potential to cause serious injury and significant property damage.
#end #end
#end #end

View file

@ -856,20 +856,20 @@ This storm has a history of producing large hail. Seek shelter now inside a stur
## ##
#if(${list.contains(${bullets}, "historyWindCTA")}) #if(${list.contains(${bullets}, "historyWindCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
These storms have a history of producing wind damage. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! These storms have a history of producing wind damage. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This storm has a history of producing wind damage. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! This storm has a history of producing wind damage. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end
## ##
#if(${list.contains(${bullets}, "historyWindHailCTA")}) #if(${list.contains(${bullets}, "historyWindHailCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
These storms have a history of producing destructive winds and large hail. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! These storms have a history of producing destructive winds and large hail. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#else #else
This storm has a history of producing destructive winds and large hail. This is a very dangerous situation. Seek shelter now inside a sturdy structure and stay away from windows! This storm has a history of producing destructive winds and large hail. This is a VERY DANGEROUS SITUATION. Seek shelter now inside a sturdy structure and stay away from windows!
#end #end
#end #end
@ -901,10 +901,10 @@ Wind damage with this storm will occur well ahead of any rain or lightning. Do n
## ##
#if(${list.contains(${bullets}, "extremeWindsCTA")}) #if(${list.contains(${bullets}, "extremeWindsCTA")})
#if(${stormType} == "line") #if(${stormType} == "line")
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. These storms have the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. These storms have the potential to cause serious injury and significant property damage.
#else #else
This is an extremely dangerous situation with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. This storm has the potential to cause serious injury and significant property damage. This is an EXTREMELY DANGEROUS SITUATION with tornado like wind speeds expected. Mobile homes and high profile vehicles are especially susceptible to winds of this magnitude and may be overturned. For your protection move immediately to a safe shelter or to an interior room on the lowest floor of your home or business. This storm has the potential to cause serious injury and significant property damage.
#end #end
#end #end

View file

@ -207,7 +207,7 @@ THIS IS A TEST MESSAGE. ##
####################################################################### #######################################################################
## Logic to create the Wind/Hail Tags used by CR. ## Logic to create the Wind/Hail Tags used by CR.
####################################################################### #######################################################################
#set($windhailTag = "WIND...HAIL ${windTag}KTS ${hailTag}IN") #set($windhailTag = "WIND...HAIL ${windTag}kts ${hailTag}in")
####################################################################### #######################################################################
## Logic to put together the threats based on Wind...Hail and Waterspout sections. ## Logic to put together the threats based on Wind...Hail and Waterspout sections.
####################################################################### #######################################################################

View file

@ -429,7 +429,7 @@ ${area.name}...
####################################################################### #######################################################################
## Logic to create the Wind/Hail Tags used by CR. ## Logic to create the Wind/Hail Tags used by CR.
####################################################################### #######################################################################
#set($windhailTag = "WIND...HAIL ${windTag}KTS ${hailTag}IN") #set($windhailTag = "WIND...HAIL ${windTag}kts ${hailTag}in")
####################################################################### #######################################################################
## Logic to put together the threats based on Wind...Hail and Waterspout sections. ## Logic to put together the threats based on Wind...Hail and Waterspout sections.
####################################################################### #######################################################################

View file

@ -105,6 +105,8 @@
<permission id="com.raytheon.localization.site/common_static/HazardServices"/> <permission id="com.raytheon.localization.site/common_static/HazardServices"/>
<permission id="com.raytheon.localization.site/common_static/warngen"/>
<!-- TODO Localization permissions should be able to be plugin contributed. <!-- TODO Localization permissions should be able to be plugin contributed.
Improve code in the generically [poorly] named FileManager to support Improve code in the generically [poorly] named FileManager to support
that concept and then split them. --> that concept and then split them. -->