Tornadoes#

Tornadoes are a fixutre of the weather in the midwest. In this project, we’ll explore historical data on tornado frequency, intensity and location and try to understand that in the context of our changing climate.

Part 1

What are tornadoes and why do they occur? Provide a paragraph level description based in physics that goes beyond just the visual descriptions portrayed in movies.

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
import pandas as pd
import os.path
import subprocess
%pip install basemap
from mpl_toolkits.basemap import Basemap
def wget_data(url):
    local_path='./tmp_data'
    subprocess.run(["wget", "-nc", "-P", local_path, url])
def locate_data(name, check_exists=True):
    local_path='./tmp_data'
    path = os.path.join(local_path, name)
    if check_exists and not os.path.exists(path):
        raise RuxntimeError('No such data file: {}'.format(path))
    return path

In this project we’ll use a NOAA dataset on tornadoes from 1950 to 2024. The link to the description and the original dataset is provided but this code gets a copy that I’ve put on the course server (there should be no difference).

wget_data('https://courses.physics.illinois.edu/phys398dap/fa2025/data/1950-2024_all_tornadoes.csv')
tornado_data = pd.read_csv(locate_data('1950-2024_all_tornadoes.csv'))
#the fields of the dataset are described here: https://www.spc.noaa.gov/wcm/data/SPC_severe_database_description.pdf
#original source of the dataset here: https://www.spc.noaa.gov/wcm/#data

Part 2 Tornado frequency and intensity

With the dates and intensities of tornadoes, it’s straightforward to answer to some basic questions:

  • has the frequency of tornadoes changes in the years between 1950 and 2024?

  • has the intensity of tornadoes changed over the same time period?

  • when in the year do tornadoes most often occur? has that changed with time?

Support your answers to these questions with plots and analysis as appropriate. Are any changes you find significant? Support these claims with the tools we’ve covered in class.

Part 3

How do your conclusions above compare with the research that is available? (It’s fine if you came to different conclusions; if you do, try to understand why that’s the case–different data, different methods, something else?).

Part 4

Like all weather, tornadoes don’t occur isotropically throughout the country. Python has some nice tools for visualizing locations on a map (one is basemap). Using mapping libraries and the information in the dataset, can you make any conclusions about where tornadoes occur and whether that changes as a function of time. Support your conclusions with maps, plots and analyses drawing on the tools we’ve discussed in class.

Again, compare your conclusions with those you find in journal articles.

Part 5

What can you say about the damage to people and property caused by tornadoes given the information in this dataset? Support your conclusions with plots and analyses.