Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add most missing event types and levels to weatheralerts #250

Merged
merged 6 commits into from
May 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading