Spaces:
Running
Running
| title: Seventy-Seven Years of U.S. Tornadoes | |
| emoji: πͺοΈ | |
| colorFrom: blue | |
| colorTo: red | |
| sdk: static | |
| app_file: index.html | |
| pinned: false | |
| license: cc-by-4.0 | |
| # Seventy-seven years of U.S. tornadoes | |
| An interactive browser for annual tornado density across the contiguous United States, | |
| 1950β2026. Drag the timeline, scroll over the map, or use the arrow keys. | |
| Every tornado in the NOAA/NWS Storm Prediction Center database is placed at the **midpoint | |
| of its track**, binned onto an 80 km Lambert conformal grid, and smoothed with a 120 km | |
| Gaussian kernel β the gridding convention of Brooks, Doswell & Kay (2003, *Wea. Forecasting* | |
| **18**, 626β640). Black dots are individual tornadoes. | |
| ## Reading it honestly | |
| - **The color scale is fixed across all years**, so a pale map is a genuinely quiet year | |
| rather than a rescaled one. | |
| - **Reports are not a fixed yardstick.** How many tornadoes get recorded depends on | |
| population density, observing technology, and public awareness, none of which has held | |
| steady since 1950. Early years are undercounted, especially for weak tornadoes. | |
| - **2026 is incomplete.** It covers 1 January β 14 August only, and comes from preliminary | |
| reports that were deduplicated (DBSCAN, 20 km / 30 min) and rescaled to a final-count | |
| basis using the 2010β2025 relationship between deduplicated preliminary reports and final | |
| counts. Its all-time rank is therefore a floor, not a settled figure. | |
| ## Data | |
| The gridded density field ships with this Space as a Zarr v2 store: | |
| ``` | |
| tornado_density_CONUS_80km_1950-2026.zarr | |
| βββ density (year, y, x) float32 tornadoes (10^4 km^2)^-1 | |
| βββ year, x, y, lat, lon | |
| βββ annual_max, rank_all_time, tornado_count (year,) | |
| βββ lambert_conformal_conic grid mapping | |
| ``` | |
| ```python | |
| import xarray as xr | |
| ds = xr.open_zarr("tornado_density_CONUS_80km_1950-2026.zarr") | |
| ds.density.sel(year=2026).plot() | |
| ``` | |
| Source: NOAA/NWS Storm Prediction Center β 1950β2025 final severe weather database and 2026 | |
| preliminary daily storm reports. | |
| Analysis: Prof. Steve Nesbitt, Department of Climate, Meteorology & Atmospheric Sciences, | |
| University of Illinois Urbana-Champaign β [snesbitt.github.io](https://snesbitt.github.io). | |