Skip to content

Commit

Permalink
Add most missing event types and levels to weatheralerts (#250)
Browse files Browse the repository at this point in the history
Co-authored-by: andrea-fantini <62581891+andrea-fantini@users.noreply.github.com>
Co-authored-by: inguy24 <37753440+inguy24@users.noreply.github.com>
  • Loading branch information
3 people authored May 25, 2024
1 parent 334d60d commit 718e70a
Showing 1 changed file with 83 additions and 28 deletions.
111 changes: 83 additions & 28 deletions src/integrations/weatheralerts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,54 +44,109 @@ export default class Weatheralerts implements MeteoalarmIntegration {
}

private get eventTypes(): { [key: string]: MeteoalarmEventType } {
// Event types from: https://www.weather.gov/lwx/WarningsDefined
// https://vlab.noaa.gov/web/nws-common-alerting-protocol/cap-documentation#_eventcode_inclusion-16
return {
'Winter Storm': MeteoalarmEventType.SnowIce,
'911 Telephone': MeteoalarmEventType.Unknown,
Administrative: MeteoalarmEventType.Unknown,
'Air Quality': MeteoalarmEventType.AirQuality,
'Air Stagnation': MeteoalarmEventType.AirQuality,
'Arroyo And Small Stream Flood': MeteoalarmEventType.Flooding,
Ashfall: MeteoalarmEventType.Volcano,
Avalanche: MeteoalarmEventType.Avalanches,
'Beach Hazards': MeteoalarmEventType.CoastalEvent,
Blizzard: MeteoalarmEventType.SnowIce,
'Ice Storm': MeteoalarmEventType.SnowIce,
'Winter Weather': MeteoalarmEventType.SnowIce,
Freeze: MeteoalarmEventType.LowTemperature,
Frost: MeteoalarmEventType.LowTemperature,
'Wind Chill': MeteoalarmEventType.LowTemperature,
'Fire Weather': MeteoalarmEventType.ForestFire,
'Red Flag': MeteoalarmEventType.ForestFire,
'Blowing Dust': MeteoalarmEventType.Dust,
'Brisk Wind': MeteoalarmEventType.Wind,
'Child Abduction': MeteoalarmEventType.Unknown,
Civil: MeteoalarmEventType.Unknown,
'Civil Emergency': MeteoalarmEventType.Unknown,
'Coastal Flood': MeteoalarmEventType.Flooding,
'Dense Fog': MeteoalarmEventType.Fog,
'High Wind': MeteoalarmEventType.Wind,
Wind: MeteoalarmEventType.Wind,
'Severe Thunderstorm': MeteoalarmEventType.Thunderstorms,
Tornado: MeteoalarmEventType.Tornado,
'Dense Smoke': MeteoalarmEventType.Fog,
Dust: MeteoalarmEventType.Dust,
'Dust Storm': MeteoalarmEventType.Dust,
Earthquake: MeteoalarmEventType.Earthquake,
'Excessive Heat': MeteoalarmEventType.HighTemperature,
'Extreme Cold': MeteoalarmEventType.LowTemperature,
'Extreme Fire': MeteoalarmEventType.ForestFire,
'Extreme Wind': MeteoalarmEventType.Wind,
'Small Craft': MeteoalarmEventType.Wind,
Gale: MeteoalarmEventType.SeaEvent,
Storm: MeteoalarmEventType.Thunderstorms,
'Hurricane Force Wind': MeteoalarmEventType.Hurricane,
'Special Marine': MeteoalarmEventType.Unknown,
'Coastal Flood': MeteoalarmEventType.Flooding,
Fire: MeteoalarmEventType.ForestFire,
'Fire Weather': MeteoalarmEventType.ForestFire,
'Flash Flood': MeteoalarmEventType.Flooding,
Flood: MeteoalarmEventType.Flooding,
'River Flood': MeteoalarmEventType.Flooding,
'Excessive Heat': MeteoalarmEventType.HighTemperature,
Freeze: MeteoalarmEventType.LowTemperature,
'Freezing Fog': MeteoalarmEventType.SnowIce,
'Freezing Rain': MeteoalarmEventType.SnowIce,
'Freezing Spray': MeteoalarmEventType.SeaEvent,
Frost: MeteoalarmEventType.LowTemperature,
Gale: MeteoalarmEventType.SeaEvent,
'Hard Freeze': MeteoalarmEventType.LowTemperature,
'Hazardous Materials': MeteoalarmEventType.Unknown,
'Hazardous Seas': MeteoalarmEventType.SeaEvent,
'Hazardous Weather': MeteoalarmEventType.Unknown,
Heat: MeteoalarmEventType.HighTemperature,
'Tropical Storm': MeteoalarmEventType.Hurricane,
'Heavy Freezing Spray': MeteoalarmEventType.SeaEvent,
'High Surf': MeteoalarmEventType.CoastalEvent,
'High Wind': MeteoalarmEventType.Wind,
'Hurricane Force Wind': MeteoalarmEventType.Hurricane,
'Hurricane Local': MeteoalarmEventType.Hurricane,
Hurricane: MeteoalarmEventType.Hurricane,
'Air Quality': MeteoalarmEventType.AirQuality,
Hydrologic: MeteoalarmEventType.CoastalEvent,
'Ice Storm': MeteoalarmEventType.SnowIce,
'Lake Effect Snow': MeteoalarmEventType.SnowIce,
'Lake Wind': MeteoalarmEventType.Wind,
'Lakeshore Flood': MeteoalarmEventType.Flooding,
'Law Enforcement': MeteoalarmEventType.Unknown,
'Local Area': MeteoalarmEventType.Unknown,
'Low Water': MeteoalarmEventType.SeaEvent,
'Marine Weather': MeteoalarmEventType.SeaEvent,
'Nuclear Power Plant': MeteoalarmEventType.Nuclear,
'Radiological Hazard': MeteoalarmEventType.Nuclear,
'Red Flag': MeteoalarmEventType.ForestFire,
'Rip Current': MeteoalarmEventType.CoastalEvent,
'River Flood': MeteoalarmEventType.Flooding,
'Severe Thunderstorm': MeteoalarmEventType.Thunderstorms,
'Severe Weather': MeteoalarmEventType.Unknown,
'Shelter In Place': MeteoalarmEventType.Unknown,
'Short Term': MeteoalarmEventType.Unknown,
'Small Craft': MeteoalarmEventType.SeaEvent,
'Small Stream Flood': MeteoalarmEventType.Flooding,
'Snow Squall': MeteoalarmEventType.SnowIce,
'Special Marine': MeteoalarmEventType.SeaEvent,
'Special Weather': MeteoalarmEventType.Unknown,
'High Surf': MeteoalarmEventType.CoastalEvent,
'Hazardous Seas': MeteoalarmEventType.SeaEvent,
'Beach Hazard': MeteoalarmEventType.CoastalEvent,
'Blowing Dust': MeteoalarmEventType.Dust,
'Storm Surge': MeteoalarmEventType.CoastalEvent,
Storm: MeteoalarmEventType.Thunderstorms,
Tornado: MeteoalarmEventType.Tornado,
'Tropical Depression Local': MeteoalarmEventType.Hurricane,
'Tropical Storm Local': MeteoalarmEventType.Hurricane,
'Tropical Storm': MeteoalarmEventType.Hurricane,
'Tropical Cyclone': MeteoalarmEventType.Hurricane,
Tsunami: MeteoalarmEventType.Tsunami,
'Typhoon Local': MeteoalarmEventType.Hurricane,
Typhoon: MeteoalarmEventType.Hurricane,
'Urban And Small Stream Flood': MeteoalarmEventType.Flooding,
Volcano: MeteoalarmEventType.Volcano,
Wind: MeteoalarmEventType.Wind,
'Wind Chill': MeteoalarmEventType.LowTemperature,
'Winter Storm': MeteoalarmEventType.SnowIce,
'Winter Weather': MeteoalarmEventType.SnowIce,
Blue: MeteoalarmEventType.Unknown,
};
}

private get eventLevels(): { [key: string]: MeteoalarmLevelType } {
// Event types from: https://www.weather.gov/lwx/WarningsDefined
// https://vlab.noaa.gov/web/nws-common-alerting-protocol/cap-documentation#_eventcode_inclusion-16
return {
Warning: MeteoalarmLevelType.Red,
Statement: MeteoalarmLevelType.Orange,
Watch: MeteoalarmLevelType.Orange,
Advisory: MeteoalarmLevelType.Yellow,
Alert: MeteoalarmLevelType.Yellow,

Emergency: MeteoalarmLevelType.Red, // Local Area Emergency
Danger: MeteoalarmLevelType.Red, // Extreme Fire Danger
Message: MeteoalarmLevelType.Orange, //Civil Emergency Message
Outage: MeteoalarmLevelType.Orange, // 911 Telephone Outage.
};
}

Expand Down

0 comments on commit 718e70a

Please sign in to comment.