Standard THEMIS IR Processing with ISIS3

From DavinciWiki
Revision as of 13:19, 16 April 2012 by Bhorgan (Talk | contribs)

Jump to: navigation, search

Description

This procedure is designed to take an ISIS projected THEMIS Infrared image and run it through "standard processing", correcting for noises and producing an emissivity array.

NOTE: The example is shown for data containing 10 bands. If less bands are present, such as in a nighttime image, you can safely skip the autoradcorr step.

Procedure

Run isis3setup().

dv> isis3setup()


Undrift and Dewobble the unprojected RDR data. There are several options to uddw that require access to the ASU Mars Space Flight Facility Database. Http = 1 is recommended for general use. If the http option is selected the file will be downloaded for you and all database calls are now made with the themis3db() function.

dv>a = uddw("I10418002",isis3struct = 1, http = 1)


Remove across track temperature gradients using Rtilt. This step could be skipped if the cube is being processed for highly rigorous spectral analysis, but is highly recommended for typical spectral analysis, DCS, and aesthetics. See Edwards et al. (2011) mosaicking paper for details.

dv> a.cube = rtilt(a.cube)


Write out the corrected ISIS cube

dv> write(a,"I10418002.isis3.uddw.rtilt.cub",type = isis3, force = 1)


Outside of davinci (in the terminal), attach SPICE data to corrected cube:

  1. Start ISIS3: isis3setup
  2. Open SPICE GUI: spiceinit
  3. Select corrected ISIS cube.
  4. Default options are ok, but also add "Compute nadir pointing if no other kernels exist"
  5. Click green go button.


Also in the terminal, project the data using the ISIS projection software:

  1. Open ISIS GUI: cam2map.
  2. Select input, output cubes. Recommended output name includes "sinu" as a modifier (e.g., I10418002.isis3.uddw.rtilt.sinu.cub).
  3. Change projection if desired (default is sinusoidal). To create a custom projection, enter maptemplate in terminal.
  4. Set interp to bi-linear.
  5. Click green go button.


Back in davinci, run isis3setup() again.

dv> isis3setup()


Read in the ISIS map projected 10 band THEMIS infrared image.

dv> a = load_pds("I10418002.isis3.uddw.rtilt.sinu.cub")


Remove spectra that don't have all 10 bands.

dv> a.cube[where min(a.cube,axis = z)< -2] = -32768


Rectify the image, which rotates and slightly warps the projected image into a rectangle for easy manipulation and to minimize storage requirements.

dv> b = thm.rectify(a.cube,ignore = -32768)


Remove the line and row correlated noise plaid. Setting the output to a.data replaces the radiance cube.

dv> b.data = thm.deplaid(b.data, ignore = -32768)


Call the automatic radiance correction function to calculate the contribution of atmospheric dust to the measured radiance. The returned structure has the element '.darkcol', which is a column of correction values that need to be subtracted from the radiance.

dv> rc = autoradcorr(b.data, ignore = -32768)


Subtract the column of correction values from the data where the array is not the ignore value.

dv> b.data[where b.data != -32768] = b.data-rc.darkcol


Remove the noise known as streak.

dv> b.data = destreak(b.data, ignore = -32768)


Return the data to its original map projection. This reverses the rectify step.

dv> a.cube = thm.reconstitute(b)


Write out the final ISIS cube

dv> write(a,"I10418002.cub",isis3,force = 1)


OPTIONAL STEPS:

After destreak, remove white noise. Only recommended for qualitative products (e.g., DCS).

dv> c = rrmnoise_pca(b.data, ignore = -32768)

Save the output to a separate cube (for the sake of doing a sane DCS).

dv> b.data = c
dv> a.cube = thm.reconstitute(b)
dv> write(a,"I10418002.rmnoise.cub",isis3,force = 1)


Personal tools