From 666244bc0e8f357a3f46659bcc232ad823e801e9 Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 13:36:11 +0200 Subject: [PATCH 1/6] Add missing event types Co-Authored-By: andrea-fantini <62581891+andrea-fantini@users.noreply.github.com> Co-Authored-By: inguy24 <37753440+inguy24@users.noreply.github.com> --- src/integrations/weatheralerts.ts | 104 ++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 28 deletions(-) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index d12c969..ae6cc9f 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -44,48 +44,96 @@ export default class Weatheralerts implements MeteoalarmIntegration { } private get eventTypes(): { [key: string]: MeteoalarmEventType } { - // Event types from: https://www.weather.gov/lwx/WarningsDefined + // Event types from: https://alerts.weather.gov/search return { - 'Winter Storm': MeteoalarmEventType.SnowIce, + '911 Telephone Outage': 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 Danger': 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, }; } private get eventLevels(): { [key: string]: MeteoalarmLevelType } { - // Event types from: https://www.weather.gov/lwx/WarningsDefined return { Warning: MeteoalarmLevelType.Red, Statement: MeteoalarmLevelType.Orange, From 85a7c8d3c3ccdce8fa5542aa9e8ab7811552961e Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 13:43:53 +0200 Subject: [PATCH 2/6] Add blue alert --- src/integrations/weatheralerts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index ae6cc9f..c01b217 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -130,6 +130,7 @@ export default class Weatheralerts implements MeteoalarmIntegration { 'Wind Chill': MeteoalarmEventType.LowTemperature, 'Winter Storm': MeteoalarmEventType.SnowIce, 'Winter Weather': MeteoalarmEventType.SnowIce, + Blue: MeteoalarmEventType.Unknown, }; } From 7ce24872222cd45c35e133f18e3662deb4e0edac Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 13:44:33 +0200 Subject: [PATCH 3/6] Add links to documentation website --- src/integrations/weatheralerts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index c01b217..9fc73fc 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -44,7 +44,7 @@ export default class Weatheralerts implements MeteoalarmIntegration { } private get eventTypes(): { [key: string]: MeteoalarmEventType } { - // Event types from: https://alerts.weather.gov/search + // https://vlab.noaa.gov/web/nws-common-alerting-protocol/cap-documentation#_eventcode_inclusion-16 return { '911 Telephone Outage': MeteoalarmEventType.Unknown, Administrative: MeteoalarmEventType.Unknown, @@ -135,6 +135,7 @@ export default class Weatheralerts implements MeteoalarmIntegration { } private get eventLevels(): { [key: string]: MeteoalarmLevelType } { + // https://vlab.noaa.gov/web/nws-common-alerting-protocol/cap-documentation#_eventcode_inclusion-16 return { Warning: MeteoalarmLevelType.Red, Statement: MeteoalarmLevelType.Orange, From 8eb1fa711761873b5d85de10405f4360aee0630c Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 13:46:59 +0200 Subject: [PATCH 4/6] Add missing event levels --- src/integrations/weatheralerts.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index 9fc73fc..4161deb 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -142,6 +142,9 @@ export default class Weatheralerts implements MeteoalarmIntegration { Watch: MeteoalarmLevelType.Orange, Advisory: MeteoalarmLevelType.Yellow, Alert: MeteoalarmLevelType.Yellow, + Emergency: MeteoalarmLevelType.Red, + Message: MeteoalarmLevelType.Orange, + Danger: MeteoalarmLevelType.Red, }; } From 4b65aa5f806a5f23a5cdd5d9ddb177106722cceb Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 13:57:12 +0200 Subject: [PATCH 5/6] Add uncommon event levels --- src/integrations/weatheralerts.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index 4161deb..41e33c8 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -142,9 +142,11 @@ export default class Weatheralerts implements MeteoalarmIntegration { Watch: MeteoalarmLevelType.Orange, Advisory: MeteoalarmLevelType.Yellow, Alert: MeteoalarmLevelType.Yellow, - Emergency: MeteoalarmLevelType.Red, - Message: MeteoalarmLevelType.Orange, - Danger: MeteoalarmLevelType.Red, + + Emergency: MeteoalarmLevelType.Red, // Local Area Emergency + Danger: MeteoalarmLevelType.Red, // Extreme Fire Danger + Message: MeteoalarmLevelType.Orange, //Civil Emergency Message + Outage: MeteoalarmLevelType.Orange, // 911 Telephone Outage. }; } From 9e8e4af2e17422753875c2dddb734faa9731f0aa Mon Sep 17 00:00:00 2001 From: Bartosz Dokurno Date: Fri, 3 May 2024 14:01:35 +0200 Subject: [PATCH 6/6] Fix event types for uncommon events --- src/integrations/weatheralerts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/integrations/weatheralerts.ts b/src/integrations/weatheralerts.ts index 41e33c8..4a0bf47 100644 --- a/src/integrations/weatheralerts.ts +++ b/src/integrations/weatheralerts.ts @@ -46,7 +46,7 @@ export default class Weatheralerts implements MeteoalarmIntegration { private get eventTypes(): { [key: string]: MeteoalarmEventType } { // https://vlab.noaa.gov/web/nws-common-alerting-protocol/cap-documentation#_eventcode_inclusion-16 return { - '911 Telephone Outage': MeteoalarmEventType.Unknown, + '911 Telephone': MeteoalarmEventType.Unknown, Administrative: MeteoalarmEventType.Unknown, 'Air Quality': MeteoalarmEventType.AirQuality, 'Air Stagnation': MeteoalarmEventType.AirQuality, @@ -58,7 +58,7 @@ export default class Weatheralerts implements MeteoalarmIntegration { 'Blowing Dust': MeteoalarmEventType.Dust, 'Brisk Wind': MeteoalarmEventType.Wind, 'Child Abduction': MeteoalarmEventType.Unknown, - 'Civil Danger': MeteoalarmEventType.Unknown, + Civil: MeteoalarmEventType.Unknown, 'Civil Emergency': MeteoalarmEventType.Unknown, 'Coastal Flood': MeteoalarmEventType.Flooding, 'Dense Fog': MeteoalarmEventType.Fog,