Standard THEMIS IR Processing

From DavinciWiki
(Difference between revisions)
Jump to: navigation, search
(destreak and white noise and FunctionsUsed)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{DavinciWiki_Procedure|This procedure is desinged to take an [[ISIS]] projected THEMIS Infrared image and run it through standard processing.  The data output of this should be identical to what can be generated using [http://thmproc.asu.edu thmproc].   
+
{{DavinciWiki_Procedure|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.  [http://themis.asu.edu/files/thmprocdocs/Bandfield.pdf 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 [http://thmproc.mars.asu.edu thmproc].   
  
NOTE: The example is shown for 10 bands, if less bands are present like in a nighttime image you can safely skip the autoradcorr step.
+
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.
 
|
 
|
 +
[[drift|Undrift]] and [[wobble|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.
  
Read in the [[ISIS]] map projected 10 band THEMIS infrared image.   
+
dv>a = uddw("I10418002")
  dv>a=read("I10418002.irmc.cub")
+
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]
 
  ..........577x1852x10 array of float, bsq format [42,744,160 bytes]
  
Rectify the image, which turns the projected image into a rectangle for easy manipulation.
+
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.rectfiy(a)
+
  dv>a = thm.rectify(a)
 
  struct, 4 elements
 
  struct, 4 elements
 
     data: 301x1883x10 array of float, bsq format [22,671,320 bytes]
 
     data: 301x1883x10 array of float, bsq format [22,671,320 bytes]
Line 16: Line 30:
 
     angle: 3.052882433
 
     angle: 3.052882433
  
Remove the line and row correlated noise.
+
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)
+
  dv> a.data = thm.deplaid(a.data)
 
  301x1883x10 array of float, bsq format [22,671,320 bytes]
 
  301x1883x10 array of float, bsq format [22,671,320 bytes]
  
Perform an automatic radiance correction which allows for better separation of brightness temperature and emissivity.
+
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)
+
  dv> rc = autoradcorr(a.data)
 
  ..
 
  ..
 
  struct, 4 elements
 
  struct, 4 elements
Line 29: Line 43:
 
     darkcol: 1x1883x10 array of float, bsq format [75,320 bytes]
 
     darkcol: 1x1883x10 array of float, bsq format [75,320 bytes]
  
To apply the correction the correction must be subtracted from the data.
+
Subtract the column of correction values from the data where the array is not the ignore value.
  dv>a.data=a.data-rc.darkcol
+
  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 [[rrmnoise_pca|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.
+
Return the data to its original map projection.  This reverses the rectify step.
  dv> a=thm.reconstitute(a)
+
  dv> a = thm.reconstitute(a)
 
  577x1852x10 array of float, bsq format [42,744,160 bytes]
 
  577x1852x10 array of float, bsq format [42,744,160 bytes]
  
 
|
 
|
 
*[[thm.rectify]]
 
*[[thm.rectify]]
 +
*[[rtilt]]
 
*[[thm.deplaid]]
 
*[[thm.deplaid]]
 
*[[autoradcorr]]
 
*[[autoradcorr]]
 +
*[[destreak]]
 +
*[[rrmnoise_pca]]
 
*[[thm.reconstitute]]
 
*[[thm.reconstitute]]
 
|
 
|

Latest revision as of 14:21, 20 December 2012

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