Merge branch 'tcv_14.3.2' of ssh://collaborate3.nws.noaa.gov:29418/AWIPS2_Dev_Baseline into master_14.3.2
Former-commit-id:6161c5ea4f
[formerlya6f8a3b109
] [formerly01c3167dc9
[formerly bc44629025f7070a97fcff4a00939e509e6987b1]] Former-commit-id:01c3167dc9
Former-commit-id:4639e2c25d
This commit is contained in:
commit
b11b0868ef
19 changed files with 7780 additions and 90 deletions
|
@ -0,0 +1,287 @@
|
|||
|
||||
# ----------------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without technical
|
||||
# support, and with no warranty, express or implied, as to its usefulness for
|
||||
# any purpose.
|
||||
#
|
||||
# CreateTCVAreaDictionary
|
||||
#
|
||||
# Author:
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# The MenuItems list defines the GFE menu item(s) under which the
|
||||
# Procedure is to appear.
|
||||
# Possible items are: Populate, Edit, Consistency, Verify, Hazards
|
||||
MenuItems = ["Populate"]
|
||||
|
||||
try: # See if this is the AWIPS I environment
|
||||
import AFPS
|
||||
AWIPS_ENVIRON = "AWIPS1"
|
||||
except: # Must be the AWIPS II environment
|
||||
AWIPS_ENVIRON = "AWIPS2"
|
||||
|
||||
|
||||
import SmartScript
|
||||
from LockingFile import File
|
||||
from com.raytheon.uf.common.localization import PathManagerFactory
|
||||
from com.raytheon.uf.common.localization import LocalizationContext_LocalizationType as LocalizationType, LocalizationContext_LocalizationLevel as LocalizationLevel
|
||||
## For documentation on the available commands,
|
||||
## see the SmartScript Utility, which can be viewed from
|
||||
## the Edit Actions Dialog Utilities window
|
||||
|
||||
class Procedure (SmartScript.SmartScript):
|
||||
def __init__(self, dbss):
|
||||
SmartScript.SmartScript.__init__(self, dbss)
|
||||
|
||||
def execute(self, editArea, timeRange, varDict):
|
||||
self._siteID = self.getSiteID()
|
||||
|
||||
if AWIPS_ENVIRON == "AWIPS1":
|
||||
import siteConfig
|
||||
self._gfeHome = siteConfig.GFESUITE_HOME
|
||||
self._gfeServer = siteConfig.GFESUITE_SERVER
|
||||
self._gfePort = siteConfig.GFESUITE_PORT
|
||||
|
||||
self._tcvAreaDictionaryContents = \
|
||||
"""
|
||||
# ----------------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without technical
|
||||
# support, and with no warranty, express or implied, as to its usefulness for
|
||||
# any purpose.
|
||||
#
|
||||
# TCV_AreaDictionary
|
||||
# TCV_AreaDictionary file
|
||||
#
|
||||
# Author: GFE Installation Script
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# Here is an example TCVAreaDictionary for just a single zone and with comments
|
||||
# to talk about the structure of the dictionary.
|
||||
#
|
||||
# TCV_AreaDictionary = {
|
||||
# # Zone
|
||||
# 'FLZ173': {
|
||||
# # A list of location names.
|
||||
# 'locationsAffected': [
|
||||
# "Miami Beach",
|
||||
# "Downtown Miami",
|
||||
# ],
|
||||
#
|
||||
# # Threat statements can be overriden here; anything not overriden here
|
||||
# # will use the generic threat statements
|
||||
# 'threatStatements': {
|
||||
# # Section name: "Wind", "Storm Surge", "Flooding Rain" or "Tornado"
|
||||
# "Wind": {
|
||||
# # Threat level: "None", "Low", "Mod", "High" or "Extreme"
|
||||
# "Extreme": {
|
||||
# # tr: "nothing to see here", "recovery", "hunker down",
|
||||
# # "complete preparations" or "check plans"
|
||||
# "hunker down": {
|
||||
# # "Make plans: " will be prepended to this
|
||||
# "planning": "For chance that wind could locally reach major " +\\
|
||||
# "hurricane force; enact your emergency action plan " +\\
|
||||
# "accordingly",
|
||||
# # "Take action: " will be prepended to this
|
||||
# "action": "For extremely dangerous and life threatening wind " +\\
|
||||
# "to possibly occur; failure to act may result in " +\\
|
||||
# "injury or loss of life",
|
||||
# # "Prepare: " will be prepended to this
|
||||
# "preparation": "Aggressively for chance of devastating to " +\\
|
||||
# "catastrophic wind impacts based on threat " +\\
|
||||
# "assessment that considers plausible worst " +\\
|
||||
# "case scenario for safety",
|
||||
# },
|
||||
# },
|
||||
# },
|
||||
# },
|
||||
#
|
||||
# # Potential impacts statements can be overriden here; anything not
|
||||
# # overriden here will use the generic potential impacts statements
|
||||
# 'potentialImpactsStatements': {
|
||||
# # Section name: "Wind", "Storm Surge", "Flooding Rain" or "Tornado"
|
||||
# "Wind": {
|
||||
# # Threat level: "None", "Low", "Mod", "High" or "Extreme"
|
||||
# "Extreme": [
|
||||
# # Each string will be on its own line
|
||||
# "Widespread power outages with some areas experiencing long-term outages",
|
||||
# "Many bridges and access routes connecting barrier islands impassable",
|
||||
# "Structural category to sturdy buildings with some having complete wall and roof failures",
|
||||
# "Complete destruction of mobile homes",
|
||||
# "Numerous roads impassable from large debris",
|
||||
#
|
||||
# ],
|
||||
# },
|
||||
# },
|
||||
#
|
||||
# # Additional information that will be displayed at the end of the segment
|
||||
# # The structure is a list containing strings and/or lists. Strings in the
|
||||
# # same list will be idented the same amount. Introducing a list, idents the
|
||||
# # text until it ends. For example:
|
||||
# #
|
||||
# # 'infoSection': [
|
||||
# # "This will be at tab level 0",
|
||||
# # [
|
||||
# # "A new list was introduced so this is at tab level 1",
|
||||
# # [
|
||||
# # "Yet another list so this is tab level 2",
|
||||
# # "Still at tab level 2 here",
|
||||
# # ],
|
||||
# # "We are back at tab level 1 because we ended the list",
|
||||
# # ],
|
||||
# # "We ended the other list and are back at tab level 0 now",
|
||||
# # ]
|
||||
# 'infoSection': [
|
||||
# "LOCAL EVACUATION AND SHELTERING: MIAMI-DADE COUNTY EMERGENCY MANAGEMENT",
|
||||
# [
|
||||
# "HTTP://WWW.MIAMIDADE.GOV/EMERGENCY/",
|
||||
# ],
|
||||
# "FAMILY EMERGENCY PLANS: FEDERAL EMERGENCY MANAGEMENT AGENCY",
|
||||
# [
|
||||
# "HTTP://READY.GOV/",
|
||||
# ],
|
||||
# "LOCAL WEATHER CONDITIONS AND FORECASTS: NWS MIAMI FLORIDA",
|
||||
# [
|
||||
# "HTTP://WWW.SRH.NOAA.GOV/MFL/",
|
||||
# ],
|
||||
# ],
|
||||
# },
|
||||
# }
|
||||
|
||||
TCV_AreaDictionary = {
|
||||
"""
|
||||
self._zoneSkeletonContents = {
|
||||
'locationsAffected' : [],
|
||||
'threatStatements' : {},
|
||||
'potentialImpactsStatements' : {},
|
||||
'infoSection' : [],
|
||||
}
|
||||
|
||||
TCVAreaDictionary = {}
|
||||
try:
|
||||
if AWIPS_ENVIRON == "AWIPS1":
|
||||
import TCVAreaDictionary
|
||||
TCVAreaDictionary = TCVAreaDictionary.TCV_AreaDictionary
|
||||
else:
|
||||
filename = "gfe/userPython/textUtilities/regular/TCVAreaDictionary.py"
|
||||
fileContents = self._getFileContents(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.SITE,
|
||||
self._siteID,
|
||||
filename)
|
||||
|
||||
exec(fileContents)
|
||||
|
||||
TCVAreaDictionary = TCV_AreaDictionary
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for zone in self._getZones():
|
||||
self._tcvAreaDictionaryContents += " '" + zone + "': {\n"
|
||||
|
||||
# Don't clobber existing dictionary entries
|
||||
if zone in TCVAreaDictionary:
|
||||
# Add new entries
|
||||
for key in self._zoneSkeletonContents:
|
||||
if key not in TCVAreaDictionary[zone]:
|
||||
TCVAreaDictionary[zone][key] = self._zoneSkeletonContents[key]
|
||||
|
||||
# Remove entries that are no longer needed
|
||||
existingKeys = TCVAreaDictionary[zone].keys()
|
||||
for key in existingKeys:
|
||||
if key not in self._zoneSkeletonContents:
|
||||
TCVAreaDictionary[zone].pop(key)
|
||||
|
||||
self._tcvAreaDictionaryContents += self._formatDictionary(TCVAreaDictionary[zone],
|
||||
tabLevel = 2)
|
||||
else:
|
||||
self._tcvAreaDictionaryContents += self._formatDictionary(self._zoneSkeletonContents,
|
||||
tabLevel = 2)
|
||||
|
||||
self._tcvAreaDictionaryContents += " },\n\n"
|
||||
|
||||
self._tcvAreaDictionaryContents += "}\n"
|
||||
|
||||
with open("/tmp/TCVAreaDictionary.TextUtility", "w") as file:
|
||||
file.write(self._tcvAreaDictionaryContents)
|
||||
|
||||
self._installDictionary()
|
||||
|
||||
def _installDictionary(self):
|
||||
from subprocess import call
|
||||
if AWIPS_ENVIRON == "AWIPS1":
|
||||
call([self._gfeHome + "/bin/ifpServerText",
|
||||
"-h", self._gfeServer,
|
||||
"-p", self._gfePort,
|
||||
"-s",
|
||||
"-u", "SITE",
|
||||
"-n", "TCVAreaDictionary",
|
||||
"-f", "/tmp/TCVAreaDictionary.TextUtility",
|
||||
"-c", "TextUtility"])
|
||||
else:
|
||||
call(["/awips2/GFESuite/bin/ifpServerText",
|
||||
"-o", self._siteID,
|
||||
"-s",
|
||||
"-u", "SITE",
|
||||
"-n", "TCVAreaDictionary",
|
||||
"-f", "/tmp/TCVAreaDictionary.TextUtility",
|
||||
"-c", "TextUtility"])
|
||||
|
||||
def _getZones(self):
|
||||
editAreasFilename = "gfe/combinations/EditAreas_PublicZones_" + \
|
||||
self._siteID + ".py"
|
||||
zonesKey = "Zones_" + self._siteID
|
||||
|
||||
editAreasFileContents = self._getFileContents(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.CONFIGURED,
|
||||
self._siteID,
|
||||
editAreasFilename)
|
||||
exec(editAreasFileContents)
|
||||
|
||||
# EASourceMap comes from the EditAreas file
|
||||
return EASourceMap[zonesKey]
|
||||
|
||||
def _getFileContents(self, loctype, loclevel, locname, filename):
|
||||
pathManager = PathManagerFactory.getPathManager()
|
||||
context = pathManager.getContext(loctype, loclevel)
|
||||
context.setContextName(locname)
|
||||
localizationFile = pathManager.getLocalizationFile(context, filename)
|
||||
with File(localizationFile.getFile(), filename, 'r') as pythonFile:
|
||||
fileContents = pythonFile.read()
|
||||
|
||||
return fileContents
|
||||
|
||||
def _formatDictionary(self, dictionary, tabLevel, output=""):
|
||||
TAB = " " * 4
|
||||
|
||||
for key in dictionary:
|
||||
output += TAB*tabLevel + repr(key) + ": "
|
||||
|
||||
value = dictionary[key]
|
||||
if type(value) is dict:
|
||||
output += "{\n"
|
||||
output = self._formatDictionary(value, tabLevel+1, output)
|
||||
output += TAB*tabLevel + "},\n"
|
||||
elif type(value) is list:
|
||||
output += "[\n"
|
||||
output = self._formatList(value, tabLevel+1, output)
|
||||
output += TAB*tabLevel + "],\n"
|
||||
else:
|
||||
output += repr(value) + ",\n"
|
||||
|
||||
return output
|
||||
|
||||
def _formatList(self, theList, tabLevel, output=""):
|
||||
TAB = " " * 4
|
||||
|
||||
for value in theList:
|
||||
if type(value) is dict:
|
||||
output += TAB*tabLevel + "{\n"
|
||||
output = self._formatDictionary(value, tabLevel+1, output)
|
||||
output += TAB*tabLevel + "},\n"
|
||||
elif type(value) is list:
|
||||
output += TAB*tabLevel + "[\n"
|
||||
output = self._formatList(value, tabLevel+1, output)
|
||||
output += TAB*tabLevel + "],\n"
|
||||
else:
|
||||
output += TAB*tabLevel + repr(value) + ",\n"
|
||||
|
||||
return output
|
|
@ -94,8 +94,8 @@ class HazardsTable(VTECTableUtil.VTECTableUtil):
|
|||
self.__tpcKeys = self.__processJavaCollection(GFEVtecUtil.TROPICAL_PHENSIGS, self.__convertPhensig)
|
||||
self.__tpcBaseETN = '1001'
|
||||
self.__ncKeys = self.__processJavaCollection(GFEVtecUtil.NATIONAL_PHENSIGS, self.__convertPhensig)
|
||||
self.__ufnKeys = [('HU', 'A'), ('HU', 'S'), ('HU', 'W'), ('TR', 'A'), ('TR', 'W'),
|
||||
('TY', 'A'), ('TY', 'W')]
|
||||
self.__ufnKeys = [('HU', 'A'), ('HU', 'W'), ('TR', 'A'), ('TR', 'W'),
|
||||
('TY', 'A'), ('TY', 'W'), ('SS', 'A'), ('SS', 'W')]
|
||||
|
||||
self.__sitesIgnoreNatlEtn = self.__processJavaCollection(GFEVtecUtil.IGNORE_NATIONAL_ETN, str)
|
||||
|
||||
|
|
|
@ -1632,6 +1632,133 @@ class SampleAnalysis(CommonUtils.CommonUtils):
|
|||
#print "discreteTimeRangesByKey keyList", keyList
|
||||
return keyList
|
||||
|
||||
def mostSignificantDiscreteValue(self, parmHisto, timeRange, componentName, withAux=0):
|
||||
"""Using mostSignificantDiscrete_keyOrder_dict and mostSignificantDiscrete_coveragePercentage_dict,
|
||||
report the most significant discrete value for the given timeRange. If there is a tie,
|
||||
report the most significant value.
|
||||
"""
|
||||
totalHours = 0
|
||||
totalPoints = parmHisto.numberOfGridPoints()
|
||||
compositeNameUI = parmHisto.parmID().compositeNameUI()
|
||||
|
||||
# Loop over all samples, which are for all grids and
|
||||
# all keys on each of those grids.
|
||||
# We will have just one entry per
|
||||
# discrete key (with or without Aux value).
|
||||
|
||||
#print "\n\nIn mostSignificantDiscreteValue: DataType, TimeRange", "DISCRETE", timeRange
|
||||
#print "STEP 1 -- Aggregate per grid"
|
||||
|
||||
subkeyTypeDict = {}
|
||||
# STEP 1:
|
||||
# For each discrete key found in the grids,
|
||||
# gather its 'hours' of coverage and 'count' of points covered.
|
||||
for histSample in parmHisto.histoSamples():
|
||||
validTime = TimeRange.TimeRange(histSample.validTime())
|
||||
if self.temporalCoverage_flag(
|
||||
parmHisto, timeRange, componentName, histSample) == 0:
|
||||
continue
|
||||
# Get the number of hours inside the timeRange that this
|
||||
# sample comes from (i.e., we can get a sample that lasts
|
||||
# for 3 weeks - but only 1 hour of it is inside the
|
||||
# timeRange - and we only want to rank it by the 1 hour
|
||||
# inside the range)
|
||||
#
|
||||
hours = validTime.intersection(timeRange).duration()/3600
|
||||
if hours < 1:
|
||||
continue
|
||||
|
||||
totalHours += hours
|
||||
|
||||
# Gather the subkey Types for this grid in subkeyTypeDict
|
||||
# Each entry ends up being a list of tuples: (discreteKey, hours, count)
|
||||
self.gatherSubkeyTypes(
|
||||
parmHisto, timeRange, componentName, histSample, 'DISCRETE', hours,
|
||||
subkeyTypeDict, withAux)
|
||||
|
||||
# STEP 2: For each subkeyType,
|
||||
# --determine an aggregate subkey and rank i.e.
|
||||
# aggregate areal coverage over time percentage
|
||||
# --compare the rank to coverage threshold.
|
||||
#print "subkeyTypeDict", subkeyTypeDict
|
||||
keyRankDict = {} # Holds: subkeyType: rank
|
||||
for subkeyType in subkeyTypeDict.keys():
|
||||
#print "\nsubkeyType", subkeyType
|
||||
subkeyList = subkeyTypeDict[subkeyType]
|
||||
subkeyTypeRank = 0
|
||||
# Determine a subkeyType rank
|
||||
subkeyTotalPoints = 0
|
||||
for subkey, hours, count in subkeyList:
|
||||
#print " subkey, hours, count", subkey, hours, count
|
||||
subkeyTotalPoints += count
|
||||
subkeyTypeRank += hours * count
|
||||
#print "total points =", subkeyTotalPoints
|
||||
|
||||
#print "subkeyTypeRank =", subkeyTypeRank
|
||||
#print "totalHours =", totalHours
|
||||
#print "totalPoints =", totalPoints
|
||||
# Determine rank for the subkeyType
|
||||
rank = int(round(float(subkeyTypeRank)/(totalHours*totalPoints)*100.0))
|
||||
keyRankDict[subkeyType] = rank
|
||||
#print "rank =", rank
|
||||
|
||||
# Check to see if each subkeyType meets the required coverage percentage
|
||||
keyOrderDict = self.mostSignificantDiscrete_keyOrder_dict(parmHisto, timeRange, compositeNameUI)
|
||||
keyOrder = keyOrderDict[compositeNameUI]
|
||||
mostSignificantSubkey = None
|
||||
highestOrderIndex = None
|
||||
for subkeyType in keyRankDict.keys():
|
||||
rank = keyRankDict[subkeyType]
|
||||
thresholdDict = self.mostSignificantDiscrete_coveragePercentage_dict(
|
||||
parmHisto, timeRange, componentName, subkeyType)
|
||||
threshold = thresholdDict.get(compositeNameUI, 0)
|
||||
#print "threshold =", threshold
|
||||
flag = rank >= threshold
|
||||
if not flag:
|
||||
# Get another chance to pass
|
||||
flag = self.checkPercentages(
|
||||
parmHisto, timeRange, componentName, subkeyType, keyRankDict)
|
||||
if flag: # This type meets the threshold criteria
|
||||
if self.cleanOutEmptyValues(parmHisto, timeRange, componentName, "DISCRETE"):
|
||||
# Don't save empty values
|
||||
#print "Ignoring", subkeyType
|
||||
continue
|
||||
try:
|
||||
orderIndex = keyOrder.index(subkeyType)
|
||||
if highestOrderIndex is None or orderIndex > highestOrderIndex:
|
||||
highestOrderIndex = orderIndex
|
||||
mostSignificantSubkey = subkeyType
|
||||
#print "Found higher significance key =", subkeyType
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
#print "didn't make the cut", rank, subkeyType
|
||||
pass
|
||||
|
||||
#print "mostSignificantSubkey =", mostSignificantSubkey
|
||||
return mostSignificantSubkey
|
||||
|
||||
def mostSignificantDiscrete_coveragePercentage_dict(self, parmHisto, timeRange, componentName, keyStr):
|
||||
""" Return the required coverage percentage for the given key which will be
|
||||
compared to its "rank" i.e. the percentage of areal coverage over the time period.
|
||||
"""
|
||||
return {
|
||||
"WindThreat": 5,
|
||||
"FloodingRainThreat": 5,
|
||||
"StormSurgeThreat": 5,
|
||||
"TornadoThreat": 5,
|
||||
}
|
||||
|
||||
def mostSignificantDiscrete_keyOrder_dict(self, parmHisto, timeRange, componentName):
|
||||
""" Returns a list of keys from least to most significant for a discrete type (componentName). """
|
||||
threatKeyOrder = [None, "None", "Elevated", "Mod", "High", "Extreme"]
|
||||
return {
|
||||
"WindThreat": threatKeyOrder,
|
||||
"FloodingRainThreat": threatKeyOrder,
|
||||
"StormSurgeThreat": threatKeyOrder,
|
||||
"TornadoThreat": threatKeyOrder,
|
||||
}
|
||||
|
||||
|
||||
########################################
|
||||
## UTILITIES
|
||||
|
|
|
@ -39,6 +39,7 @@ VTECMessageTypeDict = {
|
|||
'CFW' : 'O',
|
||||
'HLS' : 'O',
|
||||
'MWW' : 'O',
|
||||
'TCV' : 'O',
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,651 @@
|
|||
|
||||
# ----------------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without technical
|
||||
# support, and with no warranty, express or implied, as to its usefulness for
|
||||
# any purpose.
|
||||
#
|
||||
# TCV_Dictionary
|
||||
# TCV_Dictionary file
|
||||
#
|
||||
# Author: GFE Installation Script
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
ThreatStatements = {
|
||||
"Wind": {
|
||||
"Extreme": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3, 4, or 5 intensity.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Life threatening wind possible. Efforts should now be underway to secure all properties.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3, 4, or 5 intensity.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic wind impacts. Life threatening wind possible. Efforts to secure properties should be completed as soon as practical.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, loss of life, or immense human suffering. Move to shelter before the wind becomes hazardous.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for major hurricane force wind greater than 110 MPH of equivalent Category 3, 4, or 5 intensity.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of devastating to catastrophic wind impacts. Life threatening wind possible. Efforts to secure properties should now be complete.",
|
||||
"action": "Failure to have adequately sheltered may result in serious injury, loss of life, or immense human suffering. Remain sheltered until the wind subsides. Be ready to shelter within shelter if extreme wind warnings are issued.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Stay out of restricted areas.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"High": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 or 2 intensity.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Life threatening wind possible. Efforts should now be underway to secure all properties.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 or 2 intensity.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive wind impacts. Life threatening wind possible. Efforts to secure properties should be completed as soon as practical.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for hurricane force wind of 74 to 110 MPH of equivalent Category 1 or 2 intensity.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of extensive wind impacts. Life threatening wind possible. Efforts to secure properties should now be complete.",
|
||||
"action": "Failure to have adequately sheltered may result in serious injury or loss of life.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Stay out of restricted areas.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Mod": {
|
||||
"check plans": {
|
||||
"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.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"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 to secure properties should be completed as soon as practical.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for strong tropical storm force wind of 58 to 73 MPH.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of significant wind impacts. Efforts to secure properties should now be complete.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Stay out of restricted areas.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Elevated": {
|
||||
"check plans": {
|
||||
"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.",
|
||||
"action": "Failure to adequately shelter may result in serious injury.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"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 to secure properties should be completed as soon as practical.",
|
||||
"action": "Failure to adequately shelter may result in serious injury.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for tropical storm force wind of 39 to 57 MPH.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of limited wind impacts. Efforts to secure properties should now be complete.",
|
||||
"action": "Failure to adequately shelter may result in serious injury.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Stay out of restricted areas.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"None": {
|
||||
"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.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical wind.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical wind event.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"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": "No immediate preparations needed to guard against tropical wind.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical wind event.",
|
||||
},
|
||||
"hunker down": {
|
||||
"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": "No immediate preparations needed to guard against tropical wind.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical wind event.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Conditions may still be breezy to windy.",
|
||||
"preparation": "Exercise due safety when moving about.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical wind event.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "Conditions may still be breeze to windy.",
|
||||
"preparation": "Exercise due safety when moving about.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical wind event.",
|
||||
},
|
||||
},
|
||||
},
|
||||
"Storm Surge": {
|
||||
"Extreme": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding greater than 9 feet above ground.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Efforts to evacuate should be underway.",
|
||||
"action": "Failure to heed evacuation orders may result in serious injury, significant loss of life, or immense human suffering. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding greater than 9 feet above ground.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Efforts to evacuate should be rushed to completion. Evacuations must be complete before driving conditions become unsafe.",
|
||||
"action": "Failure to heed evacuation orders may result in serious injury, significant loss of life, or immense human suffering. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for peak storm surge flooding greater than 9 feet above ground.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of devastating to catastrophic storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Evacuations should be complete with evacuees relocated to safe shelter.",
|
||||
"action": "Failure to have heeded evacuation orders may result in serious injury, significant loss of life, or immense human suffering.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Do not return to evacuated areas until flood waters recede and the all-clear is officially given.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"High": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 6 to 9 feet above ground.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive storm surge flooding impacts. Life threatening inundation possible from nearby sea large inland lake waters. Efforts to evacuate should be underway.",
|
||||
"action": "Failure to heed evacuation orders may result in serious injury, significant loss of life, or human suffering. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 6 to 9 feet above ground.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive storm surge flooding impacts. Life threatening inundation possible from nearby sea large inland lake waters. Efforts to evacuate should be rushed to completion. Evacuations must be complete before driving conditions become unsafe.",
|
||||
"action": "Failure to heed evacuation orders may result in serious injury, significant loss of life, or human suffering. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for peak storm surge flooding of 6 to 9 feet above ground.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of extensive storm surge flooding impacts. Life threatening inundation possible from nearby sea large inland lake waters. Evacuations should be complete with evacuees relocated to safe shelter.",
|
||||
"action": "Failure to have heeded evacuation orders may result in serious injury, significant loss of life, or human suffering.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Do not return to evacuated areas until flood waters recede and the all-clear is officially given.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Mod": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 3 to 6 feet above ground.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Efforts to evacuate should be underway.",
|
||||
"action": "Failure to heed evacuation orders or instructions from local officials may result in injury and loss of life. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may needlessly risk lives.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 3 to 6 feet above ground.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Efforts to evacuate should be rushed to completion. Evacuations must be complete before driving conditions become unsafe.",
|
||||
"action": "Failure to heed evacuation orders or instructions from local officials may result in injury and loss of life. Leave if evacuation orders are given for your area. Consider voluntary evacuation if recommended. Poor decisions may needlessly risk lives.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for peak storm surge flooding of 3 to 6 feet above ground.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of significant storm surge flooding impacts. Life threatening inundation possible from nearby sea or large inland lake waters. Evacuations should be complete with evacuees relocated to safe shelter.",
|
||||
"action": "Failure to have heeded evacuation orders or instructions from local officials may result in injury and loss of life.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Do not return to evacuated areas until flood waters recede and the all-clear is officially given.",
|
||||
"action": "Failure to exercise due safety may result in additional injuries or loss of life.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Elevated": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 1 to 3 feet above ground.",
|
||||
"preparation": "To be safe, prepare for the potential of limited storm surge flooding impacts. Efforts should be underway.",
|
||||
"action": "Follow the instructions of local officials. Consider voluntary evacuation if recommended. Leave if evacuation orders are issued.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for peak storm surge flooding of 1 to 3 feet above ground.",
|
||||
"preparation": "To be safe, prepare for the potential of limited storm surge flooding impacts. Efforts should be rushed to completion before conditions deteriorate.",
|
||||
"action": "Follow the instructions of local officials. Consider voluntary evacuation if recommended. Leave if evacuation orders are issued.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should have included a reasonable threat for peak storm surge flooding of 1 to 3 feet above ground.",
|
||||
"preparation": "To be safe, preparations should have been made for the potential of limited storm surge flooding impacts. Efforts should be complete with evacuees relocated to safe shelter.",
|
||||
"action": "Continue to follow the instructions of local officials.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should now focus on response and recovery.",
|
||||
"preparation": "To be safe, heed the instructions of local officials when moving about. Do not return to flooded areas until the all-clear is officially given.",
|
||||
"action": "Exercise due safety.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"None": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning for this event need not include a threat for storm surge flooding. Unflooded ground or with spots minimally affected by surge water encroachment. Surf conditions may still be rough with some beach erosion. Stronger than normal rip currents may also be present.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical storm surge flooding.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical storm surge event.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning for this event need not include a threat for storm surge flooding. Unflooded ground or with spots minimally affected by surge water encroachment. Surf conditions may still be rough with some beach erosion. Stronger than normal rip currents may also be present.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical storm surge flooding.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical storm surge event.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning for this event need not include a threat for storm surge flooding. Unflooded ground or with spots minimally affected by surge water encroachment. Surf conditions may still be rough with some beach erosion. Stronger than normal rip currents may also be present.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical storm surge flooding.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical storm surge event.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Surf conditions may still be rough with some beach erosion. Stronger than normal rip currents may also be present.",
|
||||
"preparation": "Exercise due safety.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical storm surge event.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "Surf conditions may still be rough with some beach erosion. Stronger than normal rip currents may also be present. ",
|
||||
"preparation": "Exercise due safety.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical storm surge event.",
|
||||
},
|
||||
},
|
||||
},
|
||||
"Flooding Rain": {
|
||||
"Extreme": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for historic flooding where peak rainfall totals vastly exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury, significant loss of life, and human suffering. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives. If vulnerable, relocate to safe shelter on higher ground.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for historic flooding where peak rainfall totals vastly exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury, significant loss of life, and human suffering. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives. If vulnerable, relocate to safe shelter on higher ground.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for historic flooding where peak rainfall totals vastly exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of devastating to catastrophic flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury, significant loss of life, and human suffering. If flash flood watches and warnings are issued, heed recommended actions. Seconds can save lives. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for historic flooding where peak rainfall totals vastly exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of devastating to catastrophic flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury, significant loss of life, and human suffering. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"High": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for major flooding where peak rainfall totals well exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury or significant loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives. If vulnerable, relocate to safe shelter on higher ground.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for major flooding where peak rainfall totals well exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury or significant loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives. If vulnerable, relocate to safe shelter on higher ground.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for major flooding where peak rainfall totals well exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of extensive flooding rain impacts. Life threatening flooding possible from excessive tropical rain.",
|
||||
"action": "Failure to take action may result in serious injury or significant loss of life. If flash flood watches and warnings are issued, heed recommended actions. Seconds can save lives. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for major flooding where peak rainfall totals well exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of extensive flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury or significant loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers. Poor decisions may result in being cut off or needlessly risk lives.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Mod": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for moderate flooding where peak rainfall totals notably exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury or loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for moderate flooding where peak rainfall totals notably exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury or loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for moderate flooding where peak rainfall totals notably exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of significant flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury or loss of life. If flash flood watches and warnings are issued, heed recommended actions. Seconds can save lives. Also listen for possible river flood warnings for longer-term impacts along rivers.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for moderate flooding where peak rainfall totals notably exceed amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of significant flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury or loss of life. If flash flood watches and warnings are issued, heed recommended actions. Also listen for possible river flood warnings for longer-term impacts along rivers.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Elevated": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for minor flooding where peak rainfall totals are near amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, prepare for the potential of limited flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury, and in some cases loss of life. If flash flood watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for minor flooding where peak rainfall totals are near amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, prepare for the potential of limited flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury, and in some cases loss of life. If flash flood watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for minor flooding where peak rainfall totals are near amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of limited flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury, and in some cases loss of life. If flash flood watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for minor flooding where peak rainfall totals are near amounts conducive for flash flooding and rapid inundation.",
|
||||
"preparation": "To be safe, remain prepared for the potential of limited flooding rain impacts.",
|
||||
"action": "Failure to take action may result in serious injury, and in some cases loss of life. If flash flood watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"None": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning for this event need not include a threat for rainfall flooding. Heavy rain and nuisance flooding may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against excessive tropical rainfall.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical rainfall flooding event.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning for this event need not include a threat for rainfall flooding. Heavy rain and nuisance flooding may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against excessive tropical rainfall.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical rainfall flooding event.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning for this event need not include a threat for rainfall flooding. Heavy rain and nuisance flooding may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against excessive tropical rainfall.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical rainfall flooding event.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Heavy rain and nuisance flooding may still occur. ",
|
||||
"preparation": "Exercise due safety.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical rainfall flooding event.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "Heavy rain and nuisance flooding may still occur.",
|
||||
"preparation": "Exercise due safety.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical rainfall flooding event.",
|
||||
},
|
||||
},
|
||||
},
|
||||
"Tornado": {
|
||||
"Extreme": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for an outbreak of tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths. Numerous tornadoes may occur within short periods of time and in close proximity of one another.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, significant loss of life, and human suffering. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for an outbreak of tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths. Numerous tornadoes may occur within short periods of time and in close proximity of one another.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of devastating to catastrophic tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, significant loss of life, and human suffering. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for an outbreak of tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths. Numerous tornadoes may occur within short periods of time and in close proximity of one another.",
|
||||
"preparation": "To be safe, remain prepared for the potential of devastating to catastrophic tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, significant loss of life, and human suffering. If tornado watches and warnings are issued, heed recommended actions. Be ready to quickly move to the safest place within your shelter. Seconds can save lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for an outbreak of tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths. Numerous tornadoes may occur within short periods of time and in close proximity of one another.",
|
||||
"preparation": "To be safe, remain prepared for the potential of devastating to catastrophic tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, significant loss of life, and human suffering. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"High": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for numerous tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or significant loss of life. If tornado watches and warnings are issued, heed recommended actions. Seconds can save lives.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for numerous tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths.",
|
||||
"preparation": "To be safe, aggressively prepare for the potential of extensive tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or significant loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for numerous tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths.",
|
||||
"preparation": "To be safe, remain prepared for the potential of extensive tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or significant loss of life. If tornado watches and warnings are issued, heed recommended actions. Be ready to quickly move to the safest place within your shelter. Seconds can save lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for numerous tornadoes, with several possibly strong or violent in intensity and with longer and wider damage paths.",
|
||||
"preparation": "To be safe, remain prepared for the potential of extensive tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or significant loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Mod": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for scattered tornadoes, with a few possibly strong in intensity.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for scattered tornadoes, with a few possibly strong in intensity.",
|
||||
"preparation": "To be safe, earnestly prepare for the potential of significant tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for scattered tornadoes, with a few possibly strong in intensity.",
|
||||
"preparation": "To be safe, remain prepared for the potential of significant tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life. If tornado watches and warnings are issued, heed recommended actions. Be ready to quickly move to the safest place within your shelter. Seconds can save lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for scattered tornadoes, with a few possibly strong in intensity.",
|
||||
"preparation": "To be safe, remain prepared prepare for the potential of significant tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury or loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"Elevated": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning should include a reasonable threat for isolated tornadoes, mostly with shorter and narrower damage paths.",
|
||||
"preparation": "To be safe, prepare for the potential of limited tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning should include a reasonable threat for isolated tornadoes, mostly with shorter and narrower damage paths.",
|
||||
"preparation": "To be safe, prepare for the potential of limited tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for isolated tornadoes, mostly with shorter and narrower damage paths.",
|
||||
"preparation": "To be safe, remain prepared for the potential of limited tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life. If tornado watches and warnings are issued, heed recommended actions. Be ready to quickly move to the safest place within your shelter. Seconds can save lives.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Emergency planning should continue to include a reasonable threat for isolated tornadoes, mostly with shorter and narrower damage paths.",
|
||||
"preparation": "To be safe, remain prepare for the potential of limited tornado impacts.",
|
||||
"action": "Failure to adequately shelter may result in serious injury, and in some cases loss of life. If tornado watches and warnings are issued, heed recommended actions.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "",
|
||||
"preparation": "",
|
||||
"action": "",
|
||||
},
|
||||
},
|
||||
"None": {
|
||||
"check plans": {
|
||||
"planning": "Emergency planning for this event need not include a threat for tornadoes. Showers and thunderstorms with strong wind gusts may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical tornadoes.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical tornado event.",
|
||||
},
|
||||
"complete preparations": {
|
||||
"planning": "Emergency planning for this event need not include a threat for tornadoes. Showers and thunderstorms with strong wind gusts may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical tornadoes.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical tornado event.",
|
||||
},
|
||||
"hunker down": {
|
||||
"planning": "Emergency planning for this event need not include a threat for tornadoes. Showers and thunderstorms with strong wind gusts may still occur.",
|
||||
"preparation": "No immediate preparations needed to guard against tropical tornadoes.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical tornado event.",
|
||||
},
|
||||
"recovery": {
|
||||
"planning": "Showers and thunderstorms with strong wind gusts may still occur.",
|
||||
"preparation": "Exercise due safety when moving about.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical tornado event.",
|
||||
},
|
||||
"nothing to see here": {
|
||||
"planning": "Showers and thunderstorms with strong wind gusts may still occur.",
|
||||
"preparation": "Exercise due safety when moving about.",
|
||||
"action": "Review your seasonal plan and ensure readiness for the next tropical tornado event.",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
PotentialImpactStatements = {
|
||||
"Wind": {
|
||||
"Extreme": ["Structural damage to sturdy buildings with some experiencing complete roof and wall failures. Complete destruction of mobile homes. Hardest hit locations may be uninhabitable for weeks or months.",
|
||||
"Numerous large trees snapped or uprooted along with fences and roadway signs blown over. Many roads impassable from large debris.",
|
||||
"Many bridges, causeways, and access routes connecting barrier islands impassible.",
|
||||
"Widespread power outages with many areas suffering extended outages."],
|
||||
"High": ["Considerable damage to roofing and siding materials of sturdy buildings, with some having window, door, and garage door failures leading to structural damage. Mobile homes severely damaged, with some destroyed. Hardest hit locations may be uninhabitable for weeks.",
|
||||
"Many large trees snapped or uprooted along with fences and roadway signs blown over. Some roads impassable from large debris, and more within heavily wooded places.",
|
||||
"Several bridges, causeways, and access routes connecting barrier islands impassible.",
|
||||
"Power outages across large areas, with several places suffering extended outages."],
|
||||
"Mod": ["Some damage to roofing and siding materials, along with damage to porches, awnings, carports, and sheds. A few buildings experiencing window, door, and garage door failures. Mobile homes damaged, especially if unanchored. Unsecured lightweight objects become dangerous projectiles.",
|
||||
"Several large trees snapped or uprooted, but with greater numbers in places where trees are shallow rooted or diseased. Several fences and roadway signs blown over. Some roads impassable from large debris, and more within heavily wooded places.",
|
||||
"A few bridges, causeways, and access routes connecting barrier islands impassible.",
|
||||
"Scattered power outages, but more prevalent in areas with above ground lines."],
|
||||
"Elevated": ["Damage to porches, awnings, carports, sheds, and unanchored mobile homes. Unsecured lightweight objects blown about.",
|
||||
"Many large limbs broken off trees. A few trees snapped or uprooted, but with greater numbers in places where trees are shallow rooted or diseased. Some fences and roadway signs blown over. A few roads impassable from debris, particularly within heavily wooded places.",
|
||||
"Dangerous driving conditions on bridges and other elevated roadways, especially for high profile vehicles.",
|
||||
"Scattered power outages, especially in areas with above ground lines."],
|
||||
"None": ["Little to no potential impacts from wind."],
|
||||
},
|
||||
"Storm Surge": {
|
||||
"Extreme": ["Widespread deep inundation within coastal flood zones from nearby sea or large inland lake waters, possibly reaching areas well away from the shoreline. Powerful and scouring storm surge flooding greatly accentuated by intense battering wind waves resulting in structural damage to buildings, with many washing away. Damage greatly compounded from considerable floating debris. Hardest hit locations may be uninhabitable for an extended period.",
|
||||
"Near-shore escape routes and secondary roads washed out or severely flooded. Flood control systems and barriers may become stressed.",
|
||||
"Extreme beach erosion. New inland cuts possible along with local reshaping of the shoreline.",
|
||||
"Vast and substantial damage to marinas, docks, and piers. Numerous small craft broken away from moorings with many lifted onshore and stranded."],
|
||||
"High": ["Large areas of deep inundation within coastal flood zones from nearby sea or large inland lake waters. Powerful and scouring storm surge flooding accentuated by battering wind waves resulting in structural damage to buildings, with several washing away. Damage compounded by floating debris. Hardest hit locations may be uninhabitable for an extended period.",
|
||||
"Large sections of near-shore escape routes and secondary roads washed out or severely flooded. Flood control systems and barriers may become stressed.",
|
||||
"Severe beach erosion with significant dune loss.",
|
||||
"Major damage to marinas, docks, and piers. Many small craft broken away from moorings, especially in unprotected anchorages with some lifted onshore and stranded."],
|
||||
"Mod": ["Inundation within coastal flood zones of considerable extent from nearby sea or large inland lake waters. Storm surge flooding accentuated by wind waves damaging several buildings, mainly near the coast and in usually vulnerable spots.",
|
||||
"Sections of near-shore escape routes and secondary roads become weakened or washed out, especially in usually vulnerable low spots.",
|
||||
"Major beach erosion with heavy surf breaching dunes. Very strong and numerous rip currents.",
|
||||
"Moderate damage to marinas, docks, and piers. Several small craft broken away from moorings, especially in unprotected anchorages."],
|
||||
"Elevated": ["Partial inundation within coastal flood zones from nearby sea or large inland lake waters. Deepest flooding mainly along immediate shorelines and in low-lying spots, or in areas farther inland from where higher surge waters move ashore.",
|
||||
"Sections of near-shore roads and parking lots become overspread with surge water. Driving conditions dangerous in places where surge water covers the road.",
|
||||
"Moderate beach erosion. Heavy surf also breaching dunes, mainly in usually vulnerable locations. Strong rip currents.",
|
||||
"Minor to locally moderate damage to marinas, docks, and piers. A few small craft broken away from moorings."],
|
||||
"None": ["Little to no potential impacts from storm surge flooding."],
|
||||
},
|
||||
"Flooding Rain": {
|
||||
"Extreme": ["The occurrence of extreme rainfall flooding can immensely hinder emergency preparedness or response actions associated with other tropical event hazards. Attentions and emergency resources may need to be committed to meet an immediate flooding rain threat.",
|
||||
"Rivers and tributaries may greatly and rapidly overflow their banks in many places with deep moving water. Small streams, creeks, canals, arroyos, and ditches become raging rivers. In mountain areas, deadly runoff may rage down valleys while increasing susceptibility to rockslides and mudslides. Flood control systems and barriers may become stressed.",
|
||||
"Flood waters can enter numerous structures within multiple communities, some structures becoming uninhabitable or washed away. Numerous places where flood waters cover escape routes. Streets and parking lots become rivers of raging water with underpasses submerged. Driving conditions become life threatening. Numerous road and bridge closures with some weakened or washed out.",
|
||||
"Flood waters may prompt numerous evacuations and rescues."],
|
||||
"High": ["The occurrence of major rainfall flooding can greatly hinder emergency preparedness or response actions associated with other tropical event hazards. Attentions and emergency resources may need to be committed to meet an immediate flooding threat.",
|
||||
"Rivers and tributaries may rapidly overflow their banks in multiple places. Small streams, creeks, canals, arroyos, and ditches become dangerous rivers. In mountain areas, destructive runoff may run quickly down valleys while increasing susceptibility to rockslides and mudslides. Flood control systems and barriers may become stressed.",
|
||||
"Flood waters can enter many structures within multiple communities, some structures becoming uninhabitable or washed away. Many places where flood waters cover escape routes. Streets and parking lots become rivers of moving water with underpasses submerged. Driving conditions become life threatening. Many road and bridge closures with some weakened or washed out.",
|
||||
"Flood waters may prompt many evacuations and rescues."],
|
||||
"Mod": ["The occurrence of moderate rainfall flooding can hinder emergency preparedness or response actions associated with other tropical event hazards. Attentions and emergency resources may need to be partially diverted to meet an immediate flooding threat.",
|
||||
"Rivers and tributaries may quickly become swollen with swifter currents and overspill their banks in a few places, especially in usually vulnerable spots. Small streams, creeks, canals, arroyos, and ditches overflow.",
|
||||
"Flood waters can enter some structures or weaken foundations. Several places experience expanded areas of rapid inundation at underpasses, low-lying spots, and poor drainage areas. Some streets and parking lots take on moving water as storm drains and retention ponds overflow. Driving conditions become hazardous along with some road and bridge closures.",
|
||||
"Flood waters may prompt several evacuations and rescues."],
|
||||
"Elevated": ["The occurrence of minor rainfall flooding can hinder emergency preparedness or response actions associated with other tropical event hazards.",
|
||||
"Rivers and tributaries may quickly rise with swifter currents. Small streams, creeks, canals, arroyos, and ditches become swollen and overflow in spots.",
|
||||
"Flood waters can enter a few structures, especially in usually vulnerable spots. A few places where rapid ponding of water occurs at underpasses, low-lying spots, and poor drainage areas. Several storm drains and retention ponds become near-full and begin to overflow. Some brief road and bridge closures.",
|
||||
"Rainfall flooding may prompt a few evacuations."],
|
||||
"None": ["Little to no potential impacts from flooding rain."],
|
||||
},
|
||||
"Tornado": {
|
||||
"Extreme": ["The occurrence of an outbreak of tornadoes can immensely hinder emergency preparedness or response actions associated with other event tropical hazards. Attentions and emergency resources may need to be temporarily diverted to meet an immediate tornado threat.",
|
||||
"Many places may experience tornado damage, with several spots of immense destruction, power loss, and communications failures.",
|
||||
"Hardest hit locations can realize sturdy buildings demolished, structures upon weak foundations swept away, mobile homes obliterated, large trees twisted and snapped with some debarked, vehicles lifted off the ground and thrown with distance, and small boats destroyed. Large and deadly projectiles add considerably to the toll."],
|
||||
"High": ["The occurrence of numerous tornadoes can greatly hinder emergency preparedness or response actions associated with other tropical event hazards. Attentions and emergency resources may need to be temporarily diverted to meet an immediate tornado threat.",
|
||||
"Many places may experience tornado damage with a few spots of immense destruction, power loss, and communications failures.",
|
||||
"Hardest hit locations can realize roof and wall failures of sturdy buildings with some being leveled, structures upon weak foundations blown away, mobile homes obliterated, large trees twisted and snapped with forested trees uprooted, vehicles lifted off the ground and thrown, and small boats destroyed. Large and deadly projectiles add to the toll."],
|
||||
"Mod": ["The occurrence of scattered tornadoes can hinder emergency preparedness or response actions associated with other tropical event hazards.",
|
||||
"Several places may experience tornado damage with a few spots of considerable damage, power loss, and communications failures.",
|
||||
"Hardest hit locations can realize roofs torn off frame houses, mobile homes demolished, boxcars overturned, large trees snapped or uprooted, vehicles lifted off the ground, and small boats tossed about. Dangerous projectiles add to the toll."],
|
||||
"Elevated": ["The occurrence of isolated tornadoes can hinder emergency preparedness or response actions associated with other tropical event hazards.",
|
||||
"A few places may experience tornado damage, along with power and communications disruptions.",
|
||||
"Hardest hit locations can realize roofs peeled off buildings, chimneys toppled, mobile homes pushed off foundations or overturned, large tree tops and branches snapped off, shallow-rooted trees knocked over, moving vehicles blown off roads, and small boats pulled from moorings. Dangerous projectiles of lighter weight."],
|
||||
"None": ["Little to no potential impacts from tornadoes."],
|
||||
},
|
||||
}
|
||||
|
||||
EvacuationStatements = ["Several parishes and jurisdictions have issued evacuation orders.",
|
||||
"For those not under evacuation orders, understand that there are inherent risks to evacuation (traffic accidents, congestion, and getting caught on the road during bad weather), so evacuate only if you need to. That would also help keep roadways open for those that are under evacuation orders."]
|
||||
|
||||
OtherPreparednessActions = ["For those under a warning, now is the time to rush to completion preparations for the protection of life and property.",
|
||||
"People in the warning area should finish preparations now. For those under a watch, review your preparedness plans and be ready to implement them should a warning be issued for your area.",
|
||||
"For marine interests under a watch or warning, return to port or seek safe harbor. Determine the best strategy for securing your craft.",
|
||||
"Closely monitor NOAA Weather Radio or other local news outlets for offical storm information. Listen for possible changes to the forecast."]
|
||||
|
||||
AdditionalSources = ["For information on appropriate preparations see ready.gov/louisiana",
|
||||
"For information on local evacuation shelters see www.emergency.louisana.gov/disaster_evaluation_guide.html",
|
||||
"For information on creating an emergency plan see getagameplan.org",
|
||||
"For additional disaster preparedness information see redcross.org"]
|
|
@ -24,6 +24,8 @@
|
|||
<value>HU.W</value>
|
||||
<value>TR.A</value>
|
||||
<value>TR.W</value>
|
||||
<value>SS.A</value>
|
||||
<value>SS.W</value>
|
||||
</set>
|
||||
</property>
|
||||
<property name="tropicalEtnPhensigs">
|
||||
|
@ -33,6 +35,8 @@
|
|||
<value>HU.W</value>
|
||||
<value>TR.A</value>
|
||||
<value>TR.W</value>
|
||||
<value>SS.A</value>
|
||||
<value>SS.W</value>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
|
|
@ -34,13 +34,14 @@ import com.raytheon.uf.common.localization.IPathManager;
|
|||
import com.raytheon.uf.common.localization.LocalizationContext;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationFile;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.python.PyUtil;
|
||||
import com.raytheon.uf.common.python.PythonScript;
|
||||
import com.raytheon.uf.common.util.FileUtil;
|
||||
|
||||
/**
|
||||
* TODO Add Description
|
||||
* Area Dictionary Maker
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
|
@ -49,6 +50,7 @@ import com.raytheon.uf.common.util.FileUtil;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* May 4, 2011 wldougher Moved from MapManager
|
||||
* Oct 8, 2014 #4953 randerso Added hooks for TCVAreaDictionary creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -66,21 +68,21 @@ public class AreaDictionaryMaker {
|
|||
* Generate the AreaDictionary.py and CityLocation.py scripts for site,
|
||||
* using editAreaAttrs.
|
||||
*
|
||||
* @param site
|
||||
* @param siteID
|
||||
* The site for which the area dictionary file and city location
|
||||
* file should be generated.
|
||||
* @param editAreaAttrs
|
||||
* A Map from edit area names to shape file attributes
|
||||
*/
|
||||
public void genAreaDictionary(String site,
|
||||
public void genAreaDictionary(String siteID,
|
||||
Map<String, Map<String, Object>> editAreaAttrs) {
|
||||
theLogger.info("Area Dictionary generation phase");
|
||||
|
||||
if (site == null) {
|
||||
if (siteID == null) {
|
||||
throw new IllegalArgumentException("site is null");
|
||||
}
|
||||
|
||||
if ("".equals(site)) {
|
||||
if ("".equals(siteID)) {
|
||||
throw new IllegalArgumentException("site is an empty string");
|
||||
}
|
||||
|
||||
|
@ -102,7 +104,7 @@ public class AreaDictionaryMaker {
|
|||
LocalizationContext caveStaticConfig = pathMgr.getContext(
|
||||
LocalizationContext.LocalizationType.CAVE_STATIC,
|
||||
LocalizationContext.LocalizationLevel.CONFIGURED);
|
||||
caveStaticConfig.setContextName(site);
|
||||
caveStaticConfig.setContextName(siteID);
|
||||
File outputDirFile = pathMgr.getLocalizationFile(caveStaticConfig,
|
||||
FileUtil.join("gfe", "userPython", "textUtilities", "regular"))
|
||||
.getFile();
|
||||
|
@ -119,6 +121,19 @@ public class AreaDictionaryMaker {
|
|||
// createCityLocation uses script globals modified by
|
||||
// createAreaDictionary()
|
||||
pyScript.execute("createCityLocation", argMap);
|
||||
|
||||
// check to see if Hazard_TCV was configured for this site
|
||||
LocalizationFile lf = pathMgr.getLocalizationFile(caveStaticConfig,
|
||||
FileUtil.join("gfe", "userPython", "textProducts",
|
||||
"Hazard_TCV.py"));
|
||||
if (lf.exists()) {
|
||||
// TODO: Sarah add your TCVAreaDictionary creation code here
|
||||
// if you add your code as a new method in
|
||||
// createAreaDictionary.py which is probably the easiest way to
|
||||
// do it, you can run it with the following line:
|
||||
// pyScript.execute("createTCVAreaDictionary", argMap);
|
||||
}
|
||||
|
||||
} catch (JepException e) {
|
||||
theLogger.error("Error generating area dictionary", e);
|
||||
} finally {
|
||||
|
|
|
@ -19,14 +19,13 @@
|
|||
**/
|
||||
package com.raytheon.edex.plugin.gfe.watch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.raytheon.edex.plugin.gfe.config.GFESiteActivation;
|
||||
import com.raytheon.edex.plugin.gfe.server.IFPServer;
|
||||
import com.raytheon.edex.plugin.gfe.util.SendNotifications;
|
||||
import com.raytheon.uf.common.activetable.VTECPartners;
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.server.message.ServerResponse;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.server.notify.GfeNotification;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.server.notify.UserMessageNotification;
|
||||
|
@ -47,6 +46,8 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Jun 10, 2014 #3268 dgilling Initial creation
|
||||
* Oct 08, 2014 #4953 randerso Refactored AbstractWatchNotifierSrv to allow
|
||||
* subclasses to handle all watches if desired.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -61,31 +62,19 @@ public abstract class AbstractWatchNotifierSrv {
|
|||
|
||||
protected final String watchType;
|
||||
|
||||
protected final String supportedPIL;
|
||||
|
||||
protected AbstractWatchNotifierSrv(String watchType, String supportedPIL) {
|
||||
protected AbstractWatchNotifierSrv(String watchType) {
|
||||
this.watchType = watchType;
|
||||
this.supportedPIL = supportedPIL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the warning records and generates a notification for each
|
||||
* currently activated GFE site if the storm affects the site.
|
||||
*
|
||||
* @param pdos
|
||||
* A list of {@code PluginDataObject}s that are assumed to be
|
||||
* {@code AbstractWarningRecord}s all decoded from a common
|
||||
* warning product.
|
||||
* @param warningRecs
|
||||
* A list of {@code AbstractWarningRecord}s all decoded from a
|
||||
* common warning product.
|
||||
*/
|
||||
public final void handleWatch(List<PluginDataObject> pdos) {
|
||||
List<AbstractWarningRecord> warningRecs = filterIncomingRecordsByPIL(pdos);
|
||||
if (warningRecs.isEmpty()) {
|
||||
String logMsg = String.format("%s notification: not %s product",
|
||||
watchType, supportedPIL);
|
||||
statusHandler.debug(logMsg);
|
||||
return;
|
||||
}
|
||||
|
||||
public void handleWatch(List<AbstractWarningRecord> warningRecs) {
|
||||
/*
|
||||
* We are making an assumption that all PDOs came from the same source
|
||||
* product. This is a safe assumption because WarningDecoder processes
|
||||
|
@ -98,7 +87,7 @@ public abstract class AbstractWatchNotifierSrv {
|
|||
String productText = warningRecs.get(0).getRawmessage();
|
||||
Collection<String> wfos = WatchProductUtil.findAttnWFOs(productText);
|
||||
|
||||
for (String siteid : GFESiteActivation.getInstance().getActiveSites()) {
|
||||
for (String siteid : getActiveSites()) {
|
||||
if (!wfos.contains(siteid)) {
|
||||
String logMsg = String.format(
|
||||
"%s notification: my site %s not in ATTN list",
|
||||
|
@ -116,28 +105,8 @@ public abstract class AbstractWatchNotifierSrv {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a list of {@code PluginDataObject}s that are actually
|
||||
* {@code AbstractWarningRecord}s, filters the list for only those records
|
||||
* which have the right PIL code.
|
||||
*
|
||||
* @param pdos
|
||||
* List of {@code AbstractWarningRecord}s to filter.
|
||||
* @return The list of supported {@code AbstractWarningRecord}s as defined
|
||||
* by {@code getSupportedPIL}.
|
||||
*/
|
||||
protected List<AbstractWarningRecord> filterIncomingRecordsByPIL(
|
||||
List<PluginDataObject> pdos) {
|
||||
List<AbstractWarningRecord> warningRecords = new ArrayList<AbstractWarningRecord>();
|
||||
for (PluginDataObject pdo : pdos) {
|
||||
AbstractWarningRecord warning = (AbstractWarningRecord) pdo;
|
||||
|
||||
if (warning.getPil().startsWith(supportedPIL)) {
|
||||
warningRecords.add(warning);
|
||||
}
|
||||
}
|
||||
|
||||
return warningRecords;
|
||||
protected Set<String> getActiveSites() {
|
||||
return IFPServer.getActiveSites();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -39,6 +39,8 @@ import com.raytheon.uf.common.dataplugin.warning.AbstractWarningRecord;
|
|||
* Oct 03, 2008 njensen Initial creation
|
||||
* Jul 10, 2009 #2590 njensen Added multiple site support
|
||||
* Jun 10, 2014 #3268 dgilling Re-factor based on AbstractWatchNotifierSrv.
|
||||
* Oct 08, 2014 #4953 randerso Refactored AbstractWatchNotifierSrv to allow
|
||||
* subclasses to handle all watches if desired.
|
||||
* </pre>
|
||||
*
|
||||
* @author njensen
|
||||
|
@ -49,8 +51,6 @@ public final class SPCWatchSrv extends AbstractWatchNotifierSrv {
|
|||
|
||||
private static final String SPC_WATCH_TYPE = "SPC";
|
||||
|
||||
private static final String SPC_SUPPORTED_PIL = "WOU";
|
||||
|
||||
private static final String SPC_SITE_ATTRIBUTE = "VTEC_SPC_SITE";
|
||||
|
||||
private static final String DEFAULT_SPC_SITE = "KNHC";
|
||||
|
@ -71,8 +71,11 @@ public final class SPCWatchSrv extends AbstractWatchNotifierSrv {
|
|||
phenTextMap = Collections.unmodifiableMap(phenTextMapTemp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public SPCWatchSrv() {
|
||||
super(SPC_WATCH_TYPE, SPC_SUPPORTED_PIL);
|
||||
super(SPC_WATCH_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -42,6 +42,10 @@ import com.raytheon.uf.common.dataplugin.warning.AbstractWarningRecord;
|
|||
* Oct 03, 2008 njensen Initial creation
|
||||
* Jul 10, 2009 #2590 njensen Added multiple site support
|
||||
* Jun 10, 2014 #3268 dgilling Re-factor based on AbstractWatchNotifierSrv.
|
||||
* Oct 08, 2014 #4953 randerso Refactored AbstractWatchNotifierSrv to allow
|
||||
* subclasses to handle all watches if desired.
|
||||
* Added hooks for TCVAdvisory creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author njensen
|
||||
|
@ -52,13 +56,11 @@ public final class TPCWatchSrv extends AbstractWatchNotifierSrv {
|
|||
|
||||
private static final String TPC_WATCH_TYPE = "TPC";
|
||||
|
||||
private static final String TPC_SUPPORTED_PIL = "TCV";
|
||||
|
||||
private static final String TPC_SITE_ATTRIBUTE = "VTEC_TPC_SITE";
|
||||
|
||||
private static final String DEFAULT_TPC_SITE = "KNHC";
|
||||
|
||||
private static final String ALERT_TXT = "Alert: %s has arrived from TPC. "
|
||||
private static final String ALERT_TXT = "Alert: TCV has arrived from TPC. "
|
||||
+ "Check for 'red' locks (owned by others) on your Hazard grid and resolve them. "
|
||||
+ "If hazards are separated into temporary grids, please run Mergehazards. "
|
||||
+ "Next...save Hazards grid. Finally, select PlotTPCEvents from Hazards menu.";
|
||||
|
@ -83,8 +85,31 @@ public final class TPCWatchSrv extends AbstractWatchNotifierSrv {
|
|||
actMap = Collections.unmodifiableMap(actMapTemp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public TPCWatchSrv() {
|
||||
super(TPC_WATCH_TYPE, TPC_SUPPORTED_PIL);
|
||||
super(TPC_WATCH_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.edex.plugin.gfe.watch.AbstractWatchNotifierSrv#handleWatch
|
||||
* (java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public void handleWatch(List<AbstractWarningRecord> warningRecs) {
|
||||
super.handleWatch(warningRecs);
|
||||
|
||||
for (String siteId : getActiveSites()) {
|
||||
for (AbstractWarningRecord record : warningRecs) {
|
||||
// TODO: Sarah, add a call to your method that
|
||||
// handles the TCV here:
|
||||
// example: processTCV(siteID, record);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -123,8 +148,7 @@ public final class TPCWatchSrv extends AbstractWatchNotifierSrv {
|
|||
}
|
||||
|
||||
// create the message
|
||||
StringBuilder msg = new StringBuilder(String.format(ALERT_TXT,
|
||||
supportedPIL));
|
||||
StringBuilder msg = new StringBuilder(ALERT_TXT);
|
||||
for (String phensigStorm : phensigStormAct.keySet()) {
|
||||
Collection<String> acts = phensigStormAct.get(phensigStorm);
|
||||
String[] splitKey = phensigStorm.split(":");
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS"/>
|
||||
</mapping>
|
||||
<mapping key="pil">
|
||||
<constraint constraintValue="WOU" constraintType="EQUALS"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</pluginNotification>
|
||||
<pluginNotification>
|
||||
|
@ -17,6 +20,9 @@
|
|||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS"/>
|
||||
</mapping>
|
||||
<mapping key="pil">
|
||||
<constraint constraintValue="TCV" constraintType="EQUALS"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</pluginNotification>
|
||||
</pluginNotificationList>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -52,12 +52,12 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
Definition = copy.deepcopy(GenericHazards.TextProduct.Definition)
|
||||
|
||||
Definition["displayName"] = "None"
|
||||
Definition["outputFile"] = "{prddir}/TEXT/HLS.txt"
|
||||
Definition["outputFile"] = "{prddir}/TEXT/Hazard_HLS.txt"
|
||||
Definition["database"] = "Official" # Source database
|
||||
Definition["debug"] = 1
|
||||
Definition["mapNameForCombinations"] = ["Marine_Zones_<site>", "Zones_<site>"]
|
||||
Definition["mapNameForCombinations"] = ["Zones_<site>"]
|
||||
#Definition["mapNameForCombinations"] = ["Zones_<site>","Marine_Zones_<site>"]
|
||||
Definition["defaultEditAreas"] = "EditAreas_PublicMarine_<site>"
|
||||
Definition["defaultEditAreas"] = "EditAreas_PublicZones_<site>"
|
||||
Definition["showZoneCombiner"] = 1 # 1 to cause zone combiner to display
|
||||
|
||||
Definition["productName"] = "TROPICAL CYCLONE LOCAL STATEMENT"
|
||||
|
|
|
@ -97,6 +97,8 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
allActions = ["NEW", "EXA", "EXB", "EXT", "CAN", "CON", "EXP"]
|
||||
return [
|
||||
|
||||
('HU.W', allActions, 'Tropical'), # HURRICANE WARNING
|
||||
('TR.W', allActions, 'Tropical1'),# TROPICAL STORM WARNING
|
||||
('GL.W', allActions, 'Marine3'), # GALE WARNING
|
||||
('HF.W', allActions, 'Marine'), # HURRICANE FORCE WIND WARNING
|
||||
('MH.W', allActions, 'Ashfall'), # VOLCANIC ASHFALL WARNING
|
||||
|
@ -115,6 +117,8 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
('SW.Y', allActions, 'Marine4'), # SMALL CRAFT ADVISORY
|
||||
('UP.Y', allActions, 'IceAccr'), # HEAVY FREEZING SPRAY ADVISORY
|
||||
|
||||
('HU.A', allActions, 'Tropical'), # HURRICANE WATCH
|
||||
('TR.A', allActions, 'Tropical1'),# TROPICAL STORM WATCH
|
||||
('GL.A', allActions, 'Marine3'), # GALE WATCH
|
||||
('HF.A', allActions, 'Marine'), # HURRICANE FORCE WIND WATCH
|
||||
('SE.A', allActions, 'Marine4'), # HAZARDOUS SEAS WATCH
|
||||
|
@ -125,6 +129,8 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
|
||||
def _bulletDict(self):
|
||||
return {
|
||||
"HU" : ("WINDS,WAVES/SEAS"), ### hurricane warning, watch
|
||||
"TR" : ("WINDS,WAVES/SEAS"), ### tropical storm warning, watch
|
||||
"GL" : ("WINDS,WAVES/SEAS"), ### gale warning, watch
|
||||
"HF" : ("WINDS,WAVES/SEAS"), ### hurricane force wind warnings, watch
|
||||
"MH" : ("VOLCANIC ASH INFO"), ### volcanic ashfall warning, advisory
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,44 @@
|
|||
# ---------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without
|
||||
# technical support, and with no warranty, express or implied, as to
|
||||
# its usefulness for any purpose.
|
||||
#
|
||||
# HLS_<site>_<MultiPil>_Definition.TextUtility
|
||||
#
|
||||
# This file sets up all the Product Definition overrides for the
|
||||
# HLS formatter for a site.
|
||||
#
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
#**********************************************************************
|
||||
# MAKE NO CHANGES HERE
|
||||
# The minimum content of this file is the following Definition statement
|
||||
|
||||
Definition = {}
|
||||
|
||||
# End MAKE NO CHANGES HERE
|
||||
#**********************************************************************
|
||||
#####################################################
|
||||
# Override VariableList if desired
|
||||
#
|
||||
#VariableList = []
|
||||
|
||||
#----- WFO <site> HLS Definition -----
|
||||
# Definition Statements must start in column 1.
|
||||
|
||||
# REQUIRED CONFIGURATION ITEMS
|
||||
#Definition['displayName'] = None
|
||||
Definition['displayName'] = "HLS_<MultiPil> (Hurricane Local Statement)"
|
||||
|
||||
# Header configuration items
|
||||
Definition["fullStationID"] = "<fullStationID>" # full station identifier (4letter)
|
||||
Definition["wmoID"] = "<wmoID>" # WMO ID
|
||||
Definition["pil"] = "<pil>" # product pil
|
||||
Definition["textdbPil"] = "<textdbPil>" # Product ID for storing to AWIPS text database.
|
||||
Definition["awipsWANPil"] = "<awipsWANPil>" # Product ID for transmitting to AWIPS WAN.
|
||||
Definition["outputFile"] = "{prddir}/TEXT/HLS_<MultiPil>.txt"
|
||||
|
||||
# OPTIONAL CONFIGURATION ITEMS
|
||||
#Definition["database"] = "Official" # Source database. "Official", "Fcst", or "ISC"
|
||||
#Definition["debug"] = 1
|
||||
|
|
@ -23,7 +23,7 @@ Definition = {}
|
|||
#
|
||||
#VariableList = []
|
||||
|
||||
#----- WFO <site> FWM Definition -----
|
||||
#----- WFO <site> Hazard_HLS Definition -----
|
||||
# Definition Statements must start in column 1.
|
||||
|
||||
# REQUIRED CONFIGURATION ITEMS
|
||||
|
@ -36,7 +36,7 @@ Definition["wmoID"] = "<wmoID>" # WMO ID
|
|||
Definition["pil"] = "<pil>" # product pil
|
||||
Definition["textdbPil"] = "<textdbPil>" # Product ID for storing to AWIPS text database.
|
||||
Definition["awipsWANPil"] = "<awipsWANPil>" # Product ID for transmitting to AWIPS WAN.
|
||||
Definition["outputFile"] = "{prddir}/TEXT/FWM_<MultiPil>.txt"
|
||||
Definition["outputFile"] = "{prddir}/TEXT/Hazard_HLS_<MultiPil>.txt"
|
||||
|
||||
# OPTIONAL CONFIGURATION ITEMS
|
||||
#Definition["database"] = "Official" # Source database. "Official", "Fcst", or "ISC"
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
# ---------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without
|
||||
# technical support, and with no warranty, express or implied, as to
|
||||
# its usefulness for any purpose.
|
||||
#
|
||||
# Hazard_TCV_<site>_<MultiPil>_Definition.TextUtility
|
||||
#
|
||||
# This file sets up all the Product Definition overrides for the
|
||||
# Hazard_TCV formatter for a site.
|
||||
#
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
#**********************************************************************
|
||||
# MAKE NO CHANGES HERE
|
||||
# The minimum content of this file is the following Definition statement
|
||||
|
||||
Definition = {}
|
||||
|
||||
# End MAKE NO CHANGES HERE
|
||||
#**********************************************************************
|
||||
#####################################################
|
||||
# Override VariableList if desired
|
||||
#
|
||||
#VariableList = []
|
||||
|
||||
#----- WFO <site> TCV Definition -----
|
||||
# Definition Statements must start in column 1.
|
||||
|
||||
# REQUIRED CONFIGURATION ITEMS
|
||||
#Definition['displayName'] = None
|
||||
Definition['displayName'] = "Hazard_TCV_<MultiPil> (Tropical Cyclone VTEC)"
|
||||
|
||||
# Header configuration items
|
||||
Definition["fullStationID"] = "<fullStationID>" # full station identifier (4letter)
|
||||
Definition["wmoID"] = "<wmoID>" # WMO ID
|
||||
Definition["pil"] = "<pil>" # product pil
|
||||
Definition["textdbPil"] = "<textdbPil>" # Product ID for storing to AWIPS text database.
|
||||
Definition["awipsWANPil"] = "<awipsWANPil>" # Product ID for transmitting to AWIPS WAN.
|
||||
Definition["outputFile"] = "{prddir}/TEXT/TCV_<MultiPil>.txt"
|
||||
|
||||
# OPTIONAL CONFIGURATION ITEMS
|
||||
#Definition["database"] = "Official" # Source database. "Official", "Fcst", or "ISC"
|
||||
#Definition["debug"] = 1
|
||||
|
Loading…
Add table
Reference in a new issue