WSR-88D · Springfield-Branson National Airport · 37.2352° N, 93.4006° W

KSGF, Decoded

This is not a radar API. It’s the raw Level 2 feed from Springfield’s own dish, decoded byte-by-byte and drawn below.

fetching the latest volume scan…

dBZ515253545556575+

no returns — a quiet sky

Theory of operation

The dish

KSGF is one of 160 WSR-88D (“NEXRAD”) radars NOAA operates. Every 4–10 minutes it completes a volume scan: a full 360° sweep at each of several tilt angles, lowest first. As the dish turns, the raw data streams into a public S3 bucket, s3://unidata-nexrad-level2-chunks, in ~50 KB pieces anyone can read, seconds after they leave the radar. Most radar apps buy this data back from an API vendor. This page skips the middleman.

The decode

A server route finds the newest volume’s chunk directory under KSGF/, pulls the front of it — the lowest tilt lives in the first few chunks, so the full 4–12 MB volume never crosses the wire — and hands the pieces to nexrad-level-2-data (MIT), which implements NOAA’s ICD 2620002 wire format in JavaScript. We ship the lowest tilt’s reflectivity (or, in velocity mode, the Doppler channel — how fast rain is moving toward or away from the dish): ~720 radials × ~460 gates, quantized to one byte per gate and shipped as base64 — a few hundred KB that gzips to a fraction of that. The loop button replays the last six volume scans, which is all storm motion is.

dBZ -> byte:  b = clamp(round((dBZ + 33) × 2) + 1, 1, 255);  0 = no echo
byte -> dBZ:  dBZ = (b − 1) / 2 − 33

The render

The browser walks every pixel of the disc once: pixel → polar coordinates → gate lookup → classic NWS color table. 640×640 pixels resolve in a few milliseconds of plain JavaScript — no WebGL, no map SDK. Below 5 dBZ is drawn transparent, the same threshold TV stations use so dust and bugs don’t paint the whole screen green. Cores above 50 dBZ get a soft bloom, and the rotating sweep line is pure decoration — the data underneath updates every few minutes, not every twelve seconds.

One honest caveat: the feed can run a scan or two behind the dish. When the sky turns mean, use a real warning source — this page is an exhibit, not a shelter plan.

Why this is on a consulting site

Because “expensive vendor product” and “free public data plus 300 lines of code” are the same picture more often than anyone admits. Finding those gaps in a business’s software bills is roughly the job description. We take requests.

$ ls /observatory

The Observatory · all experiments

The Living Ozarks · live sky + river

Local on the 8s · 1990s forecast

Ozarks From Above · 3D terrain

Winds Over the Ozarks · live wind field

Everything here runs on open data and open source, glued together in an afternoon or two. If your business has a “we could never build that” on the shelf, let’s talk.