Merge branch 'field_14.3.1' of ssh://collaborate3.nws.noaa.gov:29418/AWIPS2_Dev_Baseline into master_14.3.1

Former-commit-id: 2ac30f6c22 [formerly ece734cb6218a80fa2dda1b3c43673dc5a31bfbb]
Former-commit-id: f47840e4d9
This commit is contained in:
Brian.Dyke 2014-10-02 10:24:04 -04:00
commit d4888adc0f
10 changed files with 187 additions and 116 deletions

View file

@ -71,6 +71,7 @@ HazardsConflictDict = {
"AQ.Y" : ["AS.O", "AS.Y"],
"AS.O" : ["AQ.Y", "AS.Y"],
"AS.Y" : ["AQ.Y", "AS.O"],
"BH.S" : [],
"BW.Y" : ["GL.W", "SR.W", "HF.W", "TR.A", "TR.W", "HU.A", "HU.W", "HU.S",
"SC.Y", "SW.Y", "SE.W", "RB.Y", "SI.Y"],
"BZ.A" : ["LE.A", "WS.A", "BZ.W", "IS.W", "LE.W", "WS.W",
@ -78,10 +79,10 @@ HazardsConflictDict = {
"BZ.W" : ["BZ.A", "LE.A", "WS.A", "IS.W",
"LE.W", "WS.W",
"WW.Y", "LE.Y", "ZR.Y"],
"CF.A" : ["CF.W", "CF.Y", "HU.A", "TR.A", "TY.A", "HU.W", "TR.W"],
"CF.W" : ["CF.A", "CF.Y", "HU.W", "TR.W", "TY.W"],
"CF.Y" : ["CF.W", "CF.A", "HU.W", "TR.W", "TY.W"],
"CF.S" : ["HU.A", "TR.A", "TY.A", "CF.Y", "CF.W", "CF.A"],
"CF.A" : ["CF.W", "CF.Y", "HU.A", "TR.A", "TY.A", "HU.W", "TR.W", "SS.A", "SS.W"],
"CF.W" : ["CF.A", "CF.Y", "HU.W", "TR.W", "TY.W", "SS.A", "SS.W"],
"CF.Y" : ["CF.W", "CF.A", "HU.W", "TR.W", "TY.W,", "SS.A", "SS.W"],
"CF.S" : ["HU.A", "TR.A", "TY.A", "CF.Y", "CF.W", "CF.A", "SS.A", "SS.W"],
"DS.W" : ["DU.Y"],
"DU.Y" : ["DS.W"],
"EC.A" : ["WC.A", "EC.W", "WC.W"],
@ -161,6 +162,8 @@ HazardsConflictDict = {
"RB.Y", "SC.Y", "SE.A", "SE.W", "SI.Y", "SR.W", "SW.Y", "TY.W", "TY.A"],
"SR.W" : ["GL.W", "HF.W", "BW.Y", "TR.W", "HU.W", "TY.W",
"SC.Y", "SW.Y", "SE.W", "SE.A", "RB.Y", "SI.Y", "GL.A", "SR.A"],
"SS.A" : ["CF.A", "CF.W", "CF.Y", "SS.W"],
"SS.W" : ["CF.A", "CF.W", "CF.Y", "SS.A"],
"SU.W" : ["SU.Y", "HU.W", "TR.W", "TY.W"],
"SU.Y" : ["SU.W", "HU.W", "TR.W", "TY.W"],
"SV.A" : ["TO.A"],

View file

@ -93,6 +93,7 @@ class CallToActions:
"AF.Y": self.ctaAFY,
"AS.O": self.ctaASO,
"AS.Y": self.ctaASY,
"BH.S": self.ctaBHS,
"BW.Y": self.ctaBWY,
"BZ.A": self.ctaBZA,
"BZ.W": self.ctaBZW,
@ -280,6 +281,11 @@ LISTEN TO NOAA WEATHER RADIO OR LOCAL MEDIA FOR FURTHER INFORMATION.""",
"""AN AIR STAGNATION ADVISORY INDICATES THAT DUE TO LIMITED MOVEMENT OF AN AIR MASS ACROSS THE ADVISORY AREA...POLLUTION WILL INCREASE TO DANGEROUS LEVELS. PERSONS WITH RESPIRATORY ILLNESS SHOULD FOLLOW THEIR PHYSICIANS ADVICE FOR DEALING WITH HIGH LEVELS OF AIR POLLUTION.""",
]
def ctaBHS(self):
return [
"""A Beach Hazards Statement is issued when threats such as rip currents...longshore currents...sneaker waves and other hazards create life-threatening conditions in the surf zone. Caution should be used when in or near the water.""",
]
def ctaBWY(self):
return [
"""A BRISK WIND ADVISORY MEANS THAT WINDS WILL REACH SMALL CRAFT ADVISORY CRITERIA IN AREAS THAT ARE PRIMARILY ICE COVERED. MOVING ICE FLOES COULD DAMAGE SMALL CRAFT.""",
@ -333,11 +339,15 @@ LISTEN TO NOAA WEATHER RADIO OR LOCAL MEDIA FOR FURTHER INFORMATION.""",
def ctaEHA(self):
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.""",
"""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.""",
]
def ctaEHW(self):
return [
"""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.""",
"""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
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.""",
]
def ctaFAA(self):
@ -357,7 +367,7 @@ LISTEN TO NOAA WEATHER RADIO OR LOCAL MEDIA FOR FURTHER INFORMATION.""",
def ctaFRY(self):
return [
"""A FROST ADVISORY MEANS THAT FROST IS POSSIBLE. SENSITIVE OUTDOOR PLANTS MAY BE KILLED IF LEFT UNCOVERED.""",
"""A FROST ADVISORY MEANS THAT WIDESPREAD FROST IS EXPECTED. SENSITIVE OUTDOOR PLANTS MAY BE KILLED IF LEFT UNCOVERED.""",
]
def ctaFWA(self):
@ -402,7 +412,9 @@ LISTEN TO NOAA WEATHER RADIO OR LOCAL MEDIA FOR FURTHER INFORMATION.""",
def ctaHTY(self):
return [
"""A HEAT ADVISORY MEANS THAT A PERIOD OF HOT TEMPERATURES IS EXPECTED. THE COMBINATION OF HOT TEMPERATURES AND HIGH HUMIDITY WILL COMBINE TO CREATE A 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.""",
"""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
A HEAT ADVISORY MEANS THAT A PERIOD OF HOT TEMPERATURES IS EXPECTED. THE COMBINATION OF HOT TEMPERATURES AND HIGH HUMIDITY WILL COMBINE TO CREATE A 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.""",
]
def ctaHUA(self):
@ -509,10 +521,11 @@ LISTEN TO NOAA WEATHER RADIO OR LOCAL MEDIA FOR FURTHER INFORMATION.""",
return [
"""THERE IS A HIGH RISK OF RIP CURRENTS.
RIP CURRENTS ARE POWERFUL CHANNELS OF WATER FLOWING QUICKLY AWAY FROM SHORE...WHICH OCCUR MOST OFTEN AT LOW SPOTS OR BREAKS IN THE SANDBAR AND IN THE VICINITY OF STRUCTURES SUCH AS GROINS...JETTIES AND PIERS. HEED THE ADVICE OF LIFEGUARDS AND THE BEACH PATROL. PAY ATTENTION TO FLAGS AND POSTED SIGNS.
RIP CURRENTS ARE POWERFUL CHANNELS OF WATER FLOWING QUICKLY AWAY FROM SHORE...WHICH OCCUR MOST OFTEN AT LOW SPOTS OR BREAKS IN THE SANDBAR AND IN THE VICINITY OF STRUCTURES SUCH AS GROINS...JETTIES AND PIERS. HEED THE ADVICE OF LIFEGUARDS...BEACH PATROL FLAGS AND SIGNS.
IF YOU BECOME CAUGHT IN A RIP CURRENT...DO NOT PANIC. REMAIN CALM AND BEGIN TO SWIM PARALLEL TO SHORE. ONCE YOU ARE AWAY FROM THE FORCE OF THE RIP CURRENT...BEGIN TO SWIM BACK TO THE BEACH. DO NOT ATTEMPT TO SWIM DIRECTLY AGAINST A RIP CURRENT. EVEN A STRONG SWIMMER CAN BECOME EXHAUSTED QUICKLY.""",
IF YOU BECOME CAUGHT IN A RIP CURRENT...YELL FOR HELP. REMAIN CALM...do not exhaust yourself and stay afloat while waiting for help. If you have to swim out of a rip current...SWIM PARALLEL TO SHORE and back toward the beach when possible. DO NOT ATTEMPT TO SWIM DIRECTLY AGAINST A RIP CURRENT as you will tire quickly. """,
]
def ctaSCY(self):
return [
"""A SMALL CRAFT ADVISORY MEANS THAT WIND SPEEDS OF 21 TO 33 KNOTS ARE EXPECTED TO PRODUCE HAZARDOUS WAVE CONDITIONS TO SMALL CRAFT. INEXPERIENCED MARINERS...ESPECIALLY THOSE OPERATING SMALLER VESSELS SHOULD AVOID NAVIGATING IN THESE CONDITIONS.""",
@ -538,7 +551,6 @@ IF YOU BECOME CAUGHT IN A RIP CURRENT...DO NOT PANIC. REMAIN CALM AND BEGIN TO S
"""A DENSE SMOKE ADVISORY MEANS WIDESPREAD FIRES WILL CREATE SMOKE...LIMITING VISIBILITIES. IF DRIVING...SLOW DOWN...USE YOUR HEADLIGHTS...AND LEAVE PLENTY OF DISTANCE AHEAD OF YOU IN CASE A SUDDEN STOP IS NEEDED.""",
]
def ctaSRA(self):
return [
"""A STORM WATCH IS ISSUED WHEN THE RISK OF STORM FORCE WINDS OF 48 TO 63 KNOTS HAS SIGNIFICANTLY INCREASED...BUT THE SPECIFIC TIMING AND/OR LOCATION IS STILL UNCERTAIN. IT IS INTENDED TO PROVIDE ADDITIONAL LEAD TIME FOR MARINERS WHO MAY WISH TO CONSIDER ALTERING THEIR PLANS.""",
@ -551,12 +563,12 @@ IF YOU BECOME CAUGHT IN A RIP CURRENT...DO NOT PANIC. REMAIN CALM AND BEGIN TO S
def ctaSUW(self):
return [
"""A HIGH SURF WARNING INDICATES THAT DANGEROUS...BATTERING WAVE WILL POUND THE SHORELINE. THIS WILL RESULT IN VERY DANGEROUS SWIMMING CONDITIONS...AND DEADLY RIP CURRENTS.""",
"""A HIGH SURF WARNING INDICATES THAT DANGEROUS...BATTERING WAVES WILL POUND THE SHORELINE. THIS WILL RESULT IN LIFE-THREATENING CONDITIONS.""",
]
def ctaSUY(self):
return [
"""A HIGH SURF ADVISORY MEANS THAT HIGH SURF WILL AFFECT BEACHES IN THE ADVISORY AREA...PRODUCING RIP CURRENTS AND LOCALIZED BEACH EROSION.""",
"""A HIGH SURF ADVISORY MEANS THAT HIGH SURF WILL AFFECT BEACHES IN THE ADVISORY AREA...PRODUCING LOCALIZED BEACH EROSION AND DANGEROUS SWIMMING CONDITIONS.""",
]
def ctaSWY(self):
@ -694,7 +706,15 @@ A WINTER WEATHER ADVISORY FOR SNOW MEANS THAT PERIODS OF SNOW WILL CAUSE PRIMARI
]
def ctaPilCFW(self):
return [
return [("***RIP CURRENTS CTA", """RIP CURRENTS ARE POWERFUL CHANNELS OF WATER FLOWING QUICKLY AWAY FROM SHORE...WHICH OCCUR MOST OFTEN AT LOW SPOTS OR BREAKS IN THE SANDBAR AND IN THE VICINITY OF STRUCTURES SUCH AS GROINS...JETTIES AND PIERS. HEED THE ADVICE OF LIFEGUARDS...BEACH PATROL FLAGS AND SIGNS.
IF YOU BECOME CAUGHT IN A RIP CURRENT...YELL FOR HELP. REMAIN CALM...do not exhaust yourself and stay afloat while waiting for help. If you have to swim out of a rip current...SWIM PARALLEL TO SHORE and back toward the beach when possible. DO NOT ATTEMPT TO SWIM DIRECTLY AGAINST A RIP CURRENT as you will tire quickly."""),
("***LONGSHORE CURRENTS CTA", """LONGSHORE CURRENTS COMMONLY OCCUR WHEN WAVES APPROACH THE SHORELINE AT AN ANGLE. THEY CAN BE PARTICULARLY DANGEROUS NEAR A JETTY OR PIER."""),
("***SNEAKER WAVES CTA", """ADD CTA HERE."""),
("***RED TIDE CTA", """ADD CTA HERE"""),
("***SEA NETTLES CTA", """ADD CTA HERE"""),
("***TSUNAMI DEBRIS CTA", """ADD CTA HERE"""),
("***OTHER BEACH HAZARDS CTA", """ADD CTA HERE"""),
]
def ctaPilCWF(self):

View file

@ -52,7 +52,7 @@ hazardDict = OrderedDict([
('Fire Weather', ["FW.A", "FW.W"]),
('Convective Watches', ["SV.A", "TO.A"]),
('Coastal Flood', ["CF.S", "LS.S", "CF.Y", "CF.W", "CF.A",
"SU.Y", "SU.W", "LS.Y", "LS.W", "LS.A", "RP.S"]),
"SU.Y", "SU.W", "LS.Y", "LS.W", "LS.A", "BH.S", "RP.S"]),
('Non-Precipitation', ["AF.W", "AF.Y", "AQ.Y", "AS.O", "AS.Y", "DU.Y",
"DS.W", "EH.W", "EH.A", "EC.W", "EC.A", "FG.Y", "FZ.W", "FZ.A",
"HZ.W", "HZ.A", "ZF.Y", "FR.Y", "HT.Y", "HW.W", "HW.A",
@ -60,7 +60,7 @@ hazardDict = OrderedDict([
('Marine', ["MA.S", "MH.W", "MH.Y", "BW.Y", "UP.Y", "MF.Y",
"GL.A", "GL.W", "SE.A", "SE.W", "UP.A", "UP.W", "HF.A", "HF.W", "LO.Y", "SC.Y", "SW.Y",
"RB.Y", "SI.Y", "MS.Y", "SR.A", "SR.W"]),
('Tropical Cyclone', ["HU.W", "HU.A", "HU.S", "TR.W", "TR.A"]),
('Tropical Cyclone', ["HU.W", "HU.A", "TR.W", "TR.A"]),
('Tsunami', ["TS.A", "TS.W"]),
# ('Local', ["TEST"]), #example of adding local hazards
@ -73,7 +73,7 @@ hazardDict = OrderedDict([
# ('Hydrology', ["FF.A", "FA.A"]),
# ('Fire Weather', ["FW.A", "FW.W"]),
# ('Coastal Flood', ["CF.S", "LS.S", "CF.Y", "CF.W", "CF.A",
# "SU.Y", "SU.W", "LS.Y", "LS.W", "LS.A", "RP.S"]),
# "SU.Y", "SU.W", "LS.Y", "LS.W", "LS.A", "RP.S", "BH.S"]),
# ('Non-Precipitation', ["AF.W", "AF.Y", "AQ.Y", "AS.O", "AS.Y", "DU.Y",
# "DS.W", "EH.W", "EH.A", "EC.W", "EC.A", "FG.Y", "FZ.W", "FZ.A",
# "HZ.W", "HZ.A", "ZF.Y", "FR.Y", "HT.Y", "HW.W", "HW.A",

View file

@ -172,4 +172,34 @@
<level>FHAG2</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>vis</short_name>
<long_name>visibility</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>Vis</uiname>
<valid_range>0.0</valid_range>
<valid_range>100000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>1</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
<gridParameterInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="parameterInfo">
<short_name>viserranl</short_name>
<long_name>visibility uncertainty</long_name>
<units>m</units>
<udunits>meters</udunits>
<uiname>Viserranlind</uiname>
<valid_range>0.0</valid_range>
<valid_range>100000.0</valid_range>
<fillValue>-99999.0</fillValue>
<n3D>1</n3D>
<levelsDesc>SFC</levelsDesc>
<levels>
<level>SFC</level>
</levels>
</gridParameterInfo>
</gridParamInfo>

View file

@ -1088,6 +1088,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
('SU.W', allActions, 'HighSurf'), # HIGH SURF WARNING
('SU.Y', allActions, 'HighSurf1'), # HIGH SURF ADVISORY
('RP.S', allActions, 'Rip'), # HIGH RIP CURRENT RISK
('BH.S', allActions, 'BeachHaz'), # BEACH HAZARDS STATEMENT
('AF.W', allActions, 'Ashfall2'), # VOLCANIC ASHFALL WARNING
('AF.Y', allActions, 'Ashfall'), # VOLCANIC ASHFALL ADVISORY
('TS.W', allActions, 'Tsunami'), # TSUNAMI WARNING

View file

@ -1439,13 +1439,14 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
# These are sorted in priority order - most important first.
def allowedHazards(self):
allActions = ["NEW", "EXA", "EXB", "EXT", "CAN", "CON", "EXP"]
tropicalActions = ["NEW", "EXA", "EXB", "EXT", "UPG", "CAN", "CON",
"EXP"]
tropicalActions = ["NEW", "EXA","UPG", "CAN", "CON"]
return [
('HU.W', tropicalActions, 'Tropical'), # HURRICANE WARNING
('SS.W', tropicalActions, 'Surge'), # Storm Surge WARNING
('TY.W', tropicalActions, 'Tropical'), # TYPHOON WARNING
('TR.W', tropicalActions, 'Tropical1'), # TROPICAL STORM WARNING
('HU.A', tropicalActions, 'Tropical'), # HURRICANE WATCH
('SS.A', tropicalActions, 'Surge'), # Storm Surge WATCH
('TY.A', tropicalActions, 'Tropical'), # TYPHOON WATCH
('TR.A', tropicalActions, 'Tropical1'), # TROPICAL STORM WATCH
('HF.W', allActions, 'Marine'), # HURRICANE FORCE WIND WARNING
@ -1498,6 +1499,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
('SU.W', allActions, 'HighSurf'), # HIGH SURF WARNING
('SU.Y', allActions, 'HighSurf'), # HIGH SURF ADVISORY
('RP.S', allActions, 'Rip'), # HIGH RIP CURRENT RISK
('BH.S', allActions, 'BeachHaz'), # BEACH HAZARDS STATEMENT
('AF.W', allActions, 'Ashfall'), # VOLCANIC ASHFALL WARNING
('AF.Y', allActions, 'Ashfall'), # VOLCANIC ASHFALL ADVISORY
('LO.Y', allActions, 'Drought'), # LOW WATER ADVISORY

View file

@ -100,6 +100,7 @@ class TextProduct(GenericHazards.TextProduct):
('LS.S', allActions, 'CoastalFloodStatement'), # LAKESHORE FLOOD STATEMENT
('SU.W', allActions, 'HighSurf'), # HIGH SURF WARNING
('SU.Y', allActions, 'HighSurf'), # HIGH SURF ADVISORY
('BH.S', allActions, 'BeachHaz'), # Beach Hazards Statement
('RP.S', allActions, 'RipCurrent'), # HIGH RIP CURRENT RISK
]

View file

@ -1946,5 +1946,6 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
('SU.W', allActions, 'Marine'), # HIGH SURF WARNING
('SU.Y', allActions, 'Marine'), # HIGH SURF ADVISORY
('RP.S', allActions, 'Rip'), # High Rip Threat
('BH.S', allActions, 'BeachHaz'), # Beach Hazards Statement
]

View file

@ -1,99 +1,102 @@
<colorMap>
<color r = "0.278431372549" g = "0.270588235294" b = "0.270588235294" a = "1.0" />
<color r = "0.866666666667" g = "0.850980392157" b = "0.850980392157" a = "1.0" />
<color r = "0.549019607843" g = "0.541176470588" b = "0.541176470588" a = "1.0" />
<color r = "0.376470588235" g = "0.23137254902" b = "0.0666666666667" a = "1.0" />
<color r = "0.874509803922" g = "0.776470588235" b = "0.61568627451" a = "1.0" />
<color r = "0.776470588235" g = "0.650980392157" b = "0.450980392157" a = "1.0" />
<color r = "0.317647058824" g = "0.21568627451" b = "0.878431372549" a = "1.0" />
<color r = "0.878431372549" g = "0.788235294118" b = "0.00392156862745" a = "1.0" />
<color r = "0.878431372549" g = "0.0980392156863" b = "0.113725490196" a = "1.0" />
<color r = "0.117647058824" g = "0.819607843137" b = "0.43137254902" a = "1.0" />
<color r = "0.0392156862745" g = "0.862745098039" b = "0.878431372549" a = "1.0" />
<color r = "0.0627450980392" g = "1.0" b = "0.513725490196" a = "1.0" />
<color r = "0.043137254902" g = "0.698039215686" b = "0.356862745098" a = "1.0" />
<color r = "1.0" g = "0.43137254902" b = "0.239215686275" a = "1.0" />
<color r = "1.0" g = "0.749019607843" b = "0.411764705882" a = "1.0" />
<color r = "0.376470588235" g = "0.643137254902" b = "0.878431372549" a = "1.0" />
<color r = "0.0588235294118" g = "0.364705882353" b = "0.878431372549" a = "1.0" />
<color r = "0.956862745098" g = "0.858823529412" b = "0.0980392156863" a = "1.0" />
<color r = "0.956862745098" g = "0.380392156863" b = "0.0862745098039" a = "1.0" />
<color r = "0.898039215686" g = "0.0235294117647" b = "0.898039215686" a = "1.0" />
<color r = "0.63137254902" g = "0.878431372549" b = "0.505882352941" a = "1.0" />
<color r = "0.0" g = "0.647058823529" b = "0.0509803921569" a = "1.0" />
<color r = "0.564705882353" g = "0.878431372549" b = "0.819607843137" a = "1.0" />
<color r = "0.501960784314" g = "1.0" b = "0.525490196078" a = "1.0" />
<color r = "0.262745098039" g = "0.529411764706" b = "0.278431372549" a = "1.0" />
<color r = "0.749019607843" g = "0.866666666667" b = "0.850980392157" a = "1.0" />
<color r = "0.423529411765" g = "0.866666666667" b = "0.694117647059" a = "1.0" />
<color r = "0.188235294118" g = "0.466666666667" b = "0.0588235294118" a = "1.0" />
<color r = "0.345098039216" g = "0.8" b = "0.439215686275" a = "1.0" />
<color r = "0.623529411765" g = "0.78431372549" b = "0.8" a = "1.0" />
<color r = "0.8" g = "0.490196078431" b = "0.043137254902" a = "1.0" />
<color r = "0.8" g = "0.113725490196" b = "0.0901960784314" a = "1.0" />
<color r = "0.270588235294" g = "0.529411764706" b = "0.8" a = "1.0" />
<color r = "0.0941176470588" g = "0.18431372549" b = "0.749019607843" a = "1.0" />
<color r = "0.835294117647" g = "0.282352941176" b = "0.290196078431" a = "1.0" />
<color r = "0.749019607843" g = "0.172549019608" b = "0.18431372549" a = "1.0" />
<color r = "0.992156862745" g = "0.188235294118" b = "0.709803921569" a = "1.0" />
<color r = "0.96862745098" g = "0.0117647058824" b = "0.63137254902" a = "1.0" />
<color r = "0.839215686275" g = "0.36862745098" b = "0.96862745098" a = "1.0" />
<color r = "0.839215686275" g = "0.61568627451" b = "0.780392156863" a = "1.0" />
<color r = "0.839215686275" g = "1.0" b = "1.0" a = "1.0" />
<color r = "0.839215686275" g = "0.121568627451" b = "0.486274509804" a = "1.0" />
<color r = "0.552941176471" g = "0.482352941176" b = "0.839215686275" a = "1.0" />
<color r = "0.0274509803922" g = "0.933333333333" b = "1.0" a = "1.0" />
<color r = "0.517647058824" g = "0.266666666667" b = "0.8" a = "1.0" />
<color r = "0.329411764706" g = "0.109803921569" b = "0.749019607843" a = "1.0" />
<color r = "1.0" g = "0.105882352941" b = "0.898039215686" a = "1.0" />
<color r = "0.854901960784" g = "0.913725490196" b = "1.0" a = "1.0" />
<color r = "0.266666666667" g = "0.450980392157" b = "1.0" a = "1.0" />
<color r = "0.690196078431" g = "0.478431372549" b = "1.0" a = "1.0" />
<color r = "1.0" g = "0.827450980392" b = "0.796078431373" a = "1.0" />
<color r = "0.847058823529" g = "1.0" b = "0.792156862745" a = "1.0" />
<color r = "0.698039215686" g = "0.819607843137" b = "0.149019607843" a = "1.0" />
<color r = "0.2" g = "0.917647058824" b = "0.545098039216" a = "1.0" />
<color r = "0.105882352941" g = "0.729411764706" b = "0.0078431372549" a = "1.0" />
<color r = "0.211764705882" g = "0.537254901961" b = "0.729411764706" a = "1.0" />
<color r = "0.929411764706" g = "0.752941176471" b = "0.737254901961" a = "1.0" />
<color r = "0.929411764706" g = "0.254901960784" b = "0.196078431373" a = "1.0" />
<color r = "0.749019607843" g = "0.866666666667" b = "0.850980392157" a = "1.0" />
<color r = "0.866666666667" g = "0.850980392157" b = "0.850980392157" a = "1.0" />
<color r = "0.549019607843" g = "0.541176470588" b = "0.541176470588" a = "1.0" />
<color r = "0.698039215686" g = "0.749019607843" b = "0.788235294118" a = "1.0" />
<color r = "0.760784313725" g = "0.360784313725" b = "0.36862745098" a = "1.0" />
<color r = "0.929411764706" g = "0.752941176471" b = "0.36862745098" a = "1.0" />
<color r = "0.929411764706" g = "0.427450980392" b = "0.729411764706" a = "1.0" />
<color r = "0.874509803922" g = "0.325490196078" b = "0.674509803922" a = "1.0" />
<color r = "0.760784313725" g = "0.141176470588" b = "0.533333333333" a = "1.0" />
<color r = "0.698039215686" g = "0.419607843137" b = "0.929411764706" a = "1.0" />
<color r = "0.698039215686" g = "0.749019607843" b = "0.788235294118" a = "1.0" />
<color r = "0.992156862745" g = "0.286274509804" b = "0.462745098039" a = "1.0" />
<color r = "0.96862745098" g = "0.0117647058824" b = "0.250980392157" a = "1.0" />
<color r = "0.980392156863" g = "0.882352941176" b = "0.243137254902" a = "1.0" />
<color r = "0.0117647058824" g = "0.305882352941" b = "0.898039215686" a = "1.0" />
<color r = "0.392156862745" g = "0.396078431373" b = "0.898039215686" a = "1.0" />
<color r = "0.898039215686" g = "0.00392156862745" b = "0.298039215686" a = "1.0" />
<color r = "0.737254901961" g = "0.38431372549" b = "0.349019607843" a = "1.0" />
<color r = "0.898039215686" g = "0.0" b = "0.38431372549" a = "1.0" />
<color r = "0.878431372549" g = "0.0235294117647" b = "0.898039215686" a = "1.0" />
<color r = "0.898039215686" g = "0.560784313725" b = "0.674509803922" a = "1.0" />
<color r = "0.898039215686" g = "0.0666666666667" b = "0.0078431372549" a = "1.0" />
<color r = "0.501960784314" g = "0.611764705882" b = "0.898039215686" a = "1.0" />
<color r = "0.0" g = "0.164705882353" b = "0.898039215686" a = "1.0" />
<color r = "0.898039215686" g = "0.305882352941" b = "0.0" a = "1.0" />
<color r = "0.898039215686" g = "0.576470588235" b = "0.854901960784" a = "1.0" />
<color r = "0.133333333333" g = "0.603921568627" b = "0.988235294118" a = "1.0" />
<color r = "0.0156862745098" g = "0.494117647059" b = "0.898039215686" a = "1.0" />
<color r = "0.6" g = "0.811764705882" b = "0.898039215686" a = "1.0" />
<color r = "0.847058823529" g = "0.419607843137" b = "0.898039215686" a = "1.0" />
<color r = "0.478431372549" g = "0.0" b = "0.729411764706" a = "1.0" />
<color r = "0.61568627451" g = "0.470588235294" b = "0.788235294118" a = "1.0" />
<color r = "0.313725490196" g = "0.560784313725" b = "0.729411764706" a = "1.0" />
<color r = "0.776470588235" g = "0.898039215686" b = "0.898039215686" a = "1.0" />
<color r = "0.356862745098" g = "0.411764705882" b = "0.898039215686" a = "1.0" />
<color r = "0.764705882353" g = "0.737254901961" b = "0.917647058824" a = "1.0" />
<color r = "0.858823529412" g = "0.866666666667" b = "0.937254901961" a = "1.0" />
<color r = "0.729411764706" g = "0.372549019608" b = "0.647058823529" a = "1.0" />
<color r = "0.0" g = "0.0" b = "0.0" a = "1.0" />
<color r = "0.27843137254902" g = "0.270588235294118" b = "0.270588235294118" a = "1.0" />
<color r = "0.866666666666667" g = "0.850980392156863" b = "0.850980392156863" a = "1.0" />
<color r = "0.549019607843137" g = "0.541176470588235" b = "0.541176470588235" a = "1.0" />
<color r = "0.376470588235294" g = "0.231372549019608" b = "0.0666666666666667" a = "1.0" />
<color r = "0.874509803921569" g = "0.776470588235294" b = "0.615686274509804" a = "1.0" />
<color r = "0.776470588235294" g = "0.650980392156863" b = "0.450980392156863" a = "1.0" />
<color r = "0.0392156862745098" g = "0.862745098039216" b = "0.87843137254902" a = "1.0" />
<color r = "0.317647058823529" g = "0.215686274509804" b = "0.87843137254902" a = "1.0" />
<color r = "0.87843137254902" g = "0.788235294117647" b = "0.00392156862745098" a = "1.0" />
<color r = "0.87843137254902" g = "0.0980392156862745" b = "0.113725490196078" a = "1.0" />
<color r = "0.117647058823529" g = "0.819607843137255" b = "0.431372549019608" a = "1.0" />
<color r = "0.0627450980392157" g = "1" b = "0.513725490196078" a = "1.0" />
<color r = "0.0431372549019608" g = "0.698039215686274" b = "0.356862745098039" a = "1.0" />
<color r = "0.0392156862745098" g = "0.862745098039216" b = "0.87843137254902" a = "1.0" />
<color r = "1" g = "0.431372549019608" b = "0.23921568627451" a = "1.0" />
<color r = "1" g = "0.749019607843137" b = "0.411764705882353" a = "1.0" />
<color r = "0.376470588235294" g = "0.643137254901961" b = "0.87843137254902" a = "1.0" />
<color r = "0.0588235294117647" g = "0.364705882352941" b = "0.87843137254902" a = "1.0" />
<color r = "0.956862745098039" g = "0.858823529411765" b = "0.0980392156862745" a = "1.0" />
<color r = "0.956862745098039" g = "0.380392156862745" b = "0.0862745098039216" a = "1.0" />
<color r = "0.898039215686275" g = "0.0235294117647059" b = "0.898039215686275" a = "1.0" />
<color r = "0.631372549019608" g = "0.87843137254902" b = "0.505882352941176" a = "1.0" />
<color r = "0" g = "0.647058823529412" b = "0.0509803921568627" a = "1.0" />
<color r = "0.564705882352941" g = "0.87843137254902" b = "0.819607843137255" a = "1.0" />
<color r = "0.501960784313725" g = "1" b = "0.525490196078431" a = "1.0" />
<color r = "0.262745098039216" g = "0.529411764705882" b = "0.27843137254902" a = "1.0" />
<color r = "0.749019607843137" g = "0.866666666666667" b = "0.850980392156863" a = "1.0" />
<color r = "0.423529411764706" g = "0.866666666666667" b = "0.694117647058824" a = "1.0" />
<color r = "0.188235294117647" g = "0.466666666666667" b = "0.0588235294117647" a = "1.0" />
<color r = "0.345098039215686" g = "0.8" b = "0.43921568627451" a = "1.0" />
<color r = "0.623529411764706" g = "0.784313725490196" b = "0.8" a = "1.0" />
<color r = "0.8" g = "0.490196078431373" b = "0.0431372549019608" a = "1.0" />
<color r = "0.8" g = "0.113725490196078" b = "0.0901960784313725" a = "1.0" />
<color r = "0.270588235294118" g = "0.529411764705882" b = "0.8" a = "1.0" />
<color r = "0.0941176470588235" g = "0.184313725490196" b = "0.749019607843137" a = "1.0" />
<color r = "0.835294117647059" g = "0.282352941176471" b = "0.290196078431373" a = "1.0" />
<color r = "0.749019607843137" g = "0.172549019607843" b = "0.184313725490196" a = "1.0" />
<color r = "0.992156862745098" g = "0.188235294117647" b = "0.709803921568627" a = "1.0" />
<color r = "0.968627450980392" g = "0.0117647058823529" b = "0.631372549019608" a = "1.0" />
<color r = "0.83921568627451" g = "0.368627450980392" b = "0.329411764705882" a = "1.0" />
<color r = "0.83921568627451" g = "0.615686274509804" b = "0.780392156862745" a = "1.0" />
<color r = "0.83921568627451" g = "1" b = "1" a = "1.0" />
<color r = "0.83921568627451" g = "0.12156862745098" b = "0.486274509803922" a = "1.0" />
<color r = "0.552941176470588" g = "0.482352941176471" b = "0.83921568627451" a = "1.0" />
<color r = "0.0274509803921569" g = "0.933333333333333" b = "1" a = "1.0" />
<color r = "0.517647058823529" g = "0.266666666666667" b = "0.8" a = "1.0" />
<color r = "0.329411764705882" g = "0.109803921568627" b = "0.749019607843137" a = "1.0" />
<color r = "1" g = "0.105882352941176" b = "0.898039215686275" a = "1.0" />
<color r = "0.854901960784314" g = "0.913725490196078" b = "1" a = "1.0" />
<color r = "0.266666666666667" g = "0.450980392156863" b = "1" a = "1.0" />
<color r = "0.690196078431373" g = "0.47843137254902" b = "1" a = "1.0" />
<color r = "1" g = "0.827450980392157" b = "0.796078431372549" a = "1.0" />
<color r = "0.847058823529412" g = "1" b = "0.792156862745098" a = "1.0" />
<color r = "0.698039215686274" g = "0.819607843137255" b = "0.149019607843137" a = "1.0" />
<color r = "0.2" g = "0.917647058823529" b = "0.545098039215686" a = "1.0" />
<color r = "0.105882352941176" g = "0.729411764705882" b = "0.00784313725490196" a = "1.0" />
<color r = "0.211764705882353" g = "0.537254901960784" b = "0.729411764705882" a = "1.0" />
<color r = "0.929411764705882" g = "0.752941176470588" b = "0.737254901960784" a = "1.0" />
<color r = "0.929411764705882" g = "0.254901960784314" b = "0.196078431372549" a = "1.0" />
<color r = "0.749019607843137" g = "0.866666666666667" b = "0.850980392156863" a = "1.0" />
<color r = "0.866666666666667" g = "0.850980392156863" b = "0.850980392156863" a = "1.0" />
<color r = "0.549019607843137" g = "0.541176470588235" b = "0.541176470588235" a = "1.0" />
<color r = "0.698039215686274" g = "0.749019607843137" b = "0.788235294117647" a = "1.0" />
<color r = "0.76078431372549" g = "0.36078431372549" b = "0.368627450980392" a = "1.0" />
<color r = "0.929411764705882" g = "0.752941176470588" b = "0.368627450980392" a = "1.0" />
<color r = "0.929411764705882" g = "0.427450980392157" b = "0.729411764705882" a = "1.0" />
<color r = "0.874509803921569" g = "0.325490196078431" b = "0.674509803921569" a = "1.0" />
<color r = "0.76078431372549" g = "0.141176470588235" b = "0.533333333333333" a = "1.0" />
<color r = "0.698039215686274" g = "0.419607843137255" b = "0.929411764705882" a = "1.0" />
<color r = "0.698039215686274" g = "0.749019607843137" b = "0.788235294117647" a = "1.0" />
<color r = "0.992156862745098" g = "0.286274509803922" b = "0.462745098039216" a = "1.0" />
<color r = "0.968627450980392" g = "0.0117647058823529" b = "0.250980392156863" a = "1.0" />
<color r = "0.858823529411765" g = "0.498039215686275" b = "0.968627450980392" a = "1.0" />
<color r = "0.709803921568627" g = "0.141176470588235" b = "0.968627450980392" a = "1.0" />
<color r = "0.980392156862745" g = "0.882352941176471" b = "0.243137254901961" a = "1.0" />
<color r = "0.0117647058823529" g = "0.305882352941176" b = "0.898039215686275" a = "1.0" />
<color r = "0.392156862745098" g = "0.396078431372549" b = "0.898039215686275" a = "1.0" />
<color r = "0.898039215686275" g = "0.00392156862745098" b = "0.298039215686275" a = "1.0" />
<color r = "0.737254901960784" g = "0.384313725490196" b = "0.349019607843137" a = "1.0" />
<color r = "0.898039215686275" g = "0" b = "0.384313725490196" a = "1.0" />
<color r = "0.87843137254902" g = "0.0235294117647059" b = "0.898039215686275" a = "1.0" />
<color r = "0.898039215686275" g = "0.56078431372549" b = "0.674509803921569" a = "1.0" />
<color r = "0.898039215686275" g = "0.0666666666666667" b = "0.00784313725490196" a = "1.0" />
<color r = "0.501960784313725" g = "0.611764705882353" b = "0.898039215686275" a = "1.0" />
<color r = "0" g = "0.164705882352941" b = "0.898039215686275" a = "1.0" />
<color r = "0.898039215686275" g = "0.305882352941176" b = "0" a = "1.0" />
<color r = "0.898039215686275" g = "0.576470588235294" b = "0.854901960784314" a = "1.0" />
<color r = "0.133333333333333" g = "0.603921568627451" b = "0.988235294117647" a = "1.0" />
<color r = "0.0156862745098039" g = "0.494117647058824" b = "0.898039215686275" a = "1.0" />
<color r = "0.6" g = "0.811764705882353" b = "0.898039215686275" a = "1.0" />
<color r = "0.847058823529412" g = "0.419607843137255" b = "0.898039215686275" a = "1.0" />
<color r = "0.47843137254902" g = "0" b = "0.729411764705882" a = "1.0" />
<color r = "0.615686274509804" g = "0.470588235294118" b = "0.788235294117647" a = "1.0" />
<color r = "0.313725490196078" g = "0.56078431372549" b = "0.729411764705882" a = "1.0" />
<color r = "0.776470588235294" g = "0.898039215686275" b = "0.898039215686275" a = "1.0" />
<color r = "0.356862745098039" g = "0.411764705882353" b = "0.898039215686275" a = "1.0" />
<color r = "0.764705882352941" g = "0.737254901960784" b = "0.917647058823529" a = "1.0" />
<color r = "0.858823529411765" g = "0.866666666666667" b = "0.937254901960784" a = "1.0" />
<color r = "0.729411764705882" g = "0.372549019607843" b = "0.647058823529412" a = "1.0" />
<color r = "0" g = "0" b = "0" a = "1.0" />
</colorMap>

View file

@ -44,6 +44,9 @@ VTECTable = {
'AS.Y' : {'phen': 'AS',
'sig': 'Y',
'hdln': 'AIR STAGNATION ADVISORY'},
'BH.S' : {'phen': 'BH',
'sig': 'S',
'hdln': 'BEACH HAZARDS STATEMENT'},
'BW.Y' : {'phen': 'BW',
'sig': 'Y',
'hdln': 'BRISK WIND ADVISORY'},
@ -148,7 +151,7 @@ VTECTable = {
'hdln': 'HURRICANE WATCH'},
'HU.S' : {'phen': 'HU',
'sig': 'S',
'hdln': ''}, #No headline for this VTEC
'hdln': ''}, #No headline for this VTEC
'HU.W' : {'phen': 'HU',
'sig': 'W',
'hdln': 'HURRICANE WARNING'},
@ -239,6 +242,12 @@ VTECTable = {
'SR.W' : {'phen': 'SR',
'sig': 'W',
'hdln': 'STORM WARNING'},
'SS.A' : {'phen': 'SS',
'sig': 'A',
'hdln': 'STORM SURGE WATCH'},
'SS.W' : {'phen': 'SS',
'sig': 'W',
'hdln': 'STORM SURGE WARNING'},
'SU.W' : {'phen': 'SU',
'sig': 'W',
'hdln': 'HIGH SURF WARNING'},
@ -363,6 +372,7 @@ upgradeHazardsDict = {
'SE.W': ['SC.Y', 'RB.Y', 'GL.A', 'SR.A', 'HF.A', 'SE.A'],
'UP.W': ['UP.Y', 'UP.A'],
'SU.W': ['SU.Y'],
'SS.W': ['SS.A'],
'HU.W': ['HU.A', 'TR.W', 'TR.A'],
'HU.A': ['TR.A'],
'TR.W': ['TR.A', 'HU.A', 'TY.A'],