On June 10th, a major wind storm came to my city. That storm was powerful enough that it knocked all the NWS ASOS stations near me offline for a few days. Eyeballing the cheap Amazon-special weather station i recently acquired, the seeds of an idea formed.
The result of that idea is Weather Station Alpha: A self-contained forecasting box that predicts seven distinct severe weather hazards across 1-hour and 24-hour horizons, using local sensor data only.
The hardware sits inside a metal project box running neural net inference on a schedule, with an SDR, LEDs, a barometer, and its own cooling fans, so it runs at the absolute limit of what the Pi's power supply can handle. Any more overhead and this little guy undervolts.
I wrote five services to orchestrate the ui and api, sensor data pipeline, machine learning pipeline, active cooling, and physical LED status animations.
The prediction engine runs an LSTM neural net with attention, trained on 30 years of official NWS data. To resolve prediction confidence, the system blends a 500-pass Monte Carlo simulation 50/50 with a distance-weighted K-Nearest Neighbors algorithm. The Monte Carlo engine generates randomized path variants to simulate realistic transitions, while the KNN uses the network's N-1 layer as a vector embedding space.
This acts as a real-time learner, and is the real strength of the system: when the box fails, you can flag the timestamps in the admin to inject new example vectors, teaching the box about local climatology and sensor quirks instantly without retraining the underlying neural network.
The data collection relies on an RTL-SDR USB dongle pulling radio transmissions from local wireless sensors, combined with an on-board USB barometer.
After I got all the bits in the box, i drilled 1/2" holes. 2 in the lid for the antenna and LED, and one in the back for power. I put rubber grommets on those holes. I also added some o-rings to the silicone diffuser, and cut a nice decal and lettering for it with my circut machine. I think it came out pretty sharp.
After initial setup, I spent a week calibrating it against the real local data..adding and removing samples and tweaking thresholds. It was a particularly stormy week so I had good data to test against. After that week, I was satisfied with its sensitivity and dataset...or so I thought.
About a week after this calibration a funny thing happened with the real time learning...The box was giving me a "wind" warning one afternoon. I looked outside at the nice calm day...and decided this was another false positive to be corrected and tamped down. I raised the thresholds and added a none point for that time.
Whelp, 15 minutes later, a gust front came thru that was strong enough to knock some tree branches off.
I sheepishly deleted that none point and put the thresholds right back where I had them. It was then I vowed to wait a week before questioning the black magic of the box and applying corrective inputs.
Now, if society collapses tomorrow, the National Weather Service disbands, and all the doppler radars are shut down...I'll still have a decent little severe weather warning system so long as I keep that computer powered, adjust it for events it misclassifies, and change the AAs in the sensors every 9 or so months.
The entire parts list, a more in-depth explanation, and the code are open-source and ready to build, available on my github.
Project repo: https://github.com/Dominic-Muscatella/weather-station-alpha
OR, skip over the setup instructions and go right to the explainer: https://github.com/Dominic-Muscatella/weather-station-alpha/...