Skip to content

MaxwellDPS/jsame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsame

jsame is a JS library to decode EAS/SAME (Emergency Alert System/Specific Area Message Encoding) alert messages. These messages are primarily used by the National Weather Service for weather-related warnings. jsame will decode a demodulated message, filter by SAME (US/CA) and/or event code, provide readable object back.

PLESE DONT TRUST THIS CODE WITH YOUR LIFE... COMMON SENSE

Requirements

Installation

$ npm install @maxwelldps/jsame

Usage

jsame can decode EAS messages diectly from multitmon, or in SAME format ZCZC-ORG-EEE-PSSCCC-PSSCCC+TTTT-JJJHHMM-LLLLLLLL-

jsame.decode(Message, List of EEE to exclude, List of FIPS to watch )

Example to watch for Lancatser County NE, and not exclude events.

jsame.decode("ZCZC-WXR-RWT-031109+0030-0771800-KOAX/NWS", [], ["031109"])

Exlude Required Weekly tests

jsame.decode("ZCZC-WXR-RWT-031109+0030-0771800-KOAX/NWS", ["RWT"])

Exlude Required Weekly tests, and Match state of NE

jsame.decode("ZCZC-WXR-RWT-031109+0030-0771800-KOAX/NWS", ["RWT"], ["031109"])

Example input

ZCZC-WXR-RWT-055027-055039-055047-055117-055131-055137-055139-055015-055071+0030-0771800-KMKX/NWS-

EAS: ZCZC-WXR-RWT-055027-055039-055047-055117-055131-055137-055139-055015-055071+0030-0771800-KMKX/NWS -

var jsame = require("./jsame.js"); 

Message = "ZCZC-WXR-RWT-055027-055039-055047-055117-055131-055137-055139-055015-055071+0030-0771800-KMKX/NWS-";

decodedMeassage = jsame.decode(Message);
console.log(decodedMeassage["MESSAGE"]);

Event Codes

This list includes current and proposed event codes.

Code Description Code Description
ADR Administrative Message AVA Avalanche Watch
AVW Avalanche Warning BHW Biological Hazard Warning
BWW Boil Water Warning BZW Blizzard Warning
CAE Child Abduction Emergency CDW Civil Danger Warning
CEM Civil Emergency Message CFA Coastal Flood Watch
CFW Coastal Flood Warning CHW Chemical Hazard Warning
CWW Contaminated Water Warning DBA Dam Watch
DBW Dam Break Warning DEW Contagious Disease Warning
DMO Demo Warning DSW Dust Storm Warning
EAN Emergency Action Notification EAT Emergengy Action Termination
EQW Earthquake Warning EVA Evacuation Watch
EVI Evacuation Immediate EWW Extreme Wind Warning
FCW Food Contamination Warning FFA Flash Flood Watch
FFS Flash Flood Statement FFW Flash Flood Warning
FLA Flood Watch FLS Flood Statement
FLW Flood Warning FRW Fire Warning
FSW Flash Freeze Warning FZW Freeze Warning
HLS Hurricane Local Statement HMW Hazardous Materials Warning
HUA Hurricane Watch HUW Hurricane Warning
HWA High Wind Watch HWW High Wind Warning
IBW Iceberg Warning IFW Industrial Fire Warning
LAE Local Area Emergency LEW Law Enforcement Warning
LSW Land Slide Warning NAT National Audible Test
NIC National Information Center NMN Network Message Notification
NPT National Periodic Test NST National Silent Test
NUW Nuclear Plant Warning POS Power Outage Statement
RHW Radiological Hazard Warning RMT Required Monthly Test
RWT Required Weekly Test SMW Special Marine Warning
SPS Special Weather Statement SPW Shelter in Place Warning
SSA Storm Surge Watch SSW Storm Surge Warning
SVA Severe Thunderstorm Watch SVR Severe Thunderstorm Warning
SVS Severe Weather Statement TOA Tornado Watch
TOE 911 Outage Emergency TOR Tornado Warning
TRA Tropical Storm Watch TRW Tropical Storm Warning
TSA Tsunami Watch TSW Tsunami Warning
VOW Volcano Warning WFA Wild Fire Watch
WFW Wild Fire Warning WSA Winter Storm Watch
WSW Winter Storm Warning BLU Blue Alert
SQW Snow Squall Warning

An alert must match one of each specified alert type in order to be processed. If an alert type is omitted, any alert will match that type. In most cases, using only SAME codes to filter alerts will be the best option.

Output

Output is an object with the following

Variable Description Example
MESSAGE Readable message (See sample text output below)
ORG Organization code WXR
EEE Event code RWT
PSSCCC Geographical area (SAME) codes 020103-020209-020091-020121-029047-029165-029095-029037
TTTT Purge time code 0030
JJJHHMM Date code 1051700
LLLLLLLL Originator code KEAX/NWS
COUNTRY Country code US
LLLL-ORG Originating station - Org code KEAX-WXR
organization Organization name National Weather Service
location Originator location Pleasant Hill, Missouri
event Event type Required Weekly Test
type Event type indicator T
start Start time 12:00 PM
end End time 12:30 PM
length Length of event 30 minutes
seconds Event length in seconds 1800
date Local date Tuesday, March 17th 2020, 1:00:00 pm

Sample output 1

"EAS: ZCZC-WXR-EWW-055027-055039-055047-055117-055131-055137-055139-055015-055071+0030-0771800-KOAX/NWS-" (same_decode(TEST_STRING2, ["RWT", "DMO", "RMT"], ["055000"]));

{ 
  "MESSAGE": "The National Weather Service in Omaha, NE has issued a Extreme Wind Warning valid until 1:30 PM for the following counties in Wisconsin: Calumet, Dodge, Fond du Lac, Green Lake, Manitowoc, Sheboygan, Washington, Waushara, Winnebago. (KOAX/NWS)",
  "ORG": "WXR",
  "EEE": "EWW",
  "PSSCCC_LIST":
   [ "055015",
     "055027",
     "055039",
     "055047",
     "055071",
     "055117",
     "055131",
     "055137",
     "055139" ],
  "TTTT": "0030",
  "JJJHHMM": "0771800",
  "STATION": "KOAX",
  "LLLLLLLL": "KOAX/NWS",
  "COUNTRY": "US",
  "LLLL-ORG": "KOAX-WXR",
  "organization": "National Weather Service",
  "location": "Omaha, NE ",
  "event": "Extreme Wind Warning",
  "type": "W",
  "start": "1:00 PM",
  "end": "1:30 PM",
  "length": 30,
  "seconds": 1800,
  "date": "Tuesday, March 17th 2020, 1:00:00 pm" 
}

Sample output 2

"ZCZC-CIV-LAE-000000+0030-0771800-KXYZ/FM-" (same_decode(TEST_STRING2, ["RWT", "DMO", "RMT"]));

{ 
  "MESSAGE": "The Civil Authorities in undefined have issued a Local Area Emergency valid until 1:30 PM for the following counties in Nebraska: ALL. (KXYZ/NWS)",
  "ORG": "CIV",
  "EEE": "LAE",
  "PSSCCC_LIST": [ "031000" ],
  "TTTT": "0030",
  "JJJHHMM": "0771800",
  "STATION": "KXYZ",
  "LLLLLLLL": "KXYZ/NWS",
  "COUNTRY": "US",
  "LLLL-ORG": "KXYZ-CIV",
  "organization": "Civil Authorities",
  "location": "undefined ",
  "event": "Local Area Emergency",
  "type": "E",
  "start": "1:00 PM",
  "end": "1:30 PM",
  "length": 30,
  "seconds": 1800,
  "date": "Tuesday, March 17th 2020, 1:00:00 pm"
}

Sample Text Output

The National Weather Service in Pleasant Hill, Missouri has issued a Required Weekly Test valid until 12:30 PM for the following counties in Kansas: Leavenworth, Wyandotte, Johnson, Miami, and for the following counties in Missouri: Clay, Platte, Jackson, Cass. (KEAX/NWS)

This experimental pagermon site is updated using jsame, pagermon, multimon-ng and a rtl-sdr dongle.

Known Issues

Credits

Thanks to dsame Copyright (c) 2016 Joseph W. Metcalf from which the code was adapted