Tornado reports data source:
SPC WCM
Raw CSV file accessed via hyperlink at bottom of page (1950-2024_actual_tornadoes.csv).
FIPS Codes listed in the above file were then
cross-referenced with their respective counties.
THIS PAGE IS IN ACTIVE DEVELOPMENT
The following languages/tools are used on this site:
-HTML/CSS
-Javascript/JQuery
-Bootstrap (site layout/stylizing)
-FontAwesome (special buttons)
-Plotly (tornado charts)
-Leaflet (tornado maps)
-PHP (database querying)
-PostgreSQL (database hosting)
Credits:
-The U.S. Census Bureau for their cartographic boundary files, used in the creating of the tornado county maps
-Eric Celeste for converting these boundary files to GeoJSON, so that they could be used with Leaflet
This web server was built and runs on a DigitalOcean droplet.
Please contact Mike Levine at mikelevine@me.com with any questions or bug reports.
I am the main developer of this tool.
Note: NOAA account credentials are required to view this project.
Select a state to view a table of tornado counts by county.
Select a county to view its tornado counts by year.
Select neither to view an interactive map of tornado counts by county for the entire country.
Note: Results that contain "Unknown County", represent SPC tornadoes that have incomplete county info or a FIPS code mismatch. These will be addressed soon, hopefully...
Most radar apps show you where a storm is. I built one that tells you where to go to meet it.




I’ve been chasing storms for over a decade. When you chase, you’re constantly doing math in your head — how fast is the storm moving, where’s it headed, and can I actually get there in time? Those are educated guesses, and in the heat of the moment they aren’t always right. StormNavigator does that math for me: I tap a storm and it routes me to a safe intercept point on real roads, updating in real time as the storm’s track changes.
Live weather data (NEXRAD radar + NWS storm tracks) → an intercept engine (storm-motion projection, a fan-scan solver, a feasibility screen, and Valhalla road routing) → the iOS app.
iOS app: Swift, SwiftUI, MapKit. Backend: Python + FastAPI on a Linux server. Routing: the open-source Valhalla engine, driven by a custom intercept solver. Weather: live NEXRAD decoding rendered to map tiles.
In active development, headed for the App Store. Designed and built solo — iOS app, backend, and algorithms.
Screenshots are from the iOS Simulator in Replay Mode (Moore, OK — May 20, 2013), so the radar and storm data shown is a real historic event replayed for demonstration.