Thursday, August 27, 2009

Processing an image versus reconstructing a view: An example from Galileo

Anyone familiar with my image processing works knows my love of working with the worst of datasets in order to try to create something presentable.  In some cases, the images can be cleaned to the point that the image resembles images that were created from much better data.  In some cases, missing data is found or callibration problems are solved.  In these cases, the data really can be brought up to a higher standard.  At other times, the image, while still limited, looks fine to the eye but has clear limitations under closer inspection - certain areas damaged by smearing or perhaps certain areas missing color data which has to be filled in.

However, there are times when an image is simply a cool or unique view that has such serious shortcomings that any product made from it isn't going to be pretty or even interpretable without using extreme and unreliable techniques to fill in gaps and then tweeking it based on other images of the target.  The result is useless scientifically (the raw image might have some basic value, but with heavy reconstruction it would be dangerous to try to base any interpretations on the reconstruction).  The sole purpose of such images is to get an idea of what the camera was "seeing" when it took the picture in a remote corner of the solar system.

An extreme example of this is a dataset from September 13, 2000, when Galileo was millions of kilometers from Jupiter in its long 28th orbit that would send it to the heart of the Jovian system during the Cassini spacecraft's distant flyby in order to do some synchonized studies and pass close to the Jovian moon Ganymede.   Just before Cassini started its far encounter imaging of Jupiter, Galileo snapped some images of Jupiter and Ganymede.  Galileo, its main antenna having never opened, was forced to spend its entire mission communicating through a small antenna that was only there for emergency situations and for the early days of the mission before the planned antenna opening.  It communicated at a paltry rate of  10 bits/second (up to 100/bits per second when antennae were arrayed).  For comparison, the infamously slow 2400 "baud" modems had an effective data rate of 2400/bits per second (although there are some technical differences between baud and bits per second that are irrelevant here).  In other words, it was ssslllooowww.  A compression algorithm wsa developed so that each navigation image, or "OPNAV," would contain just enough data to locate, for example, the position of a moon or the planet versus a star, for example, and nothing more, although two images had a small "truth window" near the center of the disk just to the left of the terminator.  Here is one of the images in its raw form (please note that to see anything but the "truth window," you will need to click on the image and view it at full size):

Not much there.  Using "maximum" filtering one som of the existing pixels on the terminator and limb, and them patching them based on changing solar illumination to fill in the area inbetween, most of the disk could be reconstructed.

 The missing lower tip was filled in based on the upper part of the disk and a transitional area between that and the nearest available data. Ganymede's tiny disk was only missing a few pixels, which could be interpolated (they were not in the same field of view, so it doesn't appear in the above images).  In the example below, it has also been brightened. 

Back to Jupiter, I removed the artifacts that stretched off the disk, making a smooth limb, and smoothed it to get rid of the blocky look.  The banded appearance looked remarkably good considering the source (it was produced using a combination of all the images, not just the one shown above) and combined with color data from a telescopic photo taken around the same time.  I independently process the the "truth windows" and it fit in nicely in its proper place on the reconstructed disk before adding the color data.   Here is the "truth window" mosaic, shown at 2.5x its actual size to aid visibility and showing some banded structure.  The original data was noisy and only 50x50 pixels per image. 


When finished, I added some artificial noise in order to make the reconstructed image look less cartoonish. I also reduced the entire image to 22 percent of its original size (that was the largest size at which it looked somewhat decent).  However, Ganymede suffered, as you can tell by comparing it to the image I posted of Ganymede alone.  The image is extremely limited, but if one put together a photo-essay on the Galileo-Cassini "Millenium Flyby" of Jupiter, it would be nice to give an idea of the how Galileo appraoched the planet as Cassini approached the daylit hemisphere.  There are similar OPNAVS showing Callisto at about the same size as the disk of Jupiter in this dataset, but since its surface has no convenient banded structure and is covered with discrete craters, the only thing one could do is to fill in the entire image was data from other images, which could be done just as well without even incorporating the OPNAV image.  Jupiter  has cloud bands running east and west, meaning that data along the edges of the disk could be used to fill in the gaps to some degree.   So, here it is, the final version,  The "truth window" is impossible to spot because each "window" is only 11x11 pixels at this size.



Processed images Copyright Ted Stryk, Raw Data Courtesy NASA/JPL

3 comments:

Bruce Buckley said...

Wow. You did an amazing job. I'm impressed with what you managed to piece together from so little data. Where do you get your unprocessed data? I'd love to get into reconstructing images like you do. When I was in university I was an astrophysics and computer science major, but my life has taken me in a different direction now. So I have some experience with combining image sets and filtering out imperfections caused by the equipment or the conditions, but nothing as extensive as this. Any suggestions for someone like myself who would like to try this?

Ted Stryk said...

Thanks! Most of the raw data can be found at the Planetary Data System imaging node (http://img.pds.nasa.gov/)
Rings Node (http://pds-rings.seti.org/ the rings node has a lot of the same data as the imaging node but in easier to download formats), and the Small Bodies Node for Comets and Asteroids (http://pdssbn.astro.umd.edu/). The rings node has a lot of Hubble data. The complete set can be found here http://archive.stsci.edu/hst/

Sriram said...

Briliant Job man...