IPB

Welcome Guest ( Log In | Register )

Processing VIMS cubes, An attempt at "true" color
ugordan
post Sep 10 2006, 07:51 PM
Post #1


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



Right, a suggestion I made here in another topic made me wonder why not try that myself. A bunch of data was sitting on the PDS, after all. After a hassle figuring out just how the image cubes are organized and trying to read them, finally I was able to produce some results. This is all very rough work, can be considered first-iteration only and not particularly accurate.
Basically, I used the cubes to extract the visible spectrum in the 380-780 nanometer range which was then input to color matching code I found here by Andrew T. Young.
The code integrates over 40 10-nm steps to produce CIE XYZ color components. I then converted these to RGB values.

I'm aware of at least three inaccuracies in my code as of yet: one is the above sampled code apparently uses Illuminant C as the light source, not true solar spectra so the color turns out bluish (has a temp. of 9300 K instead of 6500 K, AFAIK). I tried to compensate at the moment by changing the final RGB white balance, but this is probably an inaccurate way to go. Another inaccuracy is I don't do bias removal from the cubes. This likely affects the outcome. Also, I don't use the precise wavelengths the code requires, but use the closest one in the cube. I intend to fix this by interpolating between nearest wavelengths.

All images are enlarged 4x.

Attached Image
Attached Image
Attached Image

The leftmost image is a 4-cube mosaic. The colors in all four frames turned out identical which gives me at least some confidence. The image in the middle shows Dione's disc creeping in front of Saturn. Dione's disc appears elongated probably because as the lines were readout, it moved considerably in its orbit. The rightmost image shows a very overexposed Saturn image, the part below the ring shadows got overexposed. From what I've seen browsing through the PDS, a lot of the cubes are badly overexposed at some wavelengths.

Here's a couple of Jupiter images. I'm not very satisfied with them as they seem to look somewhat greenish, but overall the color looks believeable:
Attached Image

Attached Image


Lastly, two Titan composites. They turned out way more reddish than I thought they would.
Attached Image
Attached Image


It'll be interesting to see how much the results will change once I do a more proper processing pipeline working.


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
Guest_DonPMitchell_*
post Sep 16 2006, 07:01 PM
Post #2





Guests






I also really like what you are doing. I hope you don't feel I am being discouraging. I am poking at the gamma issue, because I think you might have a bug someplace. Track it down, and then you will have rigorous "true color".
Go to the top of the page
 
+Quote Post
ugordan
post Sep 16 2006, 09:37 PM
Post #3


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



QUOTE (DonPMitchell @ Sep 16 2006, 08:01 PM) *
I hope you don't feel I am being discouraging.

Not at all. There's generally just too much "mystique" about gamma that I rather not mess around with it.
Here's a literal implementation of a 1/2.2 power function in the code:

The above shows nicely why I'm not too fond of gamma manipulations -- the terminator comes out too sharp (you don't get the feeling Jupiter is actually 3D), the colors and contrast are bleached, and it also brings out an ever-present non-dark background.
Hmm... or maybe that means I have to calibrate my monitor...

Here's that Saturn mosaic again:
Attached Image


--------------------
Go to the top of the page
 
+Quote Post
Guest_DonPMitchell_*
post Sep 17 2006, 04:17 AM
Post #4





Guests






QUOTE (ugordan @ Sep 16 2006, 02:37 PM) *
Here's a literal implementation of a 1/2.2 power function in the code:


The real-life scene is probably not as saturated with color as a lot of photos show. Your gamma 2.2 images don't look like anything is going wrong in the software at all. I thought perhaps you were seeing something way off.
Go to the top of the page
 
+Quote Post
ugordan
post Sep 17 2006, 04:44 PM
Post #5


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



A couple of rough Saturn mosaics:
Attached Image
Attached Image
Attached Image

The blob in the middle image is Tethys.

Ring mosaics:
Attached Image


Attached Image

All images magnified 2x and gamma-corrected.


--------------------
Go to the top of the page
 
+Quote Post
Malmer
post Sep 17 2006, 07:17 PM
Post #6


Member
***

Group: Members
Posts: 241
Joined: 22-August 05
From: Stockholm Sweden
Member No.: 468



I think it looks great. Very subtle beautiful colors.

Keep em coming!

/M
Go to the top of the page
 
+Quote Post
ugordan
post Sep 19 2006, 05:21 PM
Post #7


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



A few Jupiter images, fixed the greenish hue. It was due to my code subtracting out dark background when apparently it was already subtracted from the Jupiter flyby cubes.


The middle and right image were taken not far apart, the rightmost image is much bigger because it utilized a high-resolution mode developed in-flight, it increases the spatial resolution by 3x at a cost of lowering the S/N ratio a bit. The leftmost image is also hi-res, but was taken far before closest approach.

Outbound crescent, 2 cube mosaic:


A couple of Europa transits:

It's a shame the transit on the right didn't catch more area to the left of Jupiter's limb, there was a great grouping of Io and Ganymede there. The rightmost image is actually very close in time to an ISS narrow-angle sequence, taken on January 2nd, 2001.

Again, all images magnified 2x and gamma-corrected.


--------------------
Go to the top of the page
 
+Quote Post
Malmer
post Sep 19 2006, 07:23 PM
Post #8


Member
***

Group: Members
Posts: 241
Joined: 22-August 05
From: Stockholm Sweden
Member No.: 468



QUOTE (ugordan @ Sep 19 2006, 07:21 PM) *
A few Jupiter images, fixed the greenish hue. It was due to my code subtracting out dark background when apparently it was already subtracted from the Jupiter flyby cubes.


Just for the sake of inconsistensy smile.gif



I think it looks great. Fantastic actually. If i had to pick on something i would have to mention the almost invisible residual pattern in the images. faint thin horizontal and vertical lines. some of them seem to show up at the same place in all the images. (sometimes rotated 90 degrees but i guess thats you rotating the images for display) others seem more random. is this due to sensor sensitivity variation and/or does it have to do with the scanning process of the instrument?

Do you write your image processing software for some standard platform (IDL or something) or do you write totally standalone code?

/M
Go to the top of the page
 
+Quote Post
ugordan
post Sep 19 2006, 07:37 PM
Post #9


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



The vertical stripes (most noticeable is a blue line) in some darker shots... I've checked and double-checked the flatfields and dark background removal code and none of them even touches that. There's a load of them in the raw data, they appear to be static so those are probably hot pixels on the CCD. Since the cubes are readout one line at a time, in a push-broom mode with the spectra of the line being split in the vertical dimension, It means same samples in all lines in a given spectral band will suffer from the same problem. Hence the vertical lines. What I don't understand is why adequate flatfields/dark current models haven't been produced to deal with this. This only affects the visible channel, the IR channel seems fine (note the VIS and IR channels are actually two different physical parts). So far, there's nothing I can do about it.

The code is an ad-hoc implementation in C, it's rudimentary and messy as I progressively modified it from simply trying to read the cubes to do more complex stuff like color matching. It doesn't even output a nice PNG color image, but a raw 64x64 pixel dump with 3 interleaved rgb channels biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post
Malmer
post Sep 19 2006, 08:16 PM
Post #10


Member
***

Group: Members
Posts: 241
Joined: 22-August 05
From: Stockholm Sweden
Member No.: 468



I guess you have to make an additional flatfield removal using a homebrewn flatfield. Try simply takeing one row of an image of black space, scale to width of image and remove it from the data and see what it looks like.



/M
Go to the top of the page
 
+Quote Post
ugordan
post Sep 20 2006, 07:24 AM
Post #11


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



QUOTE (Malmer @ Sep 19 2006, 09:16 PM) *
I guess you have to make an additional flatfield removal using a homebrewn flatfield. Try simply takeing one row of an image of black space, scale to width of image and remove it from the data and see what it looks like.

I don't think it's a flatfield problem. Flatfields only correct for varying sensitivity of different pixels. This appears to be primarily a dark current problem - you can see the lines even in dark space which flatfields can't remove. Remember, you divide or multiply the image with a flatfield. This, on the other hand, will obviously need subtracting out. I don't even know where to begin modelling dark current data. The provided dark current model uses a two-parameter table, one a standalone part and the other a variable part multiplied by exposure, for each CCD pixel.
The model seems fine for normal resolution cubes (though even that doesn't completely remove everything), but the hi-res one seems buggy. Furthermore, these Jupiter images where the dark was subtracted by the instrument itself show no apparent signs of those nasty lines. Then again, this could be due to the fact Jupiter images took a 4 times shorter exposure than Saturn targets, because of increased light levels there so dark current didn't have as much time to build up.

A document on the PDS says new models are generated every month or so, but it looks to me the same tables appear on all 8 VIMS DVDs. I mailed one of the guys responsible for the PDS volumes so we'll see what they have to say.


--------------------
Go to the top of the page
 
+Quote Post
Malmer
post Sep 20 2006, 08:48 AM
Post #12


Member
***

Group: Members
Posts: 241
Joined: 22-August 05
From: Stockholm Sweden
Member No.: 468



it was a typo. i actually ment darkcurrent. mixed them up in my head for some reason. (thats why i suggested you to use a bit of black space to serve as a DC remover)
Go to the top of the page
 
+Quote Post
ugordan
post Sep 20 2006, 09:22 AM
Post #13


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



Although the noise stays fixed, it changes intensity -- it's likely connected with exposure duration. It's not likely to be as easy as subtracting a generic dark cube from all cubes. I don't think a small bit of dark space would do the trick as there's also a fair bit of cosmic ray noise induced. It would be required to average many dark lines. There are many dark space cubes that weren't even readout as a full 64 width swath so they're of limited usefulness. Additionally, the physical resolution of the CCD is AFAIK 192x96 pixels with 192 being one spatial line and 96 being the visible spectral channels. All cubes have a maximum resolution of 64 spatial pixels. Normal mode of operation simply sums three pixels in a line to get 192/3=64 pixels. The high res mode, however doesn't sum the individual pixels and that's where the 3x resoulution increase comes from. This is where it gets complicated a bit: which 64 pixels out of 192 will be readout depends upon the offset factors and is somewhat clumsy. A fair bit of margin for error is present if you don't know exactly what you're doing. The PDS document isn't all too clear on certain aspects.

Which brings me to the point -- if this is as simple as we suggest, why didn't the VIMS folks do this in the first place? This noise problem must have been known at least since Saturn orbit insertion. IMHO, it's not up to us to fix the calibration and produce our own files that do basic stuff like dark current removal.

Of course, all this is barring I haven't screwed up in my code somewhere, but I'm more and more certain that's not the case.


--------------------
Go to the top of the page
 
+Quote Post
Malmer
post Sep 20 2006, 03:23 PM
Post #14


Member
***

Group: Members
Posts: 241
Joined: 22-August 05
From: Stockholm Sweden
Member No.: 468



QUOTE (ugordan @ Sep 20 2006, 11:22 AM) *
Which brings me to the point -- if this is as simple as we suggest, why didn't the VIMS folks do this in the first place? This noise problem must have been known at least since Saturn orbit insertion. IMHO, it's not up to us to fix the calibration and produce our own files that do basic stuff like dark current removal.



it is a quick and dirty trick. in theory if you shoot an image of a planet and then of black space (or with the lens cap on) with identical settings it should create a perfect darkcurrent image. problem is that it would be noisy. so you would need a few black images to average out the noice. problem is that Cassini would have to send back lets say 5 black images for each "real" image. leading to an extreme waste of downlink time and other issues like SSR space and stuff.

I guess thats why they make a mathematical model of the darkcurrent instead.

I think that it is up to us to fix some of the calibration issues. the 2hz banding in the ISS images can be removed in lots of ways. its really hard to remove it completly. one way is to use the edge pixels that have not been exposed to light to create a DC image. Another way is to use that data to fit some kind of sinus wave to it and create a DC image from the sinus wave. another way is to use the pixelrows that are black space in an image to create a DC image. or fit a sinus wave to that. or combinations of these methods. or some fourier filter or some other magic.

Maybe its the same way with these VIMS lines. they might be really hard to model exactly. and that its up to the user to choose a way that fits him/her.

/M
Go to the top of the page
 
+Quote Post
ugordan
post Sep 20 2006, 07:38 PM
Post #15


Senior Member
****

Group: Members
Posts: 3648
Joined: 1-October 05
From: Croatia
Member No.: 523



Here are a couple of... hm... questionable(?) results.
First, a wholly unremarkable image -- three narrow strips taken during Cassini's second Venus flyby:

Their relative spacing isn't meaningful, it's just 3 cubes stacked together. Magnified 3x.
I don't know exactly where VIMS was pointed at the time, but my best guess by looking at the PDS data is that it was practically nadir, seeing near-equatorial latitudes. This was near C/A, distance was around 8800 km to Venus' center (it appeared huge in the FOV so no cloud details could be seen here - the vertical scale was about 2 degrees latitude on Venus) and the phase angle was about 90 degrees. That's why I presume the three images show the terminator at right and dayside at left.
I was under the impression Venus was yellowish-white, but this turned out bluish. Note that VIMS was far from its normal operating temperatures so maybe the sensitivity was influenced and the results could be way off. The exposure used was only 50 ms, as opposed to exposures at Saturn being typically 5000 ms and more. Any calibration uncertainties would likely be exaggerated here.
I'd be interested to hear what Don thinks about this, being a Venus expert and all...

EDIT: Again, referencing to an official Venus flyby page, they also got a bluish Venus, though using only simple rgb channels. That's also the reason their image turned out so noisy.

Second, a Moon image, super-resolution view of 4 cubes stacked together:

Again, I'm surprised by the way the image turned out. I'd expect the Moon to turn out gray, but this is more like that Mariner spacecraft composite of Earth and the Moon. Or some of the Apollo shots. The image in the middle is a Solar System Simulator view, blurred to get the same effective resolution. The rightmost image is the same simulated image, unblurred.
The VIMS composite was magnified 4 times. Yes, four! You can really see how VIMS traded off spatial for spectral resolution.

This post has been edited by ugordan: Sep 20 2006, 07:46 PM


--------------------
Go to the top of the page
 
+Quote Post

Posts in this topic
- ugordan   Processing VIMS cubes   Sep 10 2006, 07:51 PM
- - Malmer   its a really great "realitycheck" for th...   Sep 12 2006, 09:48 PM
|- - ugordan   QUOTE (Malmer @ Sep 12 2006, 10:48 PM) it...   Sep 13 2006, 08:56 AM
|- - Malmer   QUOTE (ugordan @ Sep 13 2006, 10:56 AM) I...   Sep 13 2006, 03:04 PM
- - dilo   Very nice work, gordan... now we see the colors...   Sep 12 2006, 10:21 PM
|- - ugordan   QUOTE (dilo @ Sep 12 2006, 11:21 PM) To m...   Sep 13 2006, 06:56 AM
|- - dilo   QUOTE (ugordan @ Sep 13 2006, 06:56 AM) T...   Sep 13 2006, 04:17 PM
- - CAP-Team   It looks as if the colors match Voyager's colo...   Sep 13 2006, 02:16 PM
- - Malmer   QUOTE (ugordan @ Sep 10 2006, 09:51 PM) I...   Sep 13 2006, 02:49 PM
- - DonPMitchell   How do you convert XYZ to RGB? Are you making sRG...   Sep 13 2006, 04:55 PM
|- - ugordan   Yes, I'm using that XYZ to RGB matrix. I had t...   Sep 13 2006, 08:33 PM
- - DonPMitchell   Very good. Gamma 2.2 is technically what should b...   Sep 14 2006, 04:07 AM
|- - ugordan   The pixels are linear as far as I know, a 12 bit A...   Sep 14 2006, 07:09 AM
|- - Malmer   QUOTE (DonPMitchell @ Sep 14 2006, 06:07 ...   Sep 14 2006, 09:30 AM
|- - Malmer   The pixels in the ISS images are not linearly save...   Sep 14 2006, 09:43 AM
||- - ugordan   I am very well aware of the ISS data specifics. Wh...   Sep 14 2006, 10:47 AM
||- - Malmer   QUOTE (ugordan @ Sep 14 2006, 12:47 PM) I...   Sep 15 2006, 12:50 PM
||- - ugordan   QUOTE (Malmer @ Sep 15 2006, 01:50 PM) On...   Sep 15 2006, 06:26 PM
||- - Malmer   it would be fun to paint spheres in the colors you...   Sep 15 2006, 11:40 PM
|- - DonPMitchell   QUOTE (Malmer @ Sep 14 2006, 02:30 AM) co...   Sep 14 2006, 03:39 PM
|- - Malmer   I think the strange piecewise funktion has its ben...   Sep 15 2006, 12:33 PM
|- - ugordan   QUOTE (Malmer @ Sep 15 2006, 01:33 PM) I ...   Sep 15 2006, 06:10 PM
- - DonPMitchell   One concept is to make an image that resembles wha...   Sep 16 2006, 01:56 AM
|- - Malmer   QUOTE (DonPMitchell @ Sep 16 2006, 03:56 ...   Sep 16 2006, 09:42 AM
|- - ugordan   A mosaic of Saturn's northern latitudes: App...   Sep 16 2006, 03:39 PM
||- - john_s   Just checked out your gallery, ugordan- your proce...   Sep 16 2006, 04:54 PM
||- - ugordan   QUOTE (john_s @ Sep 16 2006, 05:54 PM) Ju...   Sep 16 2006, 05:56 PM
|- - DonPMitchell   QUOTE (Malmer @ Sep 16 2006, 02:42 AM) so...   Sep 16 2006, 06:47 PM
|- - Malmer   QUOTE (DonPMitchell @ Sep 16 2006, 08:47 ...   Sep 16 2006, 09:02 PM
- - DonPMitchell   I also really like what you are doing. I hope you...   Sep 16 2006, 07:01 PM
|- - ugordan   QUOTE (DonPMitchell @ Sep 16 2006, 08:01 ...   Sep 16 2006, 09:37 PM
|- - DonPMitchell   QUOTE (ugordan @ Sep 16 2006, 02:37 PM) H...   Sep 17 2006, 04:17 AM
|- - ugordan   A couple of rough Saturn mosaics: The blob in the...   Sep 17 2006, 04:44 PM
|- - Malmer   I think it looks great. Very subtle beautiful colo...   Sep 17 2006, 07:17 PM
|- - ugordan   A few Jupiter images, fixed the greenish hue. It w...   Sep 19 2006, 05:21 PM
|- - Malmer   QUOTE (ugordan @ Sep 19 2006, 07:21 PM) A...   Sep 19 2006, 07:23 PM
|- - ugordan   The vertical stripes (most noticeable is a blue li...   Sep 19 2006, 07:37 PM
|- - Malmer   I guess you have to make an additional flatfield r...   Sep 19 2006, 08:16 PM
||- - ugordan   QUOTE (Malmer @ Sep 19 2006, 09:16 PM) I ...   Sep 20 2006, 07:24 AM
||- - Malmer   it was a typo. i actually ment darkcurrent. mixed ...   Sep 20 2006, 08:48 AM
||- - ugordan   Although the noise stays fixed, it changes intensi...   Sep 20 2006, 09:22 AM
||- - ugordan   Not particularly related to my processing, but her...   Sep 20 2006, 11:34 AM
||- - Malmer   QUOTE (ugordan @ Sep 20 2006, 11:22 AM) W...   Sep 20 2006, 03:23 PM
||- - ugordan   Here are a couple of... hm... questionable(?) resu...   Sep 20 2006, 07:38 PM
|- - tedstryk   Great work! As for the calibration data, it c...   Sep 19 2006, 08:18 PM
- - slinted   UGordon, first off, this is an amazing project you...   Sep 20 2006, 11:00 PM
|- - ugordan   Thanks, Slinted! I'll certainly have a loo...   Sep 21 2006, 07:46 AM
|- - JRehling   QUOTE (ugordan @ Sep 21 2006, 12:46 AM) I...   Sep 21 2006, 06:06 PM
|- - ugordan   JRehling, those are all valid, good points. I said...   Sep 21 2006, 07:16 PM
- - DonPMitchell   It is true that Judd and Vos made improvements to ...   Sep 21 2006, 12:55 PM
|- - ugordan   QUOTE (DonPMitchell @ Sep 21 2006, 01:55 ...   Sep 21 2006, 02:25 PM
- - DonPMitchell   Reflectance is independant of the illuminant. It ...   Sep 21 2006, 02:43 PM
- - DonPMitchell   There's a brown Moon for you, taken by Galil...   Sep 21 2006, 07:03 PM
- - slinted   Good points made by all, Part of my confusion on...   Sep 21 2006, 08:52 PM
|- - ugordan   VIMS cubes, their raw form, capture the brightness...   Sep 21 2006, 09:14 PM
|- - JRehling   QUOTE (slinted @ Sep 21 2006, 01:52 PM) I...   Sep 21 2006, 10:32 PM
|- - ugordan   QUOTE (JRehling @ Sep 21 2006, 11:32 PM) ...   Sep 22 2006, 08:07 AM
|- - ugordan   I can understand the reasoning of not touching the...   Sep 22 2006, 06:41 PM
|- - DonPMitchell   QUOTE (ugordan @ Sep 22 2006, 11:41 AM) Y...   Sep 22 2006, 07:06 PM
||- - ugordan   Be my guest. For starters, here's a dump of th...   Sep 22 2006, 07:45 PM
|- - tedstryk   For Jupiter and Saturn, I am biased toward the rig...   Sep 22 2006, 09:12 PM
|- - ugordan   I've been experimenting with cleaning up the V...   Sep 25 2006, 08:02 PM
|- - ugordan   Sure enough, I got a response from the VIMS team. ...   Sep 26 2006, 07:33 AM
- - edstrick   It probably boils down to too-much-to-do, not-enou...   Sep 26 2006, 09:49 AM
|- - ugordan   To reiterate what you said, on my asking if update...   Sep 26 2006, 02:27 PM
|- - ugordan   Here are a few quick results from the new PDS rele...   Oct 4 2006, 05:55 PM
- - Indian3000   First test to process VIMS cube ( gamma 2.2 ) v1...   Oct 11 2006, 11:53 AM
- - elakdawalla   Hey folks, the Rings Node has generated preview im...   Feb 18 2011, 10:20 PM
- - ngunn   A superb piece of work at TPS but we have to have ...   Apr 28 2011, 09:27 PM


Reply to this topicStart new topic

 



RSS Lo-Fi Version Time is now: 30th March 2024 - 08:00 AM
RULES AND GUIDELINES
Please read the Forum Rules and Guidelines before posting.

IMAGE COPYRIGHT
Images posted on UnmannedSpaceflight.com may be copyrighted. Do not reproduce without permission. Read here for further information on space images and copyright.

OPINIONS AND MODERATION
Opinions expressed on UnmannedSpaceflight.com are those of the individual posters and do not necessarily reflect the opinions of UnmannedSpaceflight.com or The Planetary Society. The all-volunteer UnmannedSpaceflight.com moderation team is wholly independent of The Planetary Society. The Planetary Society has no influence over decisions made by the UnmannedSpaceflight.com moderators.
SUPPORT THE FORUM
Unmannedspaceflight.com is funded by the Planetary Society. Please consider supporting our work and many other projects by donating to the Society or becoming a member.