I almost forgot I was collecting this data!  Here is a time-lapse animation of the map at waterwatch.usgs.gov, which is described as “real-time streamflow compared to historical streamflow for the day of the year.”  You can see where drought persists, and track the sweep of storms that bring streams out of their banks.  Also interesting how entire states flicker in and out, so they must be collecting data by state.  This animation covers the period from January 1 to May 29, 2010.

YouTube Preview Image
Video licensed Creative Commons Attribution license.   Music “Black Rainbow” by Pitx at ccMixter.org, licensed under Creative Commons Sampling Plus license.

This is a 12-month animation of color-enhanced images from NOAA’s GOES East geostationary weather satellite. It covers all of 2009 except for brief periods when my internet connection or my computer were down.  The date and time of each image is at the upper left, if it survives YouTube’s reencoding of the video.  This is a bit long, but here it is for the record:

YouTube Preview Image

This video is made from infrared images, which measure heat radiation, so what you see here is basically temperature. The color is artificial (obviously!) and is used to enhance the contrast between different temperatures. The temperature is significant because severe weather is usually associated with convective systems which generate tall clouds, and the tops of tall clouds are colder than the tops of low clouds. But that daily pulsing you see isn’t necessarily clouds, as discussed below.

Note that the credits at the end of the video have an error in the URL of the original images, which should be http://www.goes.noaa.gov/GIFS/ECI7.JPG.

Read the rest of this entry »

This page documents an experiment designed to investigate the best way to hide email addresses from web-crawling address harvesters, and to track how sophisticated they are at extracting “hidden” addresses.

The folks over at Project Honey Pot and their volunteer members are working on ways to identify and block spam harvesting bots — those automated programs that spider the web looking for email addresses to add to their databases of spam victims. Their documentation and help pages contain a very good discussion of how to “munge” an email address on a web page so that it is not recognized as an address by a harvest bot, but can still be used by human readers. A variety of ways are discussed, from very simple to very complex, and they include some intriguing speculation about the bots becoming sophisticated enough to decode munged addresses, too.

So I created a web page (at a different domain) that is hidden from humans and which has 11 different email addresses on it encoded eleven different ways. They vary from totally unobfuscated to compound JavaScript statements to image-only presentation. I am watching the mailboxes for these addresses to see which ones get spammed and which don’t. That will tell us which ways of munging addresses on web pages to avoid.

These addresses have not been publicized anywhere in any manner, and they have never been used to send email. The user names are unlikely to be generated algorithmically. The web page they are on is unlikely to ever be stumbled upon by a human clicking on links, and a human viewing the page is very unlikely to find the addresses. In short, these addresses are well hidden.

Three of them were spammed nine days after the page was created.

Not just that, but two of the spammed addresses were presented only in an munged manner. That means the spambot that found them already has some degree of smarts at ferreting out what you might have thought a safe way of sharing your email address on the web. Here is a count of spam messages received for each type of munging. (These are not the actual addresses, of course. That domain name does not even exist, so harvesters who visit this page won’t find anything useful.)

Address HTML presentation Appearance First Spam Count
victim0@podunk.edu <a href=”mailto:victim0@podunk.edu”>
victim0@podunk.edu

</a>

victim0@podunk.edu 2009-10-24 7
victim1@podunk.edu victim1@REMOVETHISpodunk.edu victim1@REMOVETHISpodunk.edu 2009-10-24 1
victim2@podunk.edu victim2REMOVETHIS@podunk.edu victim2REMOVETHIS@podunk.edu 2009-10-24 1
As of 2009-11-12

Obviously not all address harvesting bots are as sophisticated as others. I was surprised that the first spam I received went to all three of these addresses. The first address is a gimme to the harvesters, just to serve as a baseline. Any spammer who can’t find that shoudl look for another line of work. But the other two you would think to be more resistant to automated harvesting. So they are, but they’re not bullet-proof, and it’s obvious that those simple-minded ways of munging should be avoided.

This is intended to be a long-running experiment. I’ll only present here those ways of munging addresses that have been proven ineffective against at least one spam harvester; I don’t want to give away all of my tricks to any spammers who might be reading this. But you can read the how-to at Project Honey Pot for ideas on other ways that may still be effective.

Update 2009-11-16: I’ve created a separate page with a plain email address on it that is not linked to at all. It is only listed in a robots.txt file with an entry that tells bots to not go there. That’s the only reference to the page on the whole internet, so the only visits it gets should be evil bots that don’t obey the robot exclusion standard. Any email received sent to the address on that page verifies the nefarious nature of at least one visiting bot.

It was a bright but rainy day at the height of the fall colors, so we took a Sunday drive out to the boonies.  I took the camera, but didn’t use it, though the trees were very colorful.  Fortunately, I did take the GPS!  This video shows the location of our car on a map in relation to the weather as we drove along.  If that sounds boring, don’t worry, it has an epic soundtrack thanks to Free Music by DanoSongs.com.  Note that the time scale in this video is not constant, as explained in the production notes after the break.

We’d never been to Hermann before, so we stopped at the winery.  It’s a very picturesque town, but  it was infested with Oktoberfest tourists, and we didn’t stay long.  Much later we stopped in Cuba for a fast-food dinner after deciding to try to beat the storms out of Rolla.  It was dark by then.  There was some spectacular cloud-to-cloud lightning to the north of the highway on the way back to town, before the rains caught us again.

YouTube Preview Image

Looks good full screen.  I wonder if YouTube does a two-pass reencoding?  This looks a lot better now than when I first uploaded it.

Read the rest of this entry »

Out, d*mn spot!

The NOAA weather radar images from the National Weather Service have a reflectivity key on the side. To get rid of the ground clutter & other low intensity noise, just remove the colors from the image corresponding to returns below a certain threshold dBZ.  It sounds like it ought to be simple, but they threw a small monkey wrench into things.

Transparent NOAA radar composite without noise removalnoaa-dbz-scaleHere are a copy of the key clipped from the large composite map along with a part of the transparent radar-only composite on a checkered background. If everything at or below 5 or 10 dBZ is removed, most of the noise goes away, but the interesting weather remains. However, the composite national image does not consist of the pure colors shown in the key. Areas of the “same” color consist of a smattering of pixels that have almost the same value. It’s easy for your eye to see them as identical, but not quite as simple for a computer when comparing bits.

I entertained the idea of looking at the colors in terms of hue, saturation, and lightness instead of red, green blue. All pixels above a certain brightness and/or saturation could be removed. Those would correspond to white and grey areas, and to the light blue/cyan areas (below 15 dBZ) if the parameters are chosen carefully. Some initial tests looked promising, but then I discovered that the graphics tools I use (ImageMagick and GraphicsMagick) have a method that seems custom-made for this purpose — a method to turn transparent all pixels in an image of a given color, with a fuzz factor. The fuzz factor allows for matching all pixels close to the given color, and that’s just what is needed.

That’s enough of the bit-twiddling details — see the library documentation and my utility’s source code for the nitty-gritty. Lets look at the results.

Read the rest of this entry »

A new time lapse video is up on youtube covering a week-long weather pattern in the southeastern section of the country that resulted in several derechos.  The storn on the 8th of May has been called an “inland hurricane”.  There was a lot of damage over a wide area and a few deaths.  While not a tropical event like a real hurricane, it did have the winds and, apparently, some structural features of a small category I hurricane. The National Weather Service office in St. Louis has a page about the event, and  Stu Ostro, a meteorologist at Weather.com, has a good blog post about it.

What prompted me to make this video so long after the fact was a visit to Johnson’s Shut-ins State Park in Missouri.  I drove in from the south, through Lesterville.  That area was hit by a microburst with winds of 100+ mph (161 km/h).  The National Weather Service in St. Louis says that in the affected forests up to 80% of the trees were felled.  The drive through that forest along Hwy N south of the park is amazing and sad.  The area right around the most visited portion of the park was fortunately spared from the most damaging winds.

The only radar archive I have of this event that I can share is of radar-only transparent GIFs from the NWS, and for some reason I’m having trouble compositing those onto a white map.  I have a script from my Blue Marble experiments that successfully composits them on a projected portion of that image, so that’s what I made the time lapse from.  It doesn’t really affect what you can see from a weather perspective, but the ground clutter blotches are even more annoying against a darker background.

YouTube Preview Image

Update 8-Sept-09: I have reprocessed all the radar frames to minimize the noise from ground clutter.  The new, improved video is what is  embedded in this article now.  The original is here on YouTube.

What are those flashing, oscillating spots or blobs on radar animations?  Short answer: noise.  NOAA has the long answer.  In part:

Echoes from surface targets appear in almost all radar reflectivity images. In the immediate area of the radar, “ground clutter” generally appears within a radius of 20 nm. This appears as a roughly circular region with echoes that show little spatial continuity. It results from radio energy reflected back to the radar from outside the central radar beam, from the earth’s surface or buildings.

Under highly stable atmospheric conditions (typically on calm, clear nights), the radar beam can be refracted almost directly into the ground at some distance from the radar, resulting in an area of intense-looking echoes. This “anomalous propagation” phenomenon (commonly known as AP) is much less common than ground clutter. Certain sites situated at low elevations on coastlines regularly detect “sea return”, a phenomenon similar to ground clutter except that the echoes come from ocean waves.

Radar on Blue Marble image

Radar on Blue Marble image

In many national radar animations you can see these blobs of ground clutter reflections sweep across the US from east to west, and the timestamp shows that happens mostly at night.  I guess that must be what they talk about in the second paragraph quoted above.  Follow the link for more information about NOAA’s radars and what you see.

This noise is annoying when displayed on the white map of the US.  It is very annoying when displayed on the Blue Marble map because the noise contrasts so much more with that background.  It’s really too bad that NOAA does not provide radar images with the noise removed.

The ground clutter reflections can be effectively removed, a fact demonstrated by many (most? all?) commercial weather services.  I have made some really amazing looking time-lapse videos with radar images from Weather Underground.  Unfortunately, those images are copyrighted, so I cannot in good faith redistribute the videos made from them.

Could I remove the clutter?  Playing with an image in GIMP makes me think that eliminating all pixels at or close to white would help a lot.  I don’t think I can do that with the command line tools I use (mostly ImageMagick).  Writing a program to do so might happen some day.  It would probably look  for pixels with a high value and very low saturation, i.e., very close to white.  That algorithm wouldn’t get the blue that shows up close to the radar, but just removing the surges of white would help a lot.

Update 1-Sept-09:

Actually, it looks like it might be pretty easy to remove the noise by looking at hue and saturation.  The problem is getting the right headers and libraries on my main development systems.  Right now I’m in dependency hell, it would appear.

Update 8-Sept-09:

See this post about the solution.

I have a need for a utility to translate shapefiles to SVG images, and I’m thinking of writing my own.  I’m aware of the one at carto.net.  I don’t like that it requires shp2pgsql, though; there are native Perl modules for parsing shapefiles so there should be no need for external executables with their own prerequisites.  Also, if I write my own I can put into it whatever features that I want… if they are within my capabilities.

If anyone stumbles across this post and has something that they’d like to see in such a utility, please leave a comment.

Update: Success!

Read the rest of this entry »