Outdoor weathering monitor
One-minute weather readings in, a dashboard anyone can filter out.
A logger writes 1,440 readings a day. How do you keep what they say without storing every one?
An outdoor weathering site records temperature, humidity, UV and light every minute, next to a weather station's rainfall. This tooling loads both into MySQL and turns them into an Excel dashboard and a PDF report.
github.com/floraliu-dev/outdoor-weathering-monitor ↗ · Python · MySQL · Excel · Demo runs on synthetic data.
30 times fewer rows, same accuracy
Every reading is 1,440 rows a day; a sample alone would lose the extremes. The importer keeps the two apart:
- It keeps one row every 30 minutes, with the value at that moment.
- Daily average, minimum, maximum and range come from all 1,440 readings of the day.
- Daily light and UV dose are integrated from the full one-minute data.
- The station's temperature, humidity and rainfall are merged into the same table.
A dashboard that follows the question
Eight linked charts read from that table: temperature, humidity, UV, light, precipitation, rainfall ratio, and daily UV and light dose. Month and year slicers pick one month, several, or a range across the new year, and every chart follows.
The same data also feeds a script that writes an eight-panel chart, a Markdown summary and a PDF report from one workbook.
Try it
- Download the demo dashboard (Excel) ↗, filled with a year of synthetic data laid out like the real table.
-
Importer:
pip install -r requirements.txt, set your MySQL credentials, thenpython deploy_all_data.py. It creates the database on the first run. - The site's own logger and station files are confidential and not in the repository.