Historical temperature distributions
Remember the Weather
When you’re figuring out where to go, or when to go there, remember that a great shadow force will shape your experience.
Say you’re thinking of visiting Belgrade, Serbia in August. What might the weather be like?
Many weeks or months out, there’s no way you can get a reliable forecast.
Wikipedia gives great historical summaries of climate data, so you might check that out:
You probably want to ignore record highs, because that doesn’t tell you about anything other than a freak heat wave. So you might look at the average high or daily mean temperatures.
Let’s see, August says the average high is 85.5℉. That’s not so bad! The daily mean (74.8℉) isn’t bad either.
But wait, the average is missing some key information: the variance. As in: what are the odds it’s actually much hotter (or much colder) than the average?
Check the Spread
Since variances are probably hard for most people to reason about, and we’re great at eyeballing data (especially if it’s colorful), why don’t we just look at the daily highs for our month in question in a recent year?
Here I picked colors according to my own preferred temperature range: anything above 90℉ is red, anything 69℉ or lower is blue, and all the “nice and warm” temps (70s & 80s ℉) are in yellow.
Even better, why don’t we look at the last three years?
There’s a chance we’d have a good chunk of warm weather (albeit with some rain: the small blue bars extending below). But there’s also a chance we could hit a week of 90s or even 100℉ weather. It’s a risk.
If we might want to move our trip a month or two out, we can plot multiple months and compare them.
Compare with, for example, Tel Aviv, which hovers right around 90℉ and has shockingly little variance.
Or, if you want somewhere cool:
I’m calling the tool I built to fetch historical weather data and plot the spreads
weatherspread. It’s open source, so feel free to check it out and use it.
Retrieves and plots historical temperature distributions. Good for travel planning.
Also, if you know good historical weather API with a high free tier, let me know! The best I found was Visual Crossing, but I hit their 1k requests / day limit very fast (each day counts as one request). Right now, the app is powered by Meteostat, along with Geopy’s interface to Nominatim for looking up the (lat, lon) of place names.