Weather Dashboard
Purpose
This webapp is designed to provide a analysis of weather forecast accuracy using historical data from OpenWeatherMaps. It aims to help understand the reliability of weather predictions and make informed decisions based on the forecast.
Naturally, the accuracy of weather forecasts fluctuates over time, and likely can never be 100% accurate. This webapp aims to provide insights into how good the weather predictions are, whilst reminding us of the limitations.
Data sources
The data source for this project is OpenWeatherMaps. The current weather and the 5-day 3 Hour forecast is collected every hour, and analysed within this webapp.
Glossary
MAE - (Mean absolute error.)
This is calculated by taking the absolute value of the difference between the predicted and actual values, and then averaging those differences over all the predictions. As this number uses the absolute value, it is always positive.
RMSE (- )Root mean squared error)
This is calculated by taking the square of the difference between the predicted and actual values, averaging those squares, and then taking the square root of the result. As this number uses the squared value, it is always positive.
Bias (Mean error)
This is calculated by taking the difference between the predicted and actual values, averaging those differences, and then taking the average of the absolute values of those differences. This is not squared or absolute, so this shows the bias of the weather in both directions.
Technology
The frontend is built using Next.js and Tailwind CSS, and the backend is built using Python and FastAPI to serve the data. The data is stored in a PostgreSQL database, and the frontend is deployed on Vercel.
About the Author
Created by Scott Fear: Software engineer, Data Analyst, Weather Enthusiast, Pianist, Writer.
This web app was spawned from a personal interest in weather accuracy analysis. As part of the dissertation for my Masters; degree, I generated a tool that collected weather data hourly, and then analysed the bias of temperature forecasting over time.
At the time, I created an iOS app that queried an API, and left my iPad on for months - collecting current weather and the weekly forecasts that were updated hourly. This web app is a modernized version of that tool, using modern web technologies.