Snow Stripes: Rhythms of winter snowfall in Colorado's famed ski towns
It's not the snow itself that defines winter in a ski town.
It's the way it changes the mood of entire town. How it sparkles in the eyes of the grocery clerks and shuttle drivers. It changes the way coffee tastes, makes even night owls restless at dawn. It's the patterns that sweep by our windows in the orange glow of the streetlamps. With a few notable exceptions (will anyone forget Feb. 20, 2012?), it's not one deep, snowy day that you remember about a winter. It's the day-in-day-out collision with the whims of nature; at times riling, but mostly quiet and personal. It's not the flakes themselves, but the waves of pulsating storms that pile in from the Northwest. It makes people lose their minds. Quit their jobs. It makes people shove in the lift line, or high five strangers. It's lust.
Winter is in those long, dry and cold Januaries when high pressure ridges park up North; when the sun never leaves eye level and mud crunches under your ski boots in the parking lot and you're afraid it's over. And then it's not. It's the strain and cold sweat of shoveling the deck for the 50th time and that deeply held but never spoken wish that it would just stop for a moment, so we could give our legs a break and unfreeze our smiles.
Life in a ski town is lived around and through the rhythms of snow storms. This month, just in time for the end (?) of this ski season, I've curated some historic snowfall data from around Colorado and created an app where you can visualize the annual patterns of winter in Steamboat, Winter Park, Vail, Crested Butte, Breckenridge, Telluride and Silverton.
These are Snow Stripes.
This is the first winter I spent in the Yampa Valley. It was a good one. It was enough to stay. My curiosity drew me to check out a few other Snow Stripes: my birth year, what winter looked like 100 years ago (1921 is the cover photo for this post), and the one season I spent in Vail. Each one is unique - just like the snowflakes that inspired them.
Learn data science fundamentals by
following along with this post
DATASET: Colorado snowfall history
LEARN: Dates, lapply(), ggplot2 and Shiny
These data come from National Weather Service co-op stations. They are NOT, I repeat, NOT official ski resort mid-mountain or summit totals. So those numbers may not look exactly the way you remember that snow year. Unfortunately, resorts don't handily give out daily snowfall data. But if you know where I could find them, please let me know! Most of these weather stations are located in the towns themselves, usually near the base of the ski area. In Steamboat, the station is located near the high school. Most of the data go back to 1920. Records start in 1893 (!!) but there was too much missing data to make it worthwhile to go back that far. Vail's data is the most limited; it starts in 1985. Vail was incorporated (some might say invented out of thin air) in the 1960s so likely that station went in a bit later. In general, I've noticed a couple years look way off: in those cases, stations may not have been accurately reporting at that time. "No snow" and "no data" look the same on these graphs, for simplicity's sake.
Snow Stripes are intentionally minimal and sparse. Snow doesn't need a lot of words or numbers; it shines on its own. I wanted to give the feel of the rhythms of storms and dry spells while leaving math out of it. I did not invent this design. This minimalist visualization was pioneered by Ed Hawkins, a climate scientist who famously designed Warming Stripes. It's a powerful project and I highly suggest you check out his work, which continues to inspire me.
You may have noticed how a Snow Stripes year starts and ends in July. This is a conscious choice I made and I want to share my reasoning: It's partially aesthetic: using a true calendar year would split the snowy days up and leave the middle blank. But it's also how I think about time in a ski town, and I'm wondering if you do, too. In my mind, the calendar takes the shape of a clock with summer at the top at 12, and winter at the bottom, with Jan. 1 at 6 p.m. sharp. I can't explain why.
My hope is that you find some Snow Stripes that resonate and bring up some delightfully white and fluffy memories. While this was my first time making an app using Shiny, I share all my code as well as some handy data cleaning and visualization techniques in this month's tutorial.