npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jsame

v0.2.5

Published

js SAME EAS message decoder

Downloads

145

Readme

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