Weather · 4 min

Wiring NOAA Severe Weather Alerts into Your Operations Stack

How to consume NWS CAP feeds, NHC hurricane advisories and OpenWeather severe-weather alerts in one normalised pipeline. Geofencing patterns for refineries, distribution centres and field crews.

2026-05-26

US National Weather Service publishes severe-weather alerts the moment forecasters issue them. NOAA's National Hurricane Center publishes every advisory on every named storm. OpenWeather aggregates global severe alerts including those neither agency covers. Wire all three and you have severe weather monitoring that beats most paid weather-intel services.

This post is about the practical pipeline: which feeds to consume, how to filter, and how to geofence so the on-call lead doesn't get paged for every tornado watch 600 miles away.

NWS Common Alerting Protocol (CAP)

The US National Weather Service publishes alerts in CAP — a standard XML format for emergency notifications. Two consumption modes:

CAP feed (pull)

Atom feed of every active US alert:

https://api.weather.gov/alerts/active.atom?limit=500

Refresh every 60 seconds. No key required. Geographic filter via area= query param:

https://api.weather.gov/alerts/active?area=CA,OR,WA

Each alert has:

  • effective / expires timestamps
  • severity (Minor / Moderate / Severe / Extreme)
  • urgency (Past / Future / Expected / Immediate)
  • certainty (Possible / Likely / Observed)
  • geocode (FIPS county code + UGC zone)
  • polygon (lat/lon vertices when issued for a specific area)
  • Free-text headline + description

CAP webhook (push)

NWS publishes alerts via SQS-style queue if you register an endpoint. Sub-second latency. Useful for shake-warning-equivalent operations (mass-transit, broadcast).

For most operations the pull mode is enough — 60-second poll interval is well inside the issue-to-impact window for severe weather.

NHC hurricane advisories

NHC publishes every advisory on every named storm in Atlantic, East Pacific and Central Pacific basins. CurrentStorms.json gives you the live list:

https://www.nhc.noaa.gov/CurrentStorms.json

Per-storm advisories (track + cone + intensity):

https://www.nhc.noaa.gov/storm_graphics/AT05/AL052024_track.json

Update cadence: every 6 hours during routine periods, every 3 hours when a storm is active, hourly when a storm is making landfall.

OpenWeather alerts

OpenWeather's One Call API includes a severe-weather alerts array per lat/lon:

https://api.openweathermap.org/data/3.0/onecall?lat=...&lon=...&appid=KEY

Free tier covers most usage. Useful for global coverage outside US (NWS) + Atlantic/Pacific (NHC).

Normalisation — turning three feeds into one event stream

Each feed has its own severity scale. Normalise to a 0-100 score at ingest:

function normaliseNwsSeverity(alert: NwsAlert): number {
  const sev = { Extreme: 90, Severe: 70, Moderate: 50, Minor: 30 }[alert.severity] ?? 30;
  const urg = { Immediate: 15, Expected: 10, Future: 5, Past: -10 }[alert.urgency] ?? 0;
  const cer = { Observed: 10, Likely: 5, Possible: 0, Unlikely: -10 }[alert.certainty] ?? 0;
  return Math.max(0, Math.min(100, sev + urg + cer));
}

function normaliseNhcSeverity(advisory: NhcAdvisory): number {
  // Saffir-Simpson category * 15, plus landfall-probability boost
  return Math.min(100, advisory.category * 15 + advisory.landfallProb * 0.4);
}

Once every feed lands as a 0-100 number, downstream filters and zones treat them identically.

Geofencing patterns for weather

Three patterns that scale:

1. Asset-radius circles

50-100km circle around each refinery, distribution centre, retail hub. Tune severity threshold per asset risk profile:

  • Hardened refinery: ≥80 (only the truly bad stuff)
  • Open-air warehouse: ≥60
  • Outdoor field crew: ≥40

2. Polygon zones for region-wide assets

For utilities, telecoms, anything with a regional footprint — use state/province polygons. Filter to severity >= 60 so you only see real impact events.

3. Hurricane track corridors

When NHC declares a storm, automatically push a polygon zone along the forecast cone with a 7-day expiry. Set severity threshold to 50 so all advisories fire. Use this for Gulf-of-Mexico operations, eastern-seaboard logistics.

Avoiding the most common false-positive trap

NWS issues "tornado watch" for entire states. The watch covers a 12-hour window for a 200x200 mile area. Treating every watch as actionable spam-floods the ops channel.

Two filters that work:

  1. Drop "watches", keep "warnings". Watches mean "conditions favourable" — usually not actionable. Warnings mean "occurring now or imminent" — actionable.
  2. Filter on urgency = Immediate only. Drops the 12-hour-ahead pre-warnings, keeps the "happening now" alerts.

Lead-time benchmarks

How much warning these feeds give before impact:

  • Tornado warning: 5-15 minutes (NWS Doppler radar driven)
  • Hurricane advisory: 48-120 hours (NHC track forecast)
  • Severe thunderstorm warning: 15-45 minutes
  • Flash flood warning: 0-30 minutes (often "active now")
  • Winter storm warning: 12-24 hours

For most operations the 12-24 hour lead time on winter storms + 48-120 hour on hurricanes is plenty to repositioning crews and pre-stage supplies.

OpenWeather severe-weather pitfalls

OpenWeather's severe alerts array aggregates from local meteorological services worldwide. Quality varies:

  • US: forwards NWS — same data, slight latency penalty
  • EU: forwards Met-Norway + UK Met — high quality
  • Asia: forwards JMA + CMA + local services — variable quality
  • Africa / SA: sparse coverage, mostly headline events

For US ops, query NWS directly. For non-US ops, OpenWeather is your best free option.

Free starter stack

The minimum viable severe-weather monitoring system:

  1. Wire NWS CAP feed — poll every 60s, filter to your operating states
  2. Wire NHC CurrentStorms.json — poll every 5 minutes during hurricane season
  3. Wire OpenWeather One Call — per-asset poll, every 15 minutes
  4. Normalise to 0-100 severity per event
  5. Define watch zones around your top 30 assets
  6. Slack channel #ops-weather, route via incoming webhook

Augur's NWS + NHC + OpenWeather ingest wraps all of this with the unified severity scale and the same geofencing pipeline used for seismic, conflict, AIS and the other 17 feeds.

When you outgrow free feeds

The day you need:

  • Sub-minute warning latency (mass transit, broadcast)
  • Vendor SLA on alert delivery
  • Pre-positioned meteorologist on-call analyst
  • Hyperlocal nowcasting (Tomorrow.io, Climacell, IBM Weather Co)

…you graduate to a paid service. For the first $5M/year of operations, free NOAA + OpenWeather feeds + a tight geofencing layer are enough.

Pick the threshold, draw the polygons, ship the pipeline.

← Back to blog · Start free