Brooks Groves
All Posts Browse by tag β†’

⚪⚫ They Turned On a Sensor Network at Lake Tahoe. Nobody Wrote the Docs.

Two days after UNR switched on the Tahoe Environmental Observatory Network, I started reading it. No API documentation, then or now. Ten endpoint slugs guessed from a truncation pattern, forty-three sensors that turned out to be thirteen devices, a soil pH of 1.8, and a five-digit parameter code that turned out to be the pollutant the lake’s TMDL actually regulates. Plus nine things I got wrong — including one that silently returned zero rows from every gauge for hours while reporting success.

Read post →

🎲 I Wanted to Play Star Frontiers Again. I Accidentally Built a Game Engine.

It started with a photo of a 1983 Referee’s Screen on Instagram. Four games and about two thousand lines of JavaScript later: a shared engine, dice with real silhouettes and synthesized audio, and a survival game built on genuine USGS topo tiles of Railroad Valley, Nye County, where every distance and walking time is computed rather than invented. Plus three things I got wrong in public — impossible dice checks, atmosphere where information was needed, and death clocks nobody could see.

Read post →

🔥 Watching a Mountain Burn

The Hawk Fire burned across Peavine Mountain north of Reno on 22 August. Ninety-two minutes after ignition, a thermal satellite saw it 315 metres from an aspen grove where Basque sheepherders carved their names into the trunks a century ago — a place I hid a geocache in 2008 and used to ride to in the 1990s. Sentinel-2, VIIRS and a watershed analysis, all free and public, from eight hundred miles away. Includes the terrain conclusion I got wrong first, and why a healthy recovery curve would be bad news for the carvings.

Read post →

🌲 Finding the Trees

A stretch project into airborne LiDAR and point clouds — PDAL, canopy height models, individual tree detection — taken from a synthetic Finnish forest through to real national data. The detector scored 78.4% recall against 450 trees I placed myself. Then recall went up as the data got worse, perfect ground calibration hid a canopy bias, and a 100% precision turned out to be structurally guaranteed. Validated against 1,295 stands from the Finnish Forest Centre inventory.

Read post →

🏞 The Creek That Isn't There

Big Creek runs dry more than a third of the time, then floods 200 times over. Asking Snowflake's warehouse-native AI agent about the creek behind my hometown, and why it only worked because a tested dbt model was underneath it — plus 170 years of Groveland history explaining why the creek was never the town's water supply.

Read post →

🌲 Half a Million Trees

Learning Snowflake and dbt by pointing them at the federal Forest Inventory and Analysis dataset for Washington — 531,490 measured trees, where the wood is, where it dies, what fire does to both, and five confident predictions that turned out wrong, including two the data caught quietly lying.

Read post →

πŸŽƒ Boo Before You're Ready

A twelve-foot animatronic skeleton in the garden-center aisle in July isn't really about Halloween. It's the newsvendor problem, a tariff that changed its legal basis twice this year, a real-estate arbitrage disguised as a costume shop, and a seasonal-adjustment model quietly getting fooled.

Read post β†’

🌿 Eight Years Later, a 2018 Volunteer GIS Project Gets Its Answer

In April 2018 I sent a cold email to a nonprofit I had never worked with. Eight years later, I finally finished the project. A remote-sensing field report on three ONDA riparian restoration sites in eastern Oregon β€” 42 years of Landsat, a completely independent Sentinel-1 cross-check, and one two-sensor disagreement that turned out to be the signal.

Read post β†’

🌊 Thirty Minutes, Fifty Years of Fire

A watershed and post-fire flood-risk analysis for Tuolumne County, California β€” 1,151 stream segments extracted from a 30m USGS DEM, 30 major fires from CAL FIRE FRAP overlaid on the network, and one small fire that broke out on Old Priest Grade above Groveland on the exact ground the model was studying, while it was studying it. A hydrology love letter to the county I grew up in β€” thirty minutes with QGIS, GRASS GIS, and Claude via MCP.

Read post β†’

πŸ”₯ BdgrovesBot β€” A Wildfire Bot That Edits Wikipedia at 7am

Zero to live in a single day: a fully automated pipeline that watches WFIGS fire data and updates Wikipedia's Tuolumne County wildfire tables without a human in the loop. Python, Pywikibot, GitHub Actions, and pixi β€” through the authentication rabbit hole, a live test insert, and a BRFA filed by the book. Every morning at 7am Pacific the bot wakes up, checks the fire lines, and goes back to sleep.

Read post β†’