Standard THEMIS IR Processing

From DavinciWiki
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. Click here for a brief description of the standard processing steps, including when and how they should be used.

The data output of this should be identical to what can be generated using thmproc.

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

Undrift and Dewobble the unprojected RDR data. There are several options to uddw that require access to the ASU Mars Space Flight Facility Database and file structure. The method described below requires none of these.

dv>a = uddw("I10418002")
320x1808x10 array of float, bsq format [23,142,400 bytes]

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

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

NOTE: If processing cold and/or nighttime images, remove the line and row correlated noise related to the low temperatures before projecting the image. Residual plaid noise can removed after projection by applying thm.deplaid a second time as shown below.

dv> a.data = thm.deplaid(a.data, tmask_min=0.05, tmask_max=5.5, b10=3)

Project the data using the ISIS projection software

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

dv>a = read("I10418002.irmc.cub")
..........577x1852x10 array of float, bsq format [42,744,160 bytes]

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

dv>a = thm.rectify(a)
struct, 4 elements
   data: 301x1883x10 array of float, bsq format [22,671,320 bytes]
   leftedge: 1x1883x1 array of int, bsq format [7,532 bytes]
   width: 577
   angle: 3.052882433

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

dv> a.data = thm.deplaid(a.data)
301x1883x10 array of float, bsq format [22,671,320 bytes]

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(a.data)
..
struct, 4 elements
   avgdark: 1x1x10 array of float, bsq format [40 bytes]
   blackmask: 301x1883x1 array of byte, bsq format [566,783 bytes]
   dark: 7x38x10 array of float, bsq format [10,640 bytes]
   darkcol: 1x1883x10 array of float, bsq format [75,320 bytes]

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

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

OPTIONAL STEPS: (if applied, adjust thm.reconstitute command accordingly)

1) Remove the noise known as streak.
dv> rc.data = destreak(rc.data, ignore = -32768)
dv> b.data=rc.data
2) Remove white noise. Only recommended for qualitative products (e.g., DCS).
dv> c = rrmnoise_pca(rc.data, ignore = -32768)

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

dv> a = thm.reconstitute(a)
577x1852x10 array of float, bsq format [42,744,160 bytes]


DavinciWiki Mini-Nav Bar

Contents


Contact Developers

  • davinci-dev [AT] mars.asu.edu

All other topics

  • See navigation on the left

Personal tools