Windy City

Culture shock is usually the result of a series of small changes in someone’s environment that eventually create stress. When I lived in Wales, it wasn’t the fact that it was rainy all the time, or that the accents were different, or even that they drove on the opposite side of the road. My final straw was that I kept running into people with their shopping carts at the store because they also instinctively push their carts to the other side.

We recently moved to North Dayton, and my biggest shock is how windy it is. And nobody believes me. Everyone says it’s just spring, or that it’s not any more windy than Cincinnati. Eventually, I was having a picnic at a park with my family and our friends, and a bunch of stuff blew off the table, and I had my breakdown moment. Now I just want to show that I’m justified, with a quick data experiment that you can duplicate within 5 minutes and an API access.

Methodology

  1. Import data from NOAA
  2. Break down the Dayton Weather Reports versus the Cincinnati Weather reports
  3. Sort by weekly ranges, to control for seasonality of average wind-speeds
  4. Plot and compare

Data Notes

This project is pretty simple – and would make a great code-along project, so I’ll review the code here.

First, import pandas (the best Python tool for data analysis, in my opinion), as well as a plotting tool. I’m using Matplotlib, but you could also use a bunch of other plotting tools (Seaborn, etc.)

Python
import pandas as pd
import matplotlib.pyplot as plt

Second, import your data after finding station data on the NOAA website. After you download the daily data set from the website as a CSV, upload it to the same folder where your project lives. Then, create a new DataFrame (DF).

Python
df = pd.read_csv('wind_speeds.csv')
df

Add a helper column to your data set for a week number. There are a couple more ways you could do this (month, days, etc.) I chose weekly because I feel like that’s probably the sweet spot for looking at seasonal swings without a super messy chart.

Python
df["DATE"] = pd.to_datetime(df["DATE"])
df["Week"] = df["DATE"].dt.isocalendar().week

Then I used the Data Frame to create two “children” Data Frames, one for Dayton, and one for Cincinnati.

Python
dayton_df = df[df['NAME'] == 'DAYTON INTERNATIONAL AIRPORT, OH US']
cincinnati_df = df[df['NAME'] == 'CINCINNATI MUNICIPAL AIRPORT LUNKEN FIELD, OH US']

Then, I grouped by week number to control for any weird swings. I pulled in data from 2021 to the present, so I have a five-year data set to control for any wild swings.

Python
dayton_grouped = dayton_df.groupby('Week')['AWND'].mean().reset_index()
dayton_grouped.rename(columns={'AWND': 'Dayton_Average_Wind'}, inplace=True)
cincinnati_grouped = cincinnati_df.groupby('Week')['AWND'].mean().reset_index()
cincinnati_grouped.rename(columns={'AWND': 'Cincinnati_Average_Wind'}, inplace=True)

Finally, I merged them back together, to create a new grouped data-set.

Python
combined_df = pd.merge(dayton_grouped, cincinnati_grouped, on='Week')
combined_df

Then, I created a plot, with the following formatting.

Python
plt.figure(figsize=(12, 6))
plt.plot(combined_df['Week'], combined_df['Dayton_Average_Wind'], label='Dayton Average Wind Speed', marker='o')
plt.plot(combined_df['Week'], combined_df['Cincinnati_Average_Wind'], label='Cincinnati Average Wind Speed', marker='o')
plt.title('Average Weekly Wind Speeds in Dayton and Cincinnati (2021-2026)')
plt.xlabel('Week of the Year')
plt.ylabel('Average Wind Speed (AWND)')
plt.legend()
plt.grid()

Results

Regardless of the season, Dayton is significantly more windy than Cincinnati. AND IT’S NOTICABLE. Believe me or not, you can tell a difference, and it does matter.

Stay Curious!

Sources

Climate Data Online (CDO) – The National Climatic Data Center’s (NCDC) Climate Data Online (CDO) provides free access to NCDC’s archive of historical weather and climate data in addition to station history information. | National Climatic Data Center (NCDC). n.d. Retrieved April 16, 2026. https://www.ncei.noaa.gov/cdo-web/.


Discover more from The Curiosity Project

Subscribe to get the latest posts sent to your email.

Comments

Leave a Reply

Discover more from The Curiosity Project

Subscribe now to keep reading and get access to the full archive.

Continue reading