[Geysers] automating eruption logging?
Gordon Bower
taigabridge at hotmail.com
Thu Jul 26 16:18:37 PDT 2012
When the Upper Basin still webcam first burst upon the scene, several of us explored the possibility of taking advantage of it as a data logging device.
Recording every image off the cam -- back then it took a picture every 19 or 20 seconds even though the regular viewing page was only set to refresh every 30 seconds -- is straightforward. For a human, flipping through those images looking for puffs of white in particular spots at expected times is easy and fast: you could probably get through all the daylight pictures for a whole day in about half an hour and manually flag the ones showing eruptions.
Nighttime eruptions at least of Old Faithful, Beehive, and Lion are easy enough to spot when there is moon up, especially if you have software to automatically brighten the image. Old Faithful is usually detectable even without moon. (I wrote a script to count the brightness of each pixel and re-scale them into a greyscale image such that 90% of the image was darker than 10% grey, 50% was darker than 50% grey, etc. Noisy, but a lot of information is buried down in the noise at night.)
Writing software to automatically flag the eruptions, rather than having a human flip through them, is a bit harder. You have to look at very precise locations in the picture to see Aurum, Little Cub, and Beehive's Indicator, the eruptions are only a few pixels high, and since the camera is mounted on a tree that sways with the wind, you can't hard-code which pixels to look at: a "fixed" point in the image moves up and down randomly by 5 pixels almost every day and by more than 10 when it is windy. There isn't much left-right panning - that would require twisting the tree trunk - but there is tilting of the same magnitude as the up-down offset.
When I first tried it, in the fall of 2006, I tried using a line detection approach to find the benches in the foreground, since they are never blocked by steam. Oops: in years that have real winters, the benches completely disappear. (People stand between them and the camera too, but often the line can still found.) Instead I had to use the ridgeline in the background to register the image: essentially I measured where the ridgeline was in a reference image, then scanned a zone about 20 pixels either side of it, and searched for the vertical offset and tilt that gave me the strongest contrast. This usually works even when Old Faithful blots out half the screen, but sometimes doesn't if there is bright sun on one side and dark cloud on the other. A better computer graphics guy could probably do a better job registering the pictures than I could.
Once you get that far, you just look for points that are unusually white. I defined 4 clumps of points, the areas just below, right above, some distance above, and horizontally adjacent to, the vents of each geyser I was interested in, and looked for times that the second (and sometimes also third or fourth) was unusually white more so than the first was. So far so good, for one season, but not the whole year. Surprise: Little Cub erupting on an August afternoon makes LESS steam than Little Cub/Lioness/Big Cub NOT erupting on a November early morning. If you choose a fixed cutoff level, you get a lot of false positives on cold or humid days and/or you miss a lot of eruptions on hot dry days.
In 2006 the Park Service was displaying the time (with seconds), temperature, and relative humidity across the top of each image. I stripped these off, converted them back to text, and had a sliding scale for my detection limits based on the temperature and humidity. They confounded me by removing first the humidity, and then the temperature from the image. (They have also removed the seconds from the timestamp now.) You can get these every 15 minutes from the stream gaging station if you really want them, but it is a nuisance to harvest data from two different websites and combine them.
The camera also got re-aimed every few months, and after each re-aiming I had to spend several hours re-selecting my reference locations and several days testing and refining. As time went by I got less and less willing to try to sink so much time into hobby software, and completely abandoned the project in the summer of 2008.
So, is it possible? Sure, it's possible. If you really want to, you can get almost every Old Faithful and Beehive, all daytime and some nighttime Lions, about 90% of daytime Plumes, Aurums, and Depressions, and about 80% of Little Cubs. With intelligent guessing you can (when the camera is aimed far enough left) get almost all daytime Oblongs, Grands and Giants, and most daytime Riversides and F&Ms but human intervention is needed to tell these - especially Grand and Oblong - apart.
Is it worth the trouble? No, not really. In 2006-2008 we were getting better data off of the temperature loggers than we were off the webcam. With the loggers not being regularly downloaded, perhaps there is a reason again. But I would only commit to it on an ongoing basis if the Park Service folk in charge of the camera would commit to supplying the necessary time and weather information and to not changing the aim of the camera on a whim. It would be a fun project, if someone on the other end cared enough about it to make use of it.
Operationally, I admit that automatic eruption detection is a cute toy, that wouldn't gain the rangers anything beyond what they could already gain by quickly flipping through a couple hundred screencaps in a minute each morning to look for the last eruption of each geyser they cared about.
If any of the other folk on the list who experimented with processing the webcam captures would like to chime in, I for one would enjoy hearing about their experiences and comparing notes a bit.
GRB
More information about the Geysers
mailing list