This project started with a hunch - that the 7-day weather forecast isn't reliable enough to be of any practical use. So many times you check the weather and see that it's supposed to be cold and rainy next weekend - then when the day comes around it's actually warm and sunny.
So the aim of this project was to provide a reverse-weather-report. That is, instead of showing the predictions for the next 7 days from today the Weather Reporter shows what they predicted today's weather would be, every day for the past 7 days.
This can be useful to gauge the accuracy (or otherwise) of the 7-day forecast. For example, the 7-day forecast for Sydney on the 5th January 2019 was for a dry 31 degree day. The actual weather was 38 degrees and thunderstorms:
I wrote a Python script which scrapes the BOM weather report every day, and captures readings for 664 weather stations across Australia. The script is set to run automatically every day at 6:30am - in fact I set a scheduled task to wake my MacBook, run the script, then send it back to sleep afterwards.
Using a combination of pycurl and BeautifulSoup the script analyses the weather reports then stores the results in a PostgreSQL table. A Rails app displays each day's results, and also provides a Leaflet map interface to search for weather stations.
Due to limitations in the free Heroku PG database, only today's date is shown on the website, but the full database of historical records is also available - please get in touch if you'd like a copy of this dataset to conduct further analysis on it.
See the live site here.