Python · Matplotlib · OpenWeatherMap · GitHub Actions · Twitter · Bluesky
🌪️ weather-report-bot
"It's already on the ground. It's not gonna stop."
A fully automated broadcast-quality weather intelligence system. Twice daily it wakes up, pulls live atmospheric data across four wildly different locations, renders cinematic station cards, and fires them to Twitter and BlueSky — no human required.
Each station card is a 1200×675 broadcast-style graphic with three panels: current conditions with color-coded temperature and hand-drawn weather icons, an instruments panel with arc gauges for humidity and UV index plus a wind compass, and a sky & atmosphere panel with precipitation chance, cloud cover, sunrise/sunset, and pressure. Every pixel hand-drawn in Matplotlib — no emoji fonts, no templates.
The four stations span completely different climate regimes: Pacific Northwest maritime, Sierra Nevada foothills, Mojave Desert extreme, and Great Basin high desert. Same report time. Four completely different air masses.
Python · MetPy · Py-ART · Tweepy · pixi · 7 federal feeds
🌪️ Sierra Nevada Alert Bot
"The mountains don't warn you. This bot watches so you don't have to."
Autonomous environmental monitoring for the Sierra Nevada — wildfires, floods, earthquakes, air quality, and severe weather. It polls seven live federal data streams every few minutes on GitHub Actions and posts to @SierraNevadaWX the moment something worth knowing happens. Intel the instant it fires — not whenever you remember to scroll.
It started as a question — could one person, with no server and no budget, watch an entire mountain range in near-real-time? Seven feeds later, it ships with a full science toolkit: MetPy Skew-T Log-P soundings for reading the morning atmosphere, and Py-ART NEXRAD Level 2 dual-pol analysis with automatic tornado-debris, TVS, and hail signature detection.
The Pipeline
GitHub Actions wakes up twice daily, runs the Python orchestrator, and pulls live atmospheric data from OpenWeatherMap One Call 3.0 for all four stations simultaneously — current conditions, forecast, UV index, humidity, wind, pressure, dew point, cloud cover.
The Matplotlib renderer then builds each card from scratch: temperature colored by heat level, weather icons drawn as pure geometry (no emoji fonts, no image assets), arc gauges for humidity and UV, a wind compass with directional arrow, precipitation bars, and a broadcast-style ticker across the bottom.
Cards are posted to Twitter/X via Tweepy and Bluesky via AT Protocol with live data captions and location hashtags. Total runtime: about 4 minutes on GitHub's free tier.
Why These Four
Lakewood is home — the Pacific maritime baseline. When it's 52°F and drizzling in Lakewood, that's just Tuesday.
Groveland is where I grew up, at 2,800 feet on the western slope of the Sierra. It swings between fog and fire season. The hometown gauge.
Death Valley is the extreme outlier — the card that always reads 105°F when everywhere else is mild. It's there to remind you what weather actually means at its limit.
Reno sits just over the Sierra crest in a completely different climate regime — high desert, intense sun, wind. The contrast between Reno and Groveland in a single storm is one of the most dramatic demonstrations of orographic lift you'll find.
Python · Open-Meteo · NWS · GitHub Actions · 15-min updates
🌡️ Weather Station
High-end real-time weather dashboard monitoring four stations across the American West — Lakewood WA, Groveland CA, Reno NV, Death Valley CA. Wind compass with SVG dial, barometric pressure trend arrows, NWS alerts, moon phase, 24-hour trend charts, air quality, 48-hour hourly forecasts. Updates every 15 minutes via GitHub Actions. Zero cost, zero dependencies, looks like a NOAA operations center.
FORTRAN · SNOTEL · GitHub Actions · Pacific Northwest
🌨 CASCADIA-WX
FORTRAN atmospheric analysis for Pacific Northwest mountain weather. Lapse rates, snow levels, precipitation phase, atmospheric river index, storm classification. 11 NRCS SNOTEL stations across Rainier, Olympics, and the Cascades — daily GitHub Actions pipeline, amber phosphor dashboard.
Cascades: 15% of normal · Olympics: 33% · Rainier: 53% · Apr 2, 2026