What it is
ATS Storm Archive renders NOAA's definitive Atlantic hurricane record — the HURDAT2 best-track database — as an interactive atlas. Every tropical cyclone since 1900 is here: 1,620 storms and 46,002 six-hourly observations, bundled as a 1.8 MB snapshot that makes the app fully offline after first load. The boot view is the "atlas of fury": all 280 major hurricanes (Category 3+) as thin tracks color-graded gold through orange to crimson by peak Saffir-Simpson category — the entire violent history of the basin in one frame.
Filters cover year range (1900–2024), minimum intensity (All / TS+ / C1+ / C3+ / C5) and storm name with live suggestions; drawing caps at the strongest 600 tracks with an explicit note. Selecting a storm — from the list, the search, or by clicking a track — redraws it with per-segment category coloring and six-hourly markers sized by wind, alongside a glass card with peak wind (kt and mph), minimum central pressure, lifespan, and a wind-over-time strip chart with shaded category bands. A Hall of Fame lists the 42 Category-5 storms newest first — Milton 2024, Beryl 2024, Lee 2023, Ian 2022 — and a live stats chip surfaces the most intense storm on record: Wilma 2005, at 882 mb.
Zero credentials, zero servers: an anonymous dark basemap plus the bundled snapshot, running from an empty .env.
The experience
The first frame is the product: 280 gold-to-crimson major-hurricane tracks arcing out of the tropical Atlantic, the recurve pattern visible instantly. From there:
- Slice the archive. A two-handle year slider (1900–2024), intensity chips from All to C5-only, and a name search with live suggestions. The ambient view draws the strongest 600 tracks of the current filter, with an explicit note when the cap engages.
- Select a storm and see its whole life. The track redraws with per-segment category coloring — intensification and weakening visible along the path — plus six-hourly markers sized by wind. The glass card gives peak wind in knots and mph, minimum pressure, dates and lifespan, and a wind-over-time strip chart with shaded Saffir-Simpson bands.
- Visit the Hall of Fame. All 42 Category-5 storms, newest first: Milton 2024, Beryl 2024, Lee 2023, Ian 2022, and back through the record. One click flies to any of them.
- Trust the stats. Live chips report storms in filter, the Cat-5 count, and the most intense storm by central pressure — Wilma 2005, 882 mb, with the filters wide open.
The data — where it comes from
One authoritative bundled dataset and one anonymous basemap — offline after first load.
| Source | What it provides | Refresh | Cost | Attribution |
|---|---|---|---|---|
| NOAA NHC HURDAT2 — Atlantic basin best-track database (bundled hurdat2-atlantic.json, 1.8 MB) | 1,620 storms 1900–2024 and 46,002 six-hourly track points: position, wind, status, central pressure | Static snapshot of the 1900–2024 revision; NHC updates HURDAT2 after each season's reanalysis | Free | NOAA National Hurricane Center |
| Esri dark-gray vector basemap (anonymous) | Dark world basemap under the track atlas | Vendor-managed | Free (no API key) | Esri attribution renders in-map automatically |
How it was assembled
The application is a fully static single-page app — no backend, no database, no server-side rendering. The stack: TypeScript, ArcGIS Maps SDK for JavaScript 5.0.x, Calcite Design System 5.0.x, and Vite 8.
Module map — the codebase is small and deliberate; each file owns one concern:
Key engineering decisions
- Two-tier track rendering. The ambient atlas keeps one polyline per storm — per-segment coloring at 600 storms would mean roughly 17,000 graphics and would tank the view. The selected storm gets the full treatment: up to ~117 segment polylines plus ~118 wind-sized markers (the longest track, Ginger 1971, has 118 points), which is trivially cheap for a single storm and is exactly where the coloring informs.
- Verified numbers, guarded sentinels. The category census was verified against the snapshot: TD 228 · TS 658 · C1 289 · C2 165 · C3 118 · C4 120 · C5 42, with Cat-3+ = 280. Wilma 2005 (882 mb) must — and does — surface as the most intense storm with filters open. Central pressure is -999 for 931 pre-instrumentation storms, so every pressure display and ranking guards minp > 0; 57 track points carry wind -99 (unknown) and are skipped in the chart and drawn at minimum size on the map.
- Ordering and identity done right. Hall of Fame order is by last track timestamp descending, not by year — that is what puts Milton (October 2024) ahead of Beryl (July 2024). Names repeat across years (two Ians: a 2016 tropical storm and the 2022 Category 5), so storms are keyed by HURDAT2 ID (e.g. AL092022) and displayed as name · year.
- Geography checked, not assumed. Atlantic HURDAT2 longitudes span -136.9° to +63.0°, so the antimeridian is a non-issue and one continuous path per storm is safe — but 18 storms do cross east of 0° (Vince 2005 territory), so positive longitudes are real data, never "fixed" as errors. Landfall indicators were not carried into this snapshot, so the app never displays or invents landfall information.
- Calcite 5 in anger. The two-handle slider takes min-value/max-value attributes and exposes .minValue/.maxValue props; it fires calciteSliderInput per drag tick but calciteSliderChange on release — the redraw happens on release, because redrawing 600 polylines per tick stutters. calcite-modal no longer exists (calcite-dialog with .open = true), tab panels must be direct children of calcite-tabs, and icon names were verified against the bundled set — hurricane, storm and trophy do not exist; filter and star do.