mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 14:57:56 -05:00
2033 lines
41 KiB
Python
2033 lines
41 KiB
Python
|
|
class Item(object):
|
|
def __init__(self, *initial_data, **kwargs):
|
|
for dictionary in initial_data:
|
|
for key in dictionary:
|
|
setattr(self, key, dictionary[key])
|
|
for key in kwargs:
|
|
setattr(self, key, kwargs[key])
|
|
|
|
|
|
#class GenerateNexradTable(object):
|
|
# import numpy as np
|
|
# import json
|
|
# # find this file locally and confirm location
|
|
# filename = '~/awips2-builds/edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radarInfoSimple.txt'
|
|
# data = np.genfromtxt(
|
|
# filename,
|
|
# delimiter=",",
|
|
# autostrip=True,
|
|
# skip_header=0,
|
|
# names=True,
|
|
# dtype=None)
|
|
#
|
|
# for x in data:
|
|
# defn = Item(dict(zip(data.dtype.names, x)))
|
|
# prod = dict(zip(data.dtype.names, x))
|
|
# nexrad[defn.id] = prod
|
|
#
|
|
# return json.dumps(nexrad, indent=1)
|
|
|
|
|
|
profiler = {
|
|
"74997" : {
|
|
"profilerId": "ASTC1",
|
|
"latitude": 46.16,
|
|
"longitude": -123.88,
|
|
"elevation": 3,
|
|
"profilerName": "Astoria OR"},
|
|
"74996" : {
|
|
"profilerId": "BGDC1",
|
|
"latitude": 38.32,
|
|
"longitude": -123.07,
|
|
"elevation": 13,
|
|
"profilerName": "Bodega Bay CA"},
|
|
"74995" : {
|
|
"profilerId": "FKSC1",
|
|
"latitude": 47.97,
|
|
"longitude": -124.40,
|
|
"elevation": 92,
|
|
"profilerName": "Forks WA"},
|
|
"74998" : {
|
|
"profilerId": "ACVC1",
|
|
"latitude": 40.97,
|
|
"longitude": -124.11,
|
|
"elevation": 56,
|
|
"profilerName": "McKinleyville CA"},
|
|
"74994" : {
|
|
"profilerId": "OTHC1",
|
|
"latitude": 43.42,
|
|
"longitude": -124.24,
|
|
"elevation": 5,
|
|
"profilerName": "North Bend OR"},
|
|
"74993" : {
|
|
"profilerId": "PTSC1",
|
|
"latitude": 36.30,
|
|
"longitude": -121.89,
|
|
"elevation": 11,
|
|
"profilerName": "Point Sur CA"},
|
|
"74992" : {
|
|
"profilerId": "SBAC1",
|
|
"latitude": 34.43,
|
|
"longitude": -119.85,
|
|
"elevation": 4,
|
|
"profilerName": "Santa Barbara CA"},
|
|
"74991" : {
|
|
"profilerId": "PVLC1",
|
|
"latitude": 40.18,
|
|
"longitude": -104.73,
|
|
"elevation": 1503,
|
|
"profilerName": "Platteville CO"},
|
|
"74990" : {
|
|
"profilerId": "TDEC1",
|
|
"latitude": 45.55,
|
|
"longitude": -122.39,
|
|
"elevation": 12,
|
|
"profilerName": "Troutdale OR"},
|
|
"74989" : {
|
|
"profilerId": "CCOC1",
|
|
"latitude": 39.70,
|
|
"longitude": -121.91,
|
|
"elevation": 42,
|
|
"profilerName": "Chico CA"}
|
|
}
|
|
|
|
nexrad = {
|
|
"2": {
|
|
"layer": 0,
|
|
"name": "NEXRAD Unit Status Msg",
|
|
"res": 0.0,
|
|
"mnemo": "GSM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 2,
|
|
"unit": ""
|
|
},
|
|
"3": {
|
|
"layer": 0,
|
|
"name": "Product Request Resp",
|
|
"res": 0.0,
|
|
"mnemo": "PRR",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 3,
|
|
"unit": ""
|
|
},
|
|
"8": {
|
|
"layer": 0,
|
|
"name": "Product List",
|
|
"res": 0.0,
|
|
"mnemo": "PTL",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 8,
|
|
"unit": ""
|
|
},
|
|
"12": {
|
|
"layer": 0,
|
|
"name": "Command Parameter Msg",
|
|
"res": 0.0,
|
|
"mnemo": "CPM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 12,
|
|
"unit": ""
|
|
},
|
|
"14": {
|
|
"layer": 0,
|
|
"name": "Command Control Msg",
|
|
"res": 0.0,
|
|
"mnemo": "CCM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 14,
|
|
"unit": ""
|
|
},
|
|
"16": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "Z",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 16,
|
|
"unit": "dBZ"
|
|
},
|
|
"17": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 2.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 17,
|
|
"unit": "dBZ"
|
|
},
|
|
"18": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 4.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 18,
|
|
"unit": "dBZ"
|
|
},
|
|
"19": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "Z",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 19,
|
|
"unit": "dBZ"
|
|
},
|
|
"20": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 2.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 20,
|
|
"unit": "dBZ"
|
|
},
|
|
"21": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 4.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 21,
|
|
"unit": "dBZ"
|
|
},
|
|
"22": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"res": 0.25,
|
|
"mnemo": "V",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"range": 60,
|
|
"lvls": 8,
|
|
"id": 22,
|
|
"unit": "kts"
|
|
},
|
|
"23": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 0.5,
|
|
"mnemo": "V",
|
|
"range": 115,
|
|
"lvls": 8,
|
|
"id": 23,
|
|
"unit": "kts"
|
|
},
|
|
"24": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 1.0,
|
|
"mnemo": "V",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 24,
|
|
"unit": "kts"
|
|
},
|
|
"25": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 0.25,
|
|
"mnemo": "V",
|
|
"range": 60,
|
|
"lvls": 16,
|
|
"id": 25,
|
|
"unit": "kts"
|
|
},
|
|
"26": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 0.5,
|
|
"mnemo": "V",
|
|
"range": 115,
|
|
"lvls": 16,
|
|
"id": 26,
|
|
"unit": "kts"
|
|
},
|
|
"27": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 1.0,
|
|
"mnemo": "V",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 27,
|
|
"unit": "kts"
|
|
},
|
|
"28": {
|
|
"layer": 0,
|
|
"name": "Spectrum Width",
|
|
"res": 0.25,
|
|
"mnemo": "SW",
|
|
"range": 60,
|
|
"lvls": 8,
|
|
"id": 28,
|
|
"unit": "kts"
|
|
},
|
|
"29": {
|
|
"layer": 0,
|
|
"name": "Spectrum Width",
|
|
"res": 0.5,
|
|
"mnemo": "SW",
|
|
"range": 115,
|
|
"lvls": 8,
|
|
"id": 29,
|
|
"unit": "kts"
|
|
},
|
|
"30": {
|
|
"layer": 0,
|
|
"name": "Spectrum Width",
|
|
"res": 1.0,
|
|
"mnemo": "SW",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 30,
|
|
"unit": "kts"
|
|
},
|
|
"31": {
|
|
"layer": 0,
|
|
"name": "User Select Precip",
|
|
"res": 2.0,
|
|
"mnemo": "USP",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 31,
|
|
"unit": "in"
|
|
},
|
|
"32": {
|
|
"layer": 0,
|
|
"name": "Digital Hybrid Scan Refl",
|
|
"res": 1.0,
|
|
"mnemo": "DHR",
|
|
"ctable": ['NWSStormClearReflectivity', -20., 0.5],
|
|
"scale": [-32.0, 94.5],
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 32,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"33": {
|
|
"layer": 0,
|
|
"name": "Hybrid Scan Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "HSR",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 33,
|
|
"unit": "dBZ"
|
|
},
|
|
"34": {
|
|
"layer": 0,
|
|
"name": "Clutter Filter Control",
|
|
"res": 1.0,
|
|
"mnemo": "CFC",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 34,
|
|
"unit": ""
|
|
},
|
|
"35": {
|
|
"layer": 0,
|
|
"name": "Composite Refl",
|
|
"res": 1.0,
|
|
"mnemo": "CZ",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 35,
|
|
"unit": "dBZ"
|
|
},
|
|
"36": {
|
|
"layer": 0,
|
|
"name": "Composite Refl",
|
|
"res": 4.0,
|
|
"mnemo": "CZ",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 36,
|
|
"unit": "dBZ"
|
|
},
|
|
"37": {
|
|
"layer": 0,
|
|
"name": "Composite Refl",
|
|
"res": 1.0,
|
|
"mnemo": "CZ",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 37,
|
|
"unit": "dBZ"
|
|
},
|
|
"38": {
|
|
"layer": 0,
|
|
"name": "Composite Refl",
|
|
"res": 4.0,
|
|
"mnemo": "CZ",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 38,
|
|
"unit": "dBZ"
|
|
},
|
|
"41": {
|
|
"layer": 0,
|
|
"name": "Echo Tops",
|
|
"res": 4.0,
|
|
"mnemo": "ET",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 41,
|
|
"unit": "ft*1000"
|
|
},
|
|
"43": {
|
|
"layer": 0,
|
|
"name": "Svr Wx Analysis - Ref",
|
|
"res": 1.0,
|
|
"mnemo": "SWR",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 43,
|
|
"unit": ""
|
|
},
|
|
"44": {
|
|
"layer": 0,
|
|
"name": "Svr Wx Analysis - Vel",
|
|
"res": 0.25,
|
|
"mnemo": "SWV",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 44,
|
|
"unit": ""
|
|
},
|
|
"45": {
|
|
"layer": 0,
|
|
"name": "Svr Wx Analysis - SW",
|
|
"res": 0.25,
|
|
"mnemo": "SWW",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 45,
|
|
"unit": ""
|
|
},
|
|
"46": {
|
|
"layer": 0,
|
|
"name": "Svr Wx Analysis - Shear",
|
|
"res": 0.5,
|
|
"mnemo": "SWS",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 46,
|
|
"unit": ""
|
|
},
|
|
"47": {
|
|
"layer": 0,
|
|
"name": "Severe Wx Prob",
|
|
"res": 4.0,
|
|
"mnemo": "SWP",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 47,
|
|
"unit": ""
|
|
},
|
|
"48": {
|
|
"layer": 0,
|
|
"name": "VAD Wind Profile",
|
|
"res": 0.0,
|
|
"mnemo": "VWP",
|
|
"range": 0,
|
|
"lvls": 8,
|
|
"id": 48,
|
|
"unit": "kts"
|
|
},
|
|
"50": {
|
|
"layer": 0,
|
|
"name": "Ref X-Sect",
|
|
"res": 1.0,
|
|
"mnemo": "RCS",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 50,
|
|
"unit": "dBZ"
|
|
},
|
|
"51": {
|
|
"layer": 0,
|
|
"name": "Vel X-Sect",
|
|
"res": 0.5,
|
|
"mnemo": "VCS",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 51,
|
|
"unit": "kts"
|
|
},
|
|
"55": {
|
|
"layer": 0,
|
|
"name": "Storm Rel Vel Region",
|
|
"res": 0.5,
|
|
"mnemo": "SRR",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 55,
|
|
"unit": "kts"
|
|
},
|
|
"56": {
|
|
"layer": 0,
|
|
"name": "Storm Rel Velocity",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"res": 1.0,
|
|
"mnemo": "SRM",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 56,
|
|
"unit": "kts"
|
|
},
|
|
"57": {
|
|
"layer": 0,
|
|
"name": "Vert Integ Liq",
|
|
"res": 4.0,
|
|
"mnemo": "VIL",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 57,
|
|
"unit": "kg/m\u00b2"
|
|
},
|
|
"58": {
|
|
"layer": 0,
|
|
"name": "Storm Track",
|
|
"res": 0.0,
|
|
"mnemo": "STI",
|
|
"range": 345,
|
|
"lvls": 0,
|
|
"id": 58,
|
|
"unit": ""
|
|
},
|
|
"59": {
|
|
"layer": 0,
|
|
"name": "Hail Index",
|
|
"res": 0.0,
|
|
"mnemo": "HI",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 59,
|
|
"unit": ""
|
|
},
|
|
"60": {
|
|
"layer": 0,
|
|
"name": "Legacy Meso",
|
|
"res": 0.0,
|
|
"mnemo": "M",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 60,
|
|
"unit": ""
|
|
},
|
|
"61": {
|
|
"layer": 0,
|
|
"name": "Tornadic Vortex Sig",
|
|
"res": 0.0,
|
|
"mnemo": "TVS",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 61,
|
|
"unit": ""
|
|
},
|
|
"62": {
|
|
"layer": 0,
|
|
"name": "Storm Structure",
|
|
"res": 0.0,
|
|
"mnemo": "SS",
|
|
"range": 460,
|
|
"lvls": 0,
|
|
"id": 62,
|
|
"unit": ""
|
|
},
|
|
"65": {
|
|
"layer": 1,
|
|
"name": "Layer 1 Max Refl",
|
|
"res": 4.0,
|
|
"mnemo": "LRM",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 65,
|
|
"unit": "dBZ"
|
|
},
|
|
"66": {
|
|
"layer": 2,
|
|
"name": "Lyr 2 Comp Ref Max",
|
|
"res": 4.0,
|
|
"mnemo": "LRM",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 66,
|
|
"unit": "dBZ"
|
|
},
|
|
"67": {
|
|
"layer": 1,
|
|
"name": "Lyr 1 Comp Ref Max",
|
|
"res": 4.0,
|
|
"mnemo": "APR",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 67,
|
|
"unit": "dBZ"
|
|
},
|
|
"74": {
|
|
"layer": 0,
|
|
"name": "Radar Coded Message",
|
|
"res": 0.0,
|
|
"mnemo": "RCM",
|
|
"range": 460,
|
|
"lvls": 0,
|
|
"id": 74,
|
|
"unit": ""
|
|
},
|
|
"75": {
|
|
"layer": 0,
|
|
"name": "Free Text Message",
|
|
"res": 0.0,
|
|
"mnemo": "FTM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 75,
|
|
"unit": ""
|
|
},
|
|
"77": {
|
|
"layer": 0,
|
|
"name": "PUP Text Message",
|
|
"res": 0.0,
|
|
"mnemo": "PTM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 77,
|
|
"unit": ""
|
|
},
|
|
"78": {
|
|
"layer": 0,
|
|
"name": "One Hour Precip",
|
|
"res": 2.0,
|
|
"mnemo": "OHP",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 78,
|
|
"unit": "in"
|
|
},
|
|
"79": {
|
|
"layer": 0,
|
|
"name": "Three Hour Precip",
|
|
"res": 2.0,
|
|
"mnemo": "THP",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 79,
|
|
"unit": "in"
|
|
},
|
|
"80": {
|
|
"layer": 0,
|
|
"name": "Storm Total Precip",
|
|
"res": 2.0,
|
|
"mnemo": "STP",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 80,
|
|
"unit": "in"
|
|
},
|
|
"81": {
|
|
"layer": 0,
|
|
"name": "Digital Precip Array",
|
|
"res": 4.0,
|
|
"mnemo": "DPA",
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 81,
|
|
"unit": ""
|
|
},
|
|
"82": {
|
|
"layer": 0,
|
|
"name": "Supplemental Precip Data",
|
|
"res": 40.0,
|
|
"mnemo": "SPD",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 82,
|
|
"unit": ""
|
|
},
|
|
"83": {
|
|
"layer": 0,
|
|
"name": "Intermediate Radar Message",
|
|
"res": 0.0,
|
|
"mnemo": "IRM",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 83,
|
|
"unit": ""
|
|
},
|
|
"84": {
|
|
"layer": 0,
|
|
"name": "Velocity Azimuth Disp",
|
|
"res": 0.0,
|
|
"mnemo": "VAD",
|
|
"range": 0,
|
|
"lvls": 8,
|
|
"id": 84,
|
|
"unit": "dBZ"
|
|
},
|
|
"85": {
|
|
"layer": 0,
|
|
"name": "Ref X-Sect",
|
|
"res": 1.0,
|
|
"mnemo": "RCS",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 85,
|
|
"unit": "dBZ"
|
|
},
|
|
"86": {
|
|
"layer": 0,
|
|
"name": "Vel X-Sect",
|
|
"res": 0.5,
|
|
"mnemo": "VCS",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 86,
|
|
"unit": "kts"
|
|
},
|
|
"87": {
|
|
"layer": 0,
|
|
"name": "Combined Shear",
|
|
"res": 2.0,
|
|
"mnemo": "CS",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 87,
|
|
"unit": ""
|
|
},
|
|
"90": {
|
|
"layer": 3,
|
|
"name": "Lyr 3 Comp Ref Max",
|
|
"res": 4.0,
|
|
"mnemo": "LRM",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 90,
|
|
"unit": "dBZ"
|
|
},
|
|
"93": {
|
|
"layer": 0,
|
|
"name": "ITWS Digital Velocity",
|
|
"res": 1.0,
|
|
"mnemo": "DBV",
|
|
"range": 115,
|
|
"lvls": 256,
|
|
"id": 93,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"94": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"ctable": ['NWSStormClearReflectivity', -20., 0.5],
|
|
"scale": [-32.0, 94.5],
|
|
"lvls": 256,
|
|
"id": 94,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"95": {
|
|
"layer": 0,
|
|
"name": "Comp Refl Edited for AP",
|
|
"res": 1.0,
|
|
"mnemo": "CZE",
|
|
"range": 230,
|
|
"lvls": 8,
|
|
"id": 95,
|
|
"unit": "dBZ"
|
|
},
|
|
"96": {
|
|
"layer": 0,
|
|
"name": "Comp Refl Edited for AP",
|
|
"res": 4.0,
|
|
"mnemo": "CZE",
|
|
"range": 460,
|
|
"lvls": 8,
|
|
"id": 96,
|
|
"unit": "dBZ"
|
|
},
|
|
"97": {
|
|
"layer": 0,
|
|
"name": "Comp Refl Edited for AP",
|
|
"res": 1.0,
|
|
"mnemo": "CZE",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 97,
|
|
"unit": "dBZ"
|
|
},
|
|
"98": {
|
|
"layer": 0,
|
|
"name": "Comp Refl Edited for AP",
|
|
"res": 4.0,
|
|
"mnemo": "CZE",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 98,
|
|
"unit": "dBZ"
|
|
},
|
|
"99": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"res": 0.25,
|
|
"mnemo": "V",
|
|
"range": 300,
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [-100, 100],
|
|
"lvls": 256,
|
|
"id": 99,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"100": {
|
|
"layer": 0,
|
|
"name": "VAD Site Adapt Params",
|
|
"res": 0.0,
|
|
"mnemo": "VSDT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 100,
|
|
"unit": ""
|
|
},
|
|
"101": {
|
|
"layer": 0,
|
|
"name": "Storm Track Alpha block",
|
|
"res": 0.0,
|
|
"mnemo": "STIT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 101,
|
|
"unit": ""
|
|
},
|
|
"102": {
|
|
"layer": 0,
|
|
"name": "Hail Index Alpha block",
|
|
"res": 0.0,
|
|
"mnemo": "HIT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 102,
|
|
"unit": ""
|
|
},
|
|
"103": {
|
|
"layer": 0,
|
|
"name": "Mesocyclone Alpha block",
|
|
"res": 0.0,
|
|
"mnemo": "MT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 103,
|
|
"unit": ""
|
|
},
|
|
"104": {
|
|
"layer": 0,
|
|
"name": "TVS Alpha block",
|
|
"res": 0.0,
|
|
"mnemo": "TVST",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 104,
|
|
"unit": ""
|
|
},
|
|
"105": {
|
|
"layer": 0,
|
|
"name": "Combined Shear Params",
|
|
"res": 0.0,
|
|
"mnemo": "CST",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 105,
|
|
"unit": ""
|
|
},
|
|
"107": {
|
|
"layer": 0,
|
|
"name": "1hr Rainfall Params",
|
|
"res": 0.0,
|
|
"mnemo": "OHPT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 107,
|
|
"unit": ""
|
|
},
|
|
"108": {
|
|
"layer": 0,
|
|
"name": "3hr Rainfall Params",
|
|
"res": 0.0,
|
|
"mnemo": "THPT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 108,
|
|
"unit": ""
|
|
},
|
|
"109": {
|
|
"layer": 0,
|
|
"name": "Storm Total Params",
|
|
"res": 0.0,
|
|
"mnemo": "STPT",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 109,
|
|
"unit": ""
|
|
},
|
|
"132": {
|
|
"layer": 0,
|
|
"name": "Clutter Likelihood Refl",
|
|
"res": 1.0,
|
|
"mnemo": "CLR",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 132,
|
|
"unit": "%"
|
|
},
|
|
"133": {
|
|
"layer": 0,
|
|
"name": "Clutter Likelihood Dopp",
|
|
"res": 1.0,
|
|
"mnemo": "CLD",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 133,
|
|
"unit": "%"
|
|
},
|
|
"134": {
|
|
"layer": 0,
|
|
"name": "Digital Vert Integ Liq",
|
|
"res": 1.0,
|
|
"mnemo": "DVL",
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 134,
|
|
"unit": "kg/m\u00b2"
|
|
},
|
|
"135": {
|
|
"layer": 0,
|
|
"name": "Enhanced Echo Tops",
|
|
"res": 1.0,
|
|
"mnemo": "EET",
|
|
"ctable": ['NWSEnhancedEchoTops', 2, 1],
|
|
"scale": [0, 255],
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 135,
|
|
"unit": "ft*1000"
|
|
},
|
|
"136": {
|
|
"layer": 0,
|
|
"name": "SuperOb",
|
|
"res": 4.0,
|
|
"mnemo": "SO",
|
|
"range": 0,
|
|
"lvls": 256,
|
|
"id": 136,
|
|
"unit": ""
|
|
},
|
|
"137": {
|
|
"layer": 9,
|
|
"name": "User Selectable Lyr Refl",
|
|
"res": 1.0,
|
|
"mnemo": "ULR",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 137,
|
|
"unit": "dBZ"
|
|
},
|
|
"138": {
|
|
"layer": 0,
|
|
"name": "Storm Total Precip",
|
|
"res": 2.0,
|
|
"mnemo": "STP",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 10],
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 138,
|
|
"unit": "in/100"
|
|
},
|
|
"139": {
|
|
"layer": 0,
|
|
"name": "Rapid Update Mesocyclone",
|
|
"res": 0.0,
|
|
"mnemo": "MRU",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 139,
|
|
"unit": ""
|
|
},
|
|
"140": {
|
|
"layer": 0,
|
|
"name": "Gust Front MIGFA",
|
|
"res": 0.0,
|
|
"mnemo": "GFM",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 140,
|
|
"unit": ""
|
|
},
|
|
"141": {
|
|
"layer": 0,
|
|
"name": "Mesocyclone",
|
|
"res": 0.0,
|
|
"mnemo": "MD",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 141,
|
|
"unit": ""
|
|
},
|
|
"143": {
|
|
"layer": 0,
|
|
"name": "TVS Rapid Update",
|
|
"res": 0.0,
|
|
"mnemo": "TRU",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 143,
|
|
"unit": ""
|
|
},
|
|
"144": {
|
|
"layer": 0,
|
|
"name": "1-Hour Snow-Water Equiv",
|
|
"res": 1.0,
|
|
"mnemo": "OSW",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 144,
|
|
"unit": "in"
|
|
},
|
|
"145": {
|
|
"layer": 0,
|
|
"name": "1-Hour Snow Depth",
|
|
"res": 1.0,
|
|
"mnemo": "OSD",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 145,
|
|
"unit": "in"
|
|
},
|
|
"146": {
|
|
"layer": 0,
|
|
"name": "Storm Tot Snow-Water Equiv",
|
|
"res": 1.0,
|
|
"mnemo": "SSW",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 146,
|
|
"unit": "in"
|
|
},
|
|
"147": {
|
|
"layer": 0,
|
|
"name": "Storm Tot Snow Depth",
|
|
"res": 1.0,
|
|
"mnemo": "SSD",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 147,
|
|
"unit": "in"
|
|
},
|
|
"149": {
|
|
"layer": 0,
|
|
"name": "Digital Mesocyclone Data",
|
|
"res": 0.0,
|
|
"mnemo": "DMD",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 149,
|
|
"unit": ""
|
|
},
|
|
"150": {
|
|
"layer": 0,
|
|
"name": "User Sel Snow-Water Equiv",
|
|
"res": 1.0,
|
|
"mnemo": "USW",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 150,
|
|
"unit": "in"
|
|
},
|
|
"151": {
|
|
"layer": 0,
|
|
"name": "User Sel Snow Depth",
|
|
"res": 1.0,
|
|
"mnemo": "USD",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 151,
|
|
"unit": "in"
|
|
},
|
|
"152": {
|
|
"layer": 0,
|
|
"name": "RPG System Status",
|
|
"res": 0.0,
|
|
"mnemo": "RSS",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 152,
|
|
"unit": ""
|
|
},
|
|
"153": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 0.25,
|
|
"mnemo": "HZ",
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 153,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"154": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"res": 0.25,
|
|
"mnemo": "HV",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 154,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"155": {
|
|
"layer": 0,
|
|
"name": "Spec Width",
|
|
"res": 0.25,
|
|
"mnemo": "HSW",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 155,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"158": {
|
|
"layer": 0,
|
|
"name": "Diff Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "ZDR",
|
|
"range": 230,
|
|
"ctable": ['NWSStormClearReflectivity', -4.0, 5.0],
|
|
"lvls": 16,
|
|
"id": 158,
|
|
"unit": "dB"
|
|
},
|
|
"159": {
|
|
"layer": 0,
|
|
"name": "Diff Reflectivity",
|
|
"res": 0.25,
|
|
"mnemo": "ZDR",
|
|
"range": 300,
|
|
"ctable": ['NWSStormClearReflectivity', -4.0, 5.0],
|
|
"lvls": 256,
|
|
"id": 159,
|
|
"unit": "dB"
|
|
},
|
|
"160": {
|
|
"layer": 0,
|
|
"name": "Correlation Coeff",
|
|
"res": 1.0,
|
|
"mnemo": "CC",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 160,
|
|
"unit": ""
|
|
},
|
|
"161": {
|
|
"layer": 0,
|
|
"name": "Correlation Coeff",
|
|
"res": 0.25,
|
|
"mnemo": "CC",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 161,
|
|
"unit": ""
|
|
},
|
|
"162": {
|
|
"layer": 0,
|
|
"name": "Specific Diff Phase",
|
|
"res": 1.0,
|
|
"mnemo": "KDP",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 162,
|
|
"unit": "deg/km"
|
|
},
|
|
"163": {
|
|
"layer": 0,
|
|
"name": "Specific Diff Phase",
|
|
"res": 0.25,
|
|
"mnemo": "KDP",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 163,
|
|
"unit": "deg/km"
|
|
},
|
|
"164": {
|
|
"layer": 0,
|
|
"name": "Hydrometeor Class",
|
|
"res": 1.0,
|
|
"mnemo": "HC",
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 164,
|
|
"unit": ""
|
|
},
|
|
"165": {
|
|
"layer": 0,
|
|
"name": "Hydrometeor Class",
|
|
"res": 0.25,
|
|
"mnemo": "HC",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 165,
|
|
"unit": "/10"
|
|
},
|
|
"166": {
|
|
"layer": 0,
|
|
"name": "Melting Layer",
|
|
"res": 0.0,
|
|
"mnemo": "ML",
|
|
"range": 230,
|
|
"lvls": 0,
|
|
"id": 166,
|
|
"unit": ""
|
|
},
|
|
"167": {
|
|
"layer": 0,
|
|
"name": "Raw CC",
|
|
"res": 0.25,
|
|
"mnemo": "SDC",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 167,
|
|
"unit": ""
|
|
},
|
|
"168": {
|
|
"layer": 0,
|
|
"name": "Raw PHIDP",
|
|
"res": 0.25,
|
|
"mnemo": "SDP",
|
|
"range": 300,
|
|
"lvls": 256,
|
|
"id": 168,
|
|
"unit": "deg"
|
|
},
|
|
"169": {
|
|
"layer": 0,
|
|
"name": "One Hour Accum",
|
|
"res": 2.0,
|
|
"mnemo": "OHA",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 10],
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 169,
|
|
"unit": "in"
|
|
},
|
|
"170": {
|
|
"layer": 0,
|
|
"name": "One Hour Unbiased Accum",
|
|
"res": 0.25,
|
|
"mnemo": "DAA",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 10],
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 170,
|
|
"unit": "in/100"
|
|
},
|
|
"171": {
|
|
"layer": 0,
|
|
"name": "Storm Total Accum",
|
|
"res": 2.0,
|
|
"mnemo": "STA",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 30],
|
|
"range": 230,
|
|
"lvls": 16,
|
|
"id": 171,
|
|
"unit": "in"
|
|
},
|
|
"172": {
|
|
"layer": 0,
|
|
"name": "Storm Total Accum",
|
|
"res": 0.25,
|
|
"mnemo": "STA",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 30],
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 172,
|
|
"unit": "in/100"
|
|
},
|
|
"173": {
|
|
"layer": 0,
|
|
"name": "User Select Accum",
|
|
"res": 0.25,
|
|
"mnemo": "DUA",
|
|
"ctable": ['NWSStormClearReflectivity', -100., 1.],
|
|
"scale": [0, 30],
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 173,
|
|
"unit": "in/100"
|
|
},
|
|
"174": {
|
|
"layer": 0,
|
|
"name": "One Hour Diff",
|
|
"res": 0.25,
|
|
"mnemo": "DOD",
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 174,
|
|
"unit": "in/100"
|
|
},
|
|
"175": {
|
|
"layer": 0,
|
|
"name": "Storm Total Diff",
|
|
"res": 0.25,
|
|
"mnemo": "DSD",
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 175,
|
|
"unit": "in/100"
|
|
},
|
|
"176": {
|
|
"layer": 0,
|
|
"name": "Digital Inst Precip Rate",
|
|
"res": 0.25,
|
|
"mnemo": "DPR",
|
|
"ctable": ['NWS8bitVel', -100., 1.],
|
|
"scale": [0, 16],
|
|
"range": 230,
|
|
"lvls": 65536,
|
|
"id": 176,
|
|
"unit": "in/h"
|
|
},
|
|
"177": {
|
|
"layer": 0,
|
|
"name": "Hybrid Hydrometeor Class",
|
|
"res": 0.25,
|
|
"mnemo": "HHC",
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 177,
|
|
"unit": "/10"
|
|
},
|
|
"180": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 0.15,
|
|
"mnemo": "Z",
|
|
"range": 90,
|
|
"lvls": 256,
|
|
"id": 180,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"181": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 0.15,
|
|
"mnemo": "Z",
|
|
"range": 90,
|
|
"lvls": 16,
|
|
"id": 181,
|
|
"unit": "dBZ"
|
|
},
|
|
"182": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"res": 0.15,
|
|
"mnemo": "V",
|
|
"range": 90,
|
|
"lvls": 256,
|
|
"id": 182,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"183": {
|
|
"layer": 0,
|
|
"name": "Velocity",
|
|
"res": 0.15,
|
|
"mnemo": "V",
|
|
"range": 90,
|
|
"lvls": 16,
|
|
"id": 183,
|
|
"unit": "kts"
|
|
},
|
|
"184": {
|
|
"layer": 0,
|
|
"name": "Spec Width",
|
|
"res": 0.15,
|
|
"mnemo": "SW",
|
|
"range": 90,
|
|
"lvls": 256,
|
|
"id": 184,
|
|
"unit": "(m/s)/10"
|
|
},
|
|
"185": {
|
|
"layer": 0,
|
|
"name": "Spectrum Width",
|
|
"res": 0.15,
|
|
"mnemo": "SW",
|
|
"range": 90,
|
|
"lvls": 8,
|
|
"id": 185,
|
|
"unit": "kts"
|
|
},
|
|
"186": {
|
|
"layer": 0,
|
|
"name": "Long Range Refl",
|
|
"res": 0.3,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 186,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"187": {
|
|
"layer": 0,
|
|
"name": "Long Range Refl",
|
|
"res": 0.3,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 16,
|
|
"id": 187,
|
|
"unit": "dBZ"
|
|
},
|
|
"196": {
|
|
"layer": 0,
|
|
"name": "Microburst AMDA",
|
|
"res": 0.0,
|
|
"mnemo": "MBA",
|
|
"range": 50,
|
|
"lvls": 0,
|
|
"id": 196,
|
|
"unit": ""
|
|
},
|
|
"202": {
|
|
"layer": 0,
|
|
"name": "Shift Change Checklist",
|
|
"res": 0.0,
|
|
"mnemo": "SCC",
|
|
"range": 0,
|
|
"lvls": 0,
|
|
"id": 202,
|
|
"unit": ""
|
|
},
|
|
"550": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 0.926,
|
|
"mnemo": "Z",
|
|
"range": 111,
|
|
"lvls": 8,
|
|
"id": 550,
|
|
"unit": "dBZ"
|
|
},
|
|
"300": {
|
|
"layer": 0,
|
|
"name": "Level II Reflectivity",
|
|
"res": 1.0,
|
|
"mnemo": "Z",
|
|
"range": 460,
|
|
"lvls": 256,
|
|
"id": 300,
|
|
"unit": "dBZ/10"
|
|
},
|
|
"301": {
|
|
"layer": 0,
|
|
"name": "Level II Velocity",
|
|
"res": 0.25,
|
|
"mnemo": "V",
|
|
"range": 230,
|
|
"lvls": 256,
|
|
"id": 301,
|
|
"unit": "kts"
|
|
},
|
|
"500": {
|
|
"layer": 0,
|
|
"name": "Reflectivity",
|
|
"res": 0.463,
|
|
"mnemo": "Z",
|
|
"range": 463,
|
|
"lvls": 8,
|
|
"id": 500,
|
|
"unit": "dBZ"
|
|
}
|
|
}
|
|
|
|
#
|
|
# Dictionary that maps VTEC codes to headlines
|
|
# Modified from com.raytheon.uf.edex.activetable/utility/common_static/base/vtec/VTECTable.py
|
|
# Colornames from:
|
|
# 1) https://www.weather.gov/bro/mapcolors
|
|
# 2) https://digital.weather.gov/staticpages/definitions.php
|
|
# 3) https://www.w3schools.com/colors/colors_names.asp
|
|
#
|
|
vtec = {
|
|
'AF.W' : {'phen': 'AF',
|
|
'sig': 'W',
|
|
'color': 'gray',
|
|
'hdln': 'Ashfall Warning'},
|
|
'AF.Y' : {'phen': 'AF',
|
|
'sig': 'Y',
|
|
'color': 'gray',
|
|
'hdln': 'Ashfall Advisory'},
|
|
'AQ.Y' : {'phen': 'AQ',
|
|
'sig': 'Y',
|
|
'color': 'gray',
|
|
'hdln': 'Air Quality Alert'},
|
|
'AS.O' : {'phen': 'AS',
|
|
'sig': 'O',
|
|
'color': 'gray',
|
|
'hdln': 'Air Stagnation Outlook'},
|
|
'AS.Y' : {'phen': 'AS',
|
|
'sig': 'Y',
|
|
'color': 'gray',
|
|
'hdln': 'Air Stagnation Advisory'},
|
|
'BH.S' : {'phen': 'BH',
|
|
'sig': 'S',
|
|
'color': 'turquoise',
|
|
'hdln': 'Beach Hazards Statement'},
|
|
'BW.Y' : {'phen': 'BW',
|
|
'sig': 'Y',
|
|
'color': 'thistle',
|
|
'hdln': 'Brisk Wind Advisory'},
|
|
'BZ.A' : {'phen' : 'BZ',
|
|
'sig' : 'A',
|
|
'color': 'greenyellow',
|
|
'hdln' : 'Blizzard Watch'},
|
|
'BZ.W' : {'phen' : 'BZ',
|
|
'sig' : 'W',
|
|
'color': 'orangered',
|
|
'hdln' : 'Blizzard Warning'},
|
|
'CF.A' : {'phen': 'CF',
|
|
'sig': 'A',
|
|
'color': 'mediumaquamarine',
|
|
'hdln': 'Coastal Flood Watch'},
|
|
'CF.W' : {'phen': 'CF',
|
|
'sig': 'W',
|
|
'color': 'forestgreen',
|
|
'hdln': 'Coastal Flood Warning'},
|
|
'CF.Y' : {'phen': 'CF',
|
|
'sig': 'Y',
|
|
'color': 'lawngreen',
|
|
'hdln': 'Coastal Flood Advisory'},
|
|
'CF.S' : {'phen': 'CF',
|
|
'sig': 'S',
|
|
'color': 'olivedrab',
|
|
'hdln': 'Coastal Flood Statement'},
|
|
'DS.W' : {'phen': 'DS',
|
|
'sig': 'W',
|
|
'color': 'bisque',
|
|
'hdln': 'Dust Storm Warning'},
|
|
'DS.Y' : {'phen': 'DS',
|
|
'sig': 'Y',
|
|
'color': 'darkkhaki',
|
|
'hdln': 'Dust Advisory'},
|
|
'DU.Y' : {'phen': 'DU',
|
|
'sig': 'Y',
|
|
'color': 'darkkhaki',
|
|
'hdln': 'Blowing Dust Advisory'},
|
|
'EC.A' : {'phen': 'EC',
|
|
'sig': 'A',
|
|
'color': 'blue',
|
|
'hdln': 'Extreme Cold Watch'},
|
|
'EC.W' : {'phen': 'EC',
|
|
'sig': 'W',
|
|
'color': 'blue',
|
|
'hdln': 'Extreme Cold Warning'},
|
|
'EH.A' : {'phen': 'EH',
|
|
'sig': 'A',
|
|
'color': 'maroon',
|
|
'hdln': 'Excessive Heat Watch'},
|
|
'EH.W' : {'phen': 'EH',
|
|
'sig': 'W',
|
|
'color': 'mediumvioletred',
|
|
'hdln': 'Excessive Heat Warning'},
|
|
'EW.W' : {'phen': 'EW',
|
|
'sig': 'W',
|
|
'color': 'deeppink',
|
|
'hdln': 'Excessive Wind Warning'},
|
|
'FA.A' : {'phen': 'FA',
|
|
'sig': 'A',
|
|
'color': 'seagreen',
|
|
'hdln': 'Flood Watch'},
|
|
'FA.W' : {'phen': 'FA',
|
|
'sig': 'W',
|
|
'color': 'seagreen',
|
|
'hdln': 'Areal Flood Warning'},
|
|
'FA.Y' : {'phen': 'FA',
|
|
'sig': 'Y',
|
|
'color': 'seagreen',
|
|
'hdln': 'Areal Flood Advisory'},
|
|
'FF.A' : {'phen': 'FF',
|
|
'sig': 'A',
|
|
'color': 'limegreen',
|
|
'hdln': 'Flash Flood Watch'},
|
|
'FF.S' : {'phen': 'FF',
|
|
'sig': 'S',
|
|
'color': 'yellowgreen',
|
|
'hdln': 'Flash Flood Statement'},
|
|
'FF.W' : {'phen': 'FF',
|
|
'sig': 'W',
|
|
'color': 'darkred',
|
|
'hdln': 'Flash Flood Warning'},
|
|
'FG.Y' : {'phen': 'FG',
|
|
'sig': 'Y',
|
|
'color': 'slategray',
|
|
'hdln': 'Dense Fog Advisory'},
|
|
'FL.A' : {'phen': 'FL',
|
|
'sig': 'A',
|
|
'color': 'seagreen',
|
|
'hdln': 'Flood Watch'},
|
|
'FL.W' : {'phen': 'FL',
|
|
'sig': 'W',
|
|
'color': 'green',
|
|
'hdln': 'Flood Warning'},
|
|
'HY.S' : {'phen': 'FL',
|
|
'sig': 'S',
|
|
'color': '#00ff7f',
|
|
'hdln': 'Hydrological Statement'},
|
|
'FL.S' : {'phen': 'FL',
|
|
'sig': 'S',
|
|
'color': '#00ff7f',
|
|
'hdln': 'Flood Statement'},
|
|
'FL.Y' : {'phen': 'FL',
|
|
'sig': 'Y',
|
|
'color': '#00ff7f',
|
|
'hdln': 'Flood Advisory'},
|
|
'FR.Y' : {'phen': 'FR',
|
|
'sig': 'Y',
|
|
'color': 'cornflowerblue',
|
|
'hdln': 'Frost Advisory'},
|
|
'FW.A' : {'phen': 'FW',
|
|
'sig': 'A',
|
|
'color': 'navajowhite',
|
|
'hdln': 'Fire Weather Watch'},
|
|
'FW.W' : {'phen': 'FW',
|
|
'sig': 'W',
|
|
'color': 'deeppink',
|
|
'hdln': 'Red Flag Warning'},
|
|
'FZ.A' : {'phen': 'FZ',
|
|
'sig': 'A',
|
|
'color': 'royalblue',
|
|
'hdln': 'Freeze Watch'},
|
|
'FZ.W' : {'phen': 'FZ',
|
|
'sig': 'W',
|
|
'color': 'cyan',
|
|
'hdln': 'Freeze Warning'},
|
|
'GL.A' : {'phen': 'GL',
|
|
'sig': 'A',
|
|
'color': 'pink',
|
|
'hdln': 'Gale Watch'},
|
|
'GL.W' : {'phen': 'GL',
|
|
'sig': 'W',
|
|
'color': '#dda0dd',
|
|
'hdln': 'Gale Warning'},
|
|
'HF.A' : {'phen': 'HF',
|
|
'sig': 'A',
|
|
'color': 'darkorchid',
|
|
'hdln': 'Hurricane Force Wind Watch'},
|
|
'HF.W' : {'phen': 'HF',
|
|
'sig': 'W',
|
|
'color': '#cd5c5c',
|
|
'hdln': 'Hurricane Force Wind Warning'},
|
|
'HT.Y' : {'phen': 'HT',
|
|
'sig': 'Y',
|
|
'color': '#ff7f4e',
|
|
'hdln': 'Heat Advisory'},
|
|
'HU.A' : {'phen': 'HU',
|
|
'sig': 'A',
|
|
'color': '#ff00ff',
|
|
'hdln': 'Hurricane Watch'},
|
|
'HU.S' : {'phen': 'HU',
|
|
'sig': 'S',
|
|
'color': 'yellow',
|
|
'hdln': 'Hurricane Statement'},
|
|
'HU.W' : {'phen': 'HU',
|
|
'sig': 'W',
|
|
'color': '#dc143c',
|
|
'hdln': 'Hurricane Warning'},
|
|
'HW.A' : {'phen': 'HW',
|
|
'sig': 'A',
|
|
'color': 'darkgoldenrod',
|
|
'hdln': 'High Wind Watch'},
|
|
'HW.W' : {'phen': 'HW',
|
|
'sig': 'W',
|
|
'color': 'goldenrod',
|
|
'hdln': 'High Wind Warning'},
|
|
'HZ.A' : {'phen': 'HZ',
|
|
'sig': 'A',
|
|
'color': 'royalblue',
|
|
'hdln': 'Hard Freeze Watch'},
|
|
'HZ.W' : {'phen': 'HZ',
|
|
'sig': 'W',
|
|
'color': 'blue',
|
|
'hdln': 'Hard Freeze Warning'},
|
|
'IS.W' : {'phen': 'IS',
|
|
'sig': 'W',
|
|
'color': 'darkmagenta',
|
|
'hdln': 'Ice Storm Warning'},
|
|
'LE.A' : {'phen': 'LE',
|
|
'sig': 'A',
|
|
'color': 'LightSkyBlue',
|
|
'hdln': 'Lake Effect Snow Watch'},
|
|
'LE.W' : {'phen': 'LE',
|
|
'sig': 'W',
|
|
'color': 'DarkCyan',
|
|
'hdln': 'Lake Effect Snow Warning'},
|
|
'LE.Y' : {'phen': 'LE',
|
|
'sig': 'Y',
|
|
'color': 'MediumTurquoise',
|
|
'hdln': 'Lake Effect Snow Advisory'},
|
|
'LO.Y' : {'phen': 'LO',
|
|
'sig': 'Y',
|
|
'color': 'maroon',
|
|
'hdln': 'Low Water Advisory'},
|
|
'LS.A' : {'phen': 'LS',
|
|
'sig': 'A',
|
|
'color': 'MediumAquaMarine',
|
|
'hdln': 'Lakeshore Flood Watch'},
|
|
'LS.S' : {'phen': 'LS',
|
|
'sig': 'S',
|
|
'color': 'lawngreen',
|
|
'hdln': 'Lakeshore Flood Statement'},
|
|
'LS.W' : {'phen': 'LS',
|
|
'sig': 'W',
|
|
'color': 'forestgreen',
|
|
'hdln': 'Lakeshore Flood Warning'},
|
|
'LS.Y' : {'phen': 'LS',
|
|
'sig': 'Y',
|
|
'color': 'lawngreen',
|
|
'hdln': 'Lakeshore Flood Advisory'},
|
|
'LW.Y' : {'phen': 'LW',
|
|
'sig': 'Y',
|
|
'color': 'tan',
|
|
'hdln': 'Lake Wind Advisory'},
|
|
'MA.A' : {'phen': 'MA',
|
|
'sig': 'A',
|
|
'color': 'peachpuff',
|
|
'hdln': 'Special Marine Advisory'},
|
|
'MA.S' : {'phen': 'MA',
|
|
'sig': 'S',
|
|
'color': 'peachpuff',
|
|
'hdln': 'Special Marine Statement'},
|
|
'MA.W' : {'phen': 'MA',
|
|
'sig': 'W',
|
|
'color': 'palevioletred',
|
|
'hdln': 'Special Marine Warning'},
|
|
'MF.Y' : {'phen': 'MF',
|
|
'sig': 'Y',
|
|
'color': 'slategray',
|
|
'hdln': 'Dense Fog Advisory'}, # Marine Fog
|
|
'MH.W' : {'phen': 'MH',
|
|
'sig': 'W',
|
|
'color': 'darkgray',
|
|
'hdln': 'Ashfall Warning'}, # Marine Ashfall
|
|
'MH.Y' : {'phen': 'MH',
|
|
'sig': 'Y',
|
|
'color': 'dimgray',
|
|
'hdln': 'Ashfall Advisory'}, # Marine Ashfall
|
|
'MS.Y' : {'phen': 'MS',
|
|
'sig': 'Y',
|
|
'color': 'khaki',
|
|
'hdln': 'Dense Smoke Advisory'}, # Marine Smoke
|
|
'RB.Y' : {'phen': 'RB',
|
|
'sig': 'Y',
|
|
'color': 'thistle',
|
|
'hdln': 'Small Craft Advisory for rough bar'},
|
|
'RP.S' : {'phen': 'RP',
|
|
'sig' : 'S',
|
|
'color': 'turquoise',
|
|
'hdln': 'High Rip Current Risk'},
|
|
'SC.Y' : {'phen': 'SC',
|
|
'sig': 'Y',
|
|
'color': 'thistle',
|
|
'hdln': 'Small Craft Advisory'},
|
|
'SE.A' : {'phen': 'SE',
|
|
'sig': 'A',
|
|
'color': 'darkslateblue',
|
|
'hdln': 'Hazardous Seas Watch'},
|
|
'SE.W' : {'phen': 'SE',
|
|
'sig': 'W',
|
|
'color': 'thistle',
|
|
'hdln': 'Hazardous Seas Warning'},
|
|
'SI.Y' : {'phen': 'SI',
|
|
'sig': 'Y',
|
|
'color': 'thistle',
|
|
'hdln': 'Small Craft Advisory for winds'},
|
|
'SM.Y' : {'phen': 'SM',
|
|
'sig': 'Y',
|
|
'color': 'khaki',
|
|
'hdln': 'Dense Smoke Advisory'},
|
|
'SQ.W' : {'phen': 'SQ',
|
|
'sig': 'W',
|
|
'color': '#EF2B1C',
|
|
'hdln': 'Snow Squall Warning'},
|
|
'SR.A' : {'phen': 'SR',
|
|
'sig': 'A',
|
|
'color': 'violet',
|
|
'hdln': 'Storm Watch'},
|
|
'SR.W' : {'phen': 'SR',
|
|
'sig': 'W',
|
|
'color': 'darkorchid',
|
|
'hdln': 'Storm Warning'},
|
|
'SS.A' : {'phen': 'SS',
|
|
'sig': 'A',
|
|
'color': '#DB7FF7',
|
|
'hdln': 'Storm Surge Watch'},
|
|
'SS.W' : {'phen': 'SS',
|
|
'sig': 'W',
|
|
'color': '#B524F7',
|
|
'hdln': 'Storm Surge Warning'},
|
|
'SU.W' : {'phen': 'SU',
|
|
'sig': 'W',
|
|
'color': 'forestgreen',
|
|
'hdln': 'High Surf Warning'},
|
|
'SU.Y' : {'phen': 'SU',
|
|
'sig': 'Y',
|
|
'color': 'mediumorchid',
|
|
'hdln': 'High Surf Advisory'},
|
|
'SV.A' : {'phen': 'SV',
|
|
'sig': 'A',
|
|
'color': 'palevioletred',
|
|
'hdln': 'Severe Thunderstorm Watch'},
|
|
'SV.S' : {'phen': 'SV',
|
|
'sig': 'S',
|
|
'color': 'aqua',
|
|
'hdln': 'Severe Weather Statement'},
|
|
'SV.W' : {'phen': 'SV',
|
|
'sig': 'W',
|
|
'color': 'orange',
|
|
'hdln': 'Severe Thunderstorm Warning'},
|
|
'SW.Y' : {'phen': 'SW',
|
|
'sig': 'Y',
|
|
'color': 'thistle',
|
|
'hdln': 'Small Craft Advisory for hazardous seas'},
|
|
'TO.A' : {'phen': 'TO',
|
|
'sig': 'A',
|
|
'color': 'yellow',
|
|
'hdln': 'Tornado Watch'},
|
|
'TO.W' : {'phen': 'TO',
|
|
'sig': 'W',
|
|
'color': 'red',
|
|
'hdln': 'Tornado Warning'},
|
|
'TR.A' : {'phen': 'TR',
|
|
'sig': 'A',
|
|
'color': '#f08080',
|
|
'hdln': 'Tropical Storm Watch'},
|
|
'TR.W' : {'phen': 'TR',
|
|
'sig': 'W',
|
|
'color': '#b22222',
|
|
'hdln': 'Tropical Storm Warning'},
|
|
'TS.A' : {'phen': 'TS',
|
|
'sig': 'A',
|
|
'color': 'fuchsia',
|
|
'hdln': 'Tsunami Watch'},
|
|
'TS.W' : {'phen': 'TS',
|
|
'sig': 'W',
|
|
'color': '#FD6347',
|
|
'hdln': 'Tsunami Warning'},
|
|
'TS.Y' : {'phen': 'TS',
|
|
'sig': 'Y',
|
|
'color': 'chocolate',
|
|
'hdln': 'Tsunami Advisory'},
|
|
'TY.A' : {'phen': 'TY',
|
|
'sig': 'A',
|
|
'color': 'fuchsia',
|
|
'hdln': 'Typhoon Watch'},
|
|
'TY.W' : {'phen': 'TY',
|
|
'sig': 'W',
|
|
'color': '#FD6347',
|
|
'hdln': 'Typhoon Warning'},
|
|
'UP.A' : {'phen': 'UP',
|
|
'sig': 'A',
|
|
'color': 'RosyBrown',
|
|
'hdln': 'Heavy Freezing Spray Watch'},
|
|
'UP.W' : {'phen': 'UP',
|
|
'sig': 'W',
|
|
'color': '#00C0FF',
|
|
'hdln': 'Heavy Freezing Spray Warning'},
|
|
'UP.Y' : {'phen': 'UP',
|
|
'sig': 'Y',
|
|
'color': '#00C0FF',
|
|
'hdln': 'Freezing Spray Advisory'},
|
|
'WC.A' : {'phen': 'WC',
|
|
'sig': 'A',
|
|
'color': 'cadetblue',
|
|
'hdln': 'Wind Chill Watch'},
|
|
'WC.W' : {'phen': 'WC',
|
|
'sig': 'W',
|
|
'color': 'lightsteelblue',
|
|
'hdln': 'Wind Chill Warning'},
|
|
'WC.Y' : {'phen': 'WC',
|
|
'sig': 'Y',
|
|
'color': 'paleturquoise',
|
|
'hdln': 'Wind Chill Advisory'},
|
|
'WI.Y' : {'phen': 'WI',
|
|
'sig': 'Y',
|
|
'color': 'tan',
|
|
'hdln': 'Wind Advisory'},
|
|
'WS.A' : {'phen': 'WS',
|
|
'sig': 'A',
|
|
'color': '#4682b4',
|
|
'hdln': 'Winter Storm Watch'},
|
|
'WS.W' : {'phen': 'WS',
|
|
'sig': 'W',
|
|
'color': 'hotpink',
|
|
'hdln': 'Winter Storm Warning'},
|
|
'WW.Y' : {'phen': 'WW',
|
|
'sig': 'Y',
|
|
'color': '#7b68ee',
|
|
'hdln': 'Winter Weather Advisory'},
|
|
'ZF.Y' : {'phen': 'ZF',
|
|
'sig': 'Y',
|
|
'color': 'teal',
|
|
'hdln': 'Freezing Fog Advisory'},
|
|
'ZR.Y' : {'phen': 'ZR',
|
|
'sig': 'Y',
|
|
'color': 'orchid',
|
|
'hdln': 'Freezing Rain Advisory'},
|
|
}
|
|
|
|
#
|
|
# Upgrade Hazards Dictionary - upgradeHazardsDict is a dictionary of
|
|
# phen/sig combinations defining upgrades. Each key is the proposed hazard.
|
|
# The associated list are the hazards which are upgraded by the
|
|
# proposed hazard.
|
|
#
|
|
|
|
upgradeHazardsDict = {
|
|
'WC.W': ['WC.A', 'WC.Y'],
|
|
'WC.Y': ['WC.A'],
|
|
'BZ.W': ['WS.W', 'LE.W', 'ZR.Y', 'LE.Y', 'WW.Y',
|
|
'BZ.A', 'WS.A', 'LE.A'],
|
|
'IS.W': ['WS.W', 'LE.W', 'ZR.Y', 'LE.Y', 'WW.Y',
|
|
'BZ.A', 'WS.A', 'LE.A'],
|
|
'LE.W': ['ZR.Y', 'LE.Y', 'WW.Y',
|
|
'BZ.A', 'WS.A', 'LE.A'],
|
|
'WS.W': ['ZR.Y', 'LE.Y', 'WW.Y',
|
|
'BZ.A', 'WS.A', 'LE.A'],
|
|
'ZR.Y': ['BZ.A', 'WS.A', 'LE.A'],
|
|
'LE.Y': ['BZ.A', 'WS.A', 'LE.A'],
|
|
'WW.Y': ['BZ.A', 'WS.A', 'LE.A'],
|
|
'EH.W': ['EH.A', 'HT.Y'],
|
|
'HT.Y': ['EH.A'],
|
|
'FZ.W': ['FZ.A', 'FR.Y', 'HZ.A'],
|
|
'HZ.W': ['FZ.A', 'FR.Y', 'HZ.A'],
|
|
'FR.Y': ['FZ.A', 'HZ.A'],
|
|
'HW.W': ['DU.Y', 'LW.Y', 'WI.Y', 'HW.A'],
|
|
'DS.W': ['DU.Y', 'LW.Y', 'WI.Y', 'HW.A'],
|
|
'WI.Y': ['HW.A'],
|
|
'EC.W': ['EC.A'],
|
|
'FW.W': ['FW.A'],
|
|
'CF.W': ['CF.A', 'CF.Y'],
|
|
'CF.Y': ['CF.A'],
|
|
'LS.W': ['LS.A', 'LS.Y'],
|
|
'LS.Y': ['LS.A'],
|
|
'BW.Y': ['GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'RB.Y': ['GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'SC.Y': ['GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'SI.Y': ['GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'SW.Y': ['SE.A'],
|
|
'UP.Y': ['UP.A'],
|
|
'HF.W': ['SR.W', 'GL.W', 'SC.Y', 'SW.Y', 'BW.Y', 'SI.Y', 'RB.Y', 'GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'SR.W': ['GL.W', 'SC.Y', 'SW.Y', 'BW.Y', 'SI.Y', 'RB.Y', 'GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'GL.W': ['SC.Y', 'SW.Y', 'BW.Y', 'SI.Y', 'RB.Y', 'GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'SE.W': ['SC.Y', 'RB.Y', 'GL.A', 'SR.A', 'HF.A', 'SE.A'],
|
|
'UP.W': ['UP.Y', 'UP.A'],
|
|
'SU.W': ['SU.Y'],
|
|
'SS.W': ['SS.A'],
|
|
'HU.W': ['HU.A', 'TR.W', 'TR.A'],
|
|
'HU.A': ['TR.A'],
|
|
'TR.W': ['TR.A', 'HU.A', 'TY.A'],
|
|
'TY.W': ['TY.A', 'TR.W', 'TR.A'],
|
|
'TY.A': ['TR.A'],
|
|
'AF.W': ['AF.Y'],
|
|
'MH.W': ['MH.Y'],
|
|
}
|
|
|
|
#
|
|
# When passed a phen/sig for both the current hazard and the proposed hazard,
|
|
# checkForUpgrade returns a 1 if the proposed hazard is an upgrade, otherwise 0
|
|
#
|
|
|
|
def checkForUpgrade(pPhen, pSig, cPhen, cSig):
|
|
proposed = pPhen + "." + pSig
|
|
current = cPhen + "." + cSig
|
|
if proposed in upgradeHazardsDict:
|
|
if current in upgradeHazardsDict[proposed]:
|
|
return 1
|
|
else:
|
|
return 0
|
|
else:
|
|
return 0
|
|
|
|
#
|
|
# Downgrade Hazards Dictionary - downgradeHazardsDict is a dictionary of
|
|
# phen/sig combinations defining downgrades. Each key is the proposed hazard.
|
|
# The associated list are the hazards which are downgraded by the
|
|
# proposed hazard.
|
|
#
|
|
|
|
downgradeHazardsDict = {
|
|
'ZR.Y': ['BZ.W', 'LE.W', 'IS.W', 'WS.W'],
|
|
'LE.Y': ['BZ.W', 'LE.W', 'IS.W', 'WS.W'],
|
|
'WW.Y': ['BZ.W', 'LE.W', 'IS.W', 'WS.W'],
|
|
'WC.Y': ['WC.W'],
|
|
'WS.W': ['BZ.W', 'IS.W'],
|
|
'LE.W': ['BZ.W', 'IS.W'],
|
|
'DU.Y': ['DS.W', 'HW.W'],
|
|
'LW.Y': ['DS.W', 'HW.W', 'WI.Y'],
|
|
'WI.Y': ['DS.W', 'HW.W'],
|
|
'HT.Y': ['EH.W'],
|
|
'FR.Y': ['FZ.W', 'HZ.W'],
|
|
'TR.W': ['HU.W', 'TY.W'],
|
|
'UP.Y': ['UP.W'],
|
|
'SR.W': ['HF.W'],
|
|
'GL.W': ['HF.W', 'SR.W'],
|
|
'SC.Y': ['HF.W', 'SR.W', 'GL.W', 'SE.W'],
|
|
'SW.Y': ['SE.W'],
|
|
'RB.Y': ['HF.W', 'SR.W', 'GL.W', 'SE.W'],
|
|
'SU.Y': ['SU.W'],
|
|
'BW.Y': ['HF.W', 'SR.W', 'GL.W'],
|
|
'SI.Y': ['HF.W', 'SR.W', 'GL.W'],
|
|
'LS.Y': ['LS.W'],
|
|
'CF.Y': ['CF.W'],
|
|
'AF.Y': ['AF.W'],
|
|
'MH.Y': ['MH.W'],
|
|
}
|
|
|
|
#
|
|
# When passed a phen/sig for both the current hazard and the proposed hazard,
|
|
# checkForDowngrade returns a 1 if the proposed hazard is an downgrade, otherwise 0
|
|
#
|
|
|
|
def checkForDowngrade(pPhen, pSig, cPhen, cSig):
|
|
proposed = pPhen + "." + pSig
|
|
current = cPhen + "." + cSig
|
|
if proposed in downgradeHazardsDict:
|
|
if current in downgradeHazardsDict[proposed]:
|
|
return 1
|
|
else:
|
|
return 0
|
|
else:
|
|
return 0
|