The National Park Service maintains a number of air quality webcam archives that now reach back in time as much as twenty years. Each of the webcams is trained on a view within a national park, and images are typically updated online at fifteen-minute intervals, with the public being invited to “check in on weather, air quality, and scenic views from 18 parks.” The webcam archives are set up to display grids of still images, with the option of searching by date or moving forward or backwards in time by one day or one week. But the same images can also be displayed as moving pictures. And if we display them in that way, we ought to be able to view time-lapse videos that rival others that have been touted as the “longest timelapse ever,” the “longest timelapse in the world,” and so on (see e.g. here, here, and here). It’s true that the people in charge of the NPS webcams haven’t always gone out of their way to keep the cameras steady and continuously operational, since those factors aren’t so important for monitoring air quality or just checking in on the scenery from time to time. But that sort of complication is par for the course when we’re educing data sets in ways their creators didn’t intend—educing them against the grain. Another analogous source of long-term time-lapse video that’s been tapped before is satellite imagery, but the park webcams operate on a more familiar, more human scale. The webcam photos can also be averaged into single still images that resemble traditional “long exposures,” although the consequences of camera motion tend to be worse in that case than with the videos.
The website that hosts the webcam archives states: “Information created or owned by the NPS and presented on this website, unless otherwise indicated, is considered in the public domain. It may be distributed or copied as permitted by applicable law.” Since there’s no indication to the contrary, I’m assuming that this applies to the webcam archives, and that the data is therefore fair game for unencumbered experimentation.
When I first looked into NPS webcams as a source of time-based imagery a couple years ago, there was only one archived image accessible per day. Since then, the online archives have retroactively become much more comprehensive. There are now usually ninety-six different images per day, taken at fifteen-minute intervals dating back to whenever each webcam first went into operation. I’ve designed a MATLAB script to cycle through all ninety-six images for each date, automatically downloading them and assembling them into a video. If we like, we can also specify some smaller number of times than ninety-six in timeIntervals, or a single time such as midnight, or with minor modifications we could move the time of day forwards or backwards while simultaneously advancing the date. The webcams are sometimes down briefly for maintenance, and occasionally they’re even out of commission for months on end, but whenever my script finds an image missing (or the download attempt times out), it simply skips ahead. The variable outHeight specifies the height of the output video images, which I set somewhat arbitrarily to 750 pixels for my “master” video files.
Let’s start with one year’s worth of wash (“National Mall and Memorial Parks, View from Netherlands Carillon Building”), presenting all images available for 2017, taken at quarter-hour intervals. Theoretically, the result could run for up to 19.5 minutes, but it actually runs for a little over 15 minutes, suggesting that only about three quarters of possible images were archived (or available when my software tried to download them with a one-second timeout). The time compression is 7.5 hours per second, disregarding webcam downtime. Bear in mind that we could easily extend this video to cover the entire period from 2004 to the present if we wanted to sit and watch it for three or four hours.
So that’s the sort of result we can expect from assembling every single available image into a video at thirty frames per second. And below is a single still image created by taking the mean average of all 27,557 source images for the same year—equivalent to a year-long exposure—and optimizing the contrast.The camera shifted several times over the course of the year, which creates an abstract effect reminiscent of an unintentional multiple exposure—except, of course, that each of the discernible positions was actually held for hundreds or thousands of exposures. For comparison, here’s an average of just the first three thousand images in the sequence, representing far less camera movement but also a lot less time (roughly one month). The picture is still blurry, but this time it just looks a poorly executed vacation snapshot—that is, until you notice the strange superimposition of nighttime lighting onto the daytime scenery.
The pulse effect introduced into the video by the day-and-night cycle is kind of neat, but it can also distract from other patterns of change, and most of the other park webcams show only a pitch-black frame on a majority of nights. If we want to make the daylight cycle less intrusive, one option would be to limit our video to daytime images only (which is also an option offered for displaying the still image thumbnails online). Below, for example, is a video assembled from all archived images for the year 2016 taken by the olym webcam (“Olympic National Park, View from Lake Crescent”) from 9 AM through 4 PM, which obviously won’t include all daylight images, but should reliably include only daylight images. The jumps between 4 PM on one day and 9 AM the next day aren’t nearly as jarring as I would have expected.
Below is a single mean average of the first 3,600 images in the same sequence, corresponding to the first two minutes of the video (and cutting off shortly before the camera undergoes its biggest shift in position for the year). Here, too, the limitation to daylight images has an advantage: several bright lights are visible across the lake at night, so if we’d included the nighttime images, we’d see them superimposed on the daytime average. The camera position turns out to have stayed remarkably stable over the 3,600 images, giving us a gratifyingly sharp averaged view. The foreground foliage should be blurry, of course, since it moved; and the leaves should appear ghostly, since they weren’t there for much of the time.
Next up is a fifteen-year time-lapse video of mora (“Mount Rainier National Park, View from Paradise Ski Dorm”) with a much higher rate of time compression than we saw in the previous videos: specifically, one frame per day, or thirty days per second (ignoring downtime). I began by downloading every available frame taken at noon from the start of July 2003 through the end of June 2018 and creating a video from them. Unfortunately, the video in this raw form—like others I’ve created in the same way—is nearly unwatchable because of extreme rapid flicker. Some of the flicker effects are due to black frames caused by technical failures (see e.g. 11/1/2007), but others represent views that were legitimately obscured by fog, by a lens speckled with raindrops, or in some other way. To mitigate the flicker, I’ve first taken a moving median average of seven-frame groups, and then applied a mean average of three-frame groups to the result. (Raising the quantity of images averaged into each frame increases smoothness at the expense of shorter-term detail, while reducing the quantity sharpens the shorter-term detail at the expense of smoothness.) We see some interesting patterns of change, such as snow falling and melting and the seasonal accumulation of vehicles in a parking lot. At this rate of time compression, the occasional shifts in vantage point can be somewhat jarring, as can sporadic technical glitches—issues that aren’t nearly as problematic when the still images are being consulted in their intended way.
The same shifts in vantage point also give us a wonderfully abstract-looking result when we generate a single average from the entire fifteen-year sequence.
Next, here’s a time-lapse video of grpk (“Great Smoky Mountains National Park, View from Purchase Knob ELC”), processed in the same way as the last video and covering a similar time span. It happens to be a little more stable.
The advantage of choosing just one time of day, such as noon, for one-day-per-frame time lapse videos is that sun illuminates the scene from roughly the same angle from image to image, changing only gradually over the course of the seasons. The disadvantage is that we can make use of only one image per day. Another approach would be to start with averages of all ninety-six source images per day, rather than with a single source image for each day. But downloading and video-sequencing all ninety-six images per day is time-consuming and, in my experience, takes almost twenty-four hours per source year. To cut down on processing time, we could instead average just the daylight images, since the night images won’t add much (indeed, using them would impose a minimum time window of a day and a half, since otherwise the change would appear to pulse, with the scene holding mostly constant while exchanging “blank” night images from one day for “blank” night images from the next day). The following time lapse of shen (“Shenandoah National Park, View from Pinnacles, Skyline Drive”) covers a three-year span from January 2015 through December 2017 using only images taken from 9 AM through 4 PM (29 images per day), advancing at a rate of three frames per day, with each frame presenting a moving median average of thirty source images. The time scale comes out to a little over three days per second. It’s not as smooth as the previous two video examples, but the time resolution is sharper.
Most of the park service webcams show only a black screen after dark, but wash is an exception, as we’ve seen, since it enjoys a view of the city lights of Washington DC. Here’s a time-lapse presenting every available frame taken at midnight from January 2004 through the end of June 2018, with no averaging.
And a single still average of the same sequence:
The main area I see for improvement here is image registration: adjusting the images so that they line up with each other. That way the videos wouldn’t leap around, and the stills wouldn’t superimpose multiple perspectives. Alas, this can be a very time-consuming step, and it’s also hard to achieve a decent level of accuracy when algorithm-thwarting factors such as snowfall or rain-spattered lenses intrude.
Here’s a current list of all the National Park Service air quality webcams, together with the month in which each one began operating:
- grsm = Great Smoky Mountains National Park, View from Look Rock Observation Tower, April 1998
- grca = Grand Canyon National Park, View from Yavapai Point, November 2001
- maca = Mammoth Cave National Park, View from Hiking trail near Earth House, December 2001
- jotr = Joshua Tree National Park, View from Belle Mountain Weather Station, June 2002
- thro = Theodore Roosevelt National Park, View from Painted Canyon Visitor Center, August 2002
- seki = Sequoia and Kings Canyon National Park, View from Lower Kaweah, May 2003
- mora = Mount Rainier National Park, View from Paradise Ski Dorm, July 2003
- olym = Olympic National Park, View from Lake Crescent, July 2003
- grpk = Great Smoky Mountains National Park, View from Purchase Knob ELC, August 2003
- noca = North Cascades National Park, View from Newhalem Visitor Center, August 2003
- pore = Point Reyes National Seashore, View from Point Reyes Visitor Center, January 2004
- wash = National Mall and Memorial Parks, View from Netherlands Carillon Building, January 2004
- dena = Denali National Park, View from Wonder Lake, July 2004
- bibe = Big Bend National Park, View from Panther Junction Visitors Center, October 2004
- yose = Yosemite National Park, View from Turtleback Dome, October 2005
- acad = Acadia National Park, View from McFarland Hill, August 2006
- havo = Hawaii Volcanoes National Park, View from Kilauea Visitor Center, December 2010 (recently at five-minute intervals)
- shen = Shenandoah National Park, View from Pinnacles, Skyline Drive, January 2011
- grte = Grand Teton National Park, View from Teton Science School, January 2013
- brda = Bryce Canyon National Park, View from Yovimpa Point, January 2016 (recently at half-hour intervals)
- grcd = Great Smoky Mountains National Park, View from Clingmans Dome, May 2018
Postscript (January 12, 2019): In the course of following up on this project, I’ve just noticed that my code is wrongly set up to present the hour beginning at midnight at the end of each day rather than the beginning of each day. This affects only the first Washington timelapse shown above, since I was mostly excluding night views from these examples, but you may wish to adjust the timing if you run the code yourself.