Tempel 1 NASA Pass-by
Synopsis:
This is a brief project involving NASA’s STARDUST-NExT spacecraft. In 2006, the craft collected samples from Comet Wild 2 and turned back around on a follow-up mission to visit the comet Tempel 1. On February 15 of this year (2011), a series of images of a Tempel 1 fly-by were posted on the Jet Propulsion Laboratory website. Blown away by such an amazing event captured in stunning clarity, I immediately had to put together an animated version of these images. Below is a short summary of a quick hack to create such an animation as well as the resulting files.
More Information:
For more information on the mission, feel free to peruse the press-kit information or visit the fly-by page.
The hack:
Python Urllib2 and Urllib are used to grab the pages and download the images, respectively [urllib2,urllib]. Images are then processed with ImageMagick. NOTE: Using a parsing library like Beautiful Soup would be much better, but what would a hack be if it were the optimal method? Now to the code…
grabber.py – get the images download
This will dump all the images into the current directory so probably best to make a new directory and launch from within that desired location.
#!/usr/bin/env python
import urllib2,urllib
lines = urllib2.urlopen('http://www.jpl.nasa.gov/news/stardust/').readlines()
files = []
for line in lines:
if '<a href="/news/stardust/index.php?fileID=' in line:
files.append(line)
links = []
for line in files:
if "<h3>Comet Tempel" in line:
links.append(line)
pre = "http://www.jpl.nasa.gov"
linkslist = []
for line in links:
this_l = line.split('"')[1]
linkslist.append(pre+this_l)
x = 0
for link in linkslist:
thislink = link
thispage = urllib2.urlopen(thislink).readlines()
images = []
for line in thispage:
c = []
if "../../images/stardust/stardust2/" in line and "alt='Comet Tempel 1" in line:
c.append(line)
if c:
images.append(c[0])
for image in images:
d = image.split("'")[1]
g = thislink.rpartition("index.php")[0]+d
thisimage = g.rpartition('/')[2]
x += 1
try:
image = urllib.URLopener()
image.retrieve(g,thisimage)
print "Grabbed image # ",x," ==> ",thisimage
except:
print "**** Problem grabbing image # ",x," ==> ",thisimage
Making the animations:
The following will invoke a small ImageMagick GUI instance. Once the images are loaded the animation will play. To tweak/save, right click and the menu will appear where you can manipulate the GIF. Seen here.
animate *.jpg
Making a scaled version:
Use ImageMagick to scale all the images and animate the scaled products.
for i in *.jpg; do convert -scale 20% "$i" $(basename "$i" ".jpg")"_scaled.jpg"; done animate *_scaled.jpg
Results:
Okay, enough for you already? Well here are the results: Large version and Scaled version.
… Then felt I like some watcher of the skies
When a new planet swims into his ken;
Or like stout Cortez when with wond’ring eyes
He stared at the Pacific …- John Keats, ms of sonnet (1816)
-Matthew
