r/dataisbeautiful 2d ago

OC [OC] The July 4 flash flood on the upper Guadalupe River (water level heights above normal)

This animation shows water levels on the upper Guadalupe River from midnight July 4, 2025, to 6 p.m. July 5 (local time). The flood killed 119 people in Kerr County, including 25 girls and two teenage counselors at Camp Mystic.

Data sources

Tools:

  • Python for data harvesting, processing, and basemap generation
  • Svelte 5, D3, and custom JavaScript for visualization

Interactive version with contextual information: https://www.willkoeppen.com/datavis/guadalupe-floods/

534 Upvotes

34 comments sorted by

65

u/WheelerDan 2d ago

Legitimately beautiful, a rarity for this sub.

30

u/Xaknafein 2d ago

Crazy and interesting. Thanks for sharing.

33

u/nstutzman28 2d ago

This is beautiful data! So interesting to see how the lake dampened the wave

30

u/willkoeppen 2d ago edited 2d ago

Absolutely. Canyon Lake was constructed, at least in part, as a flood-control reservoir. It did its job!

Side-note: after years of drought, the Canyon Lake reservoir was at 46% capacity. This single event brought it up to 68% capacity in a few days.

4

u/ThaCarter 1d ago

In a pre-dam / resevoir state, more of that freshwater would have been lost to evaporation and the sea?

8

u/willkoeppen 1d ago

Yes, and the communities downstream would have been far more affected by the flood event.

10

u/QuantumCapelin 2d ago

This is great, I've never seen data presented like this before. One thing I'd suggest is to add a scale on the map. I'd like to know how far between the camp and the lake for instance. Miles AND kilometers please!

4

u/willkoeppen 1d ago

Good point, I'll add a scale!

Just for reference, it's about 75 miles (120 km) from Camp Mystic to Canyon Lake if you follow the rough line of the river (without meanders).

6

u/HiFiGuy197 2d ago

What happened with the 36’ gauge that it dropped so fast?

I’d think it failed, rather than the water level actually dropping that fast.

12

u/willkoeppen 1d ago

Yes, that's exactly what happened at the Center Point stream gauge. The gauge at Hunt (which is the second from the left) also failed after recording levels at 30' above normal.

I tested out a few ways of indicating gauge breaks, but all the things I tried ended up just highlighting the locations where there was no longer usable data. So I settled on fading out the bars where they had missing data points instead.

15

u/willkoeppen 2d ago

Redundancy to follow the rule-set:

Data sources

Tools

  • Python for data harvesting, processing, and basemap generation
  • Svelte 5, D3, and custom JavaScript for visualization

5

u/Gandalfthebran 2d ago

I am wondering why did you use JavaScript for data visualization? I ask because I almost exclusively use python, including visualizations. Is it easier in JavaScript?

10

u/willkoeppen 2d ago

Python is great for static visuals, or building movies frame-by-frame!

But if you're making an animation or want to have some web-based interactivity, it's worth using JavaScript because it allows you to take advantage of all the transitions and tweens of D3 and CSS (e.g., the bars don't jump up to the next position, they slide based on a given duration; the time flies out and fades out when it changes; the bars smoothly fade out to zero opacity when there has been no data at a gauge for more than 60 minutes, etc.).

You can build tweening into a python-driven animation, but it starts to feel a bit painful to track ancillary values like color and alpha for every element that's transitioning.

A lot of these transition effects are more apparent in the original graphic, which has an interactive time slider that you can scrub or use arrow keys on, roll-over tooltips, etc.

3

u/mosi_moose 2d ago

That original interactive graphic is really cool and overall it’s just a really cool and creative visualization combining the river map, gauges and time dimensions. If you’re interested I have some ideas to improve it, if not just ignore what follows. This is really good.

I think it’s somewhat hard to appreciate the speed of the water rise with the small clock in the footer and the minutes spinning by super fast. Slowing things down, repositioning / enlarging the clock and using higher contrast colors for the clock could help.

From a narrative perspective (if you want to go there) I’d love to see a couple of “checkpoints” called out, like: * HH:mm heavy rain starts * HH:mm river starts to rise at Camp Crystal * HH:mm Camp Crystal gauges peak at xx feet * etc

Again, very cool.

3

u/snakesoup88 2d ago

I'm surprised that the gauge capacity goes up to 45 ft. This is a rain of the century type situation. Hard to imagine things are overbuilt with that kind of foresight.

5

u/willkoeppen 1d ago

Unfortunately, I wasn't able to find out the specific type of water level sensor at that station.

If it's a bubbler or a pressure transducer, the sensor is measuring the water pressure in the stream, which increases with water depth. So, there's no limit to the gauge capacity per se (unless the hardware gets physically ripped out).

It could also be a radar mounted on the bottom of the bridge, and in this case, it's a pretty tall bridge. If you scoot around on the street view there, you can see the telemetry box for the gauge at the north end of the bridge.

4

u/snakesoup88 1d ago

Fascinating. I was picturing a really tall collection beaker. That bridge look a lot like this one. If so, the water level got above the tall bridge ☹️

https://youtu.be/HqXXbjN-hhs

2

u/willkoeppen 14h ago

My god, I hadn't seen that video, thanks for sharing it. Kinda explains why the gauge on the Center Point bridge broke and never came back online....

2

u/The_Evil_Potatoe 1d ago

Really cool visualization. Fascinating to see the effect of the lake, and I would’ve thought that the surge of flood water would be spread throughout the river more, rather than being concentrated in a small area. Guess that’s how much a water surge there was.

One of the best I’ve seen on here recently - nice stuff OP

2

u/willkoeppen 1d ago

First, thank you!

Second, the effect of the Canyon Lake reservoir is definitely dramatic. It was at very low capacity, so it could soak up all that water. I wondered a lot how things would have looked downstream if the lake had been at its normal capacity instead.

1

u/LetMePushTheButton 17h ago

Imagine the visualization if the city actually had water level monitors on the river that the local government refused since it was from “democrat funds”.

1

u/Gandalfthebran 2d ago

What was the cause of the flash flood?

9

u/willkoeppen 2d ago

It was from major rain event (total rainfall up to 20" in spots) caused by the left-overs from Hurricane Barry. The moist air from the hurricane over the Gulf pushed up and over the Edwards Plateau and then just sat there, dumping rain.

2

u/Rylando237 2d ago

A lot of water

-2

u/cheesepuff1993 2d ago

That's 15 yards at its peak for those who need to understand it's 3/20 of a football field..

Anything but metric 😁

-34

u/[deleted] 2d ago

[deleted]

9

u/z64_dan 2d ago

Man they just let anyone get a reddit account nowadays.

3

u/oncore2011 2d ago

You seem fun.

2

u/Electricengineer 2d ago

What does that even mean.