Standard THEMIS IR Processing with ISIS3
(32 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{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. | {{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 these processing steps and when it is safe to use them. | ||
− | |||
− | |||
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. | 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. 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|themis3db()]] function. | ||
+ | dv>a = uddw("I10418002",isis3struct = 1, http = 1) | ||
− | |||
− | |||
− | |||
− | |||
− | Remove | + | Remove across track temperature gradients using [[rtilt|Rtilt]]. 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 = rtilt(a) | + | dv> a.cube = rtilt(a.cube) |
− | |||
− | |||
− | + | Write out the corrected ISIS cube | |
− | dv> | + | dv> write(a,"I10418002.isis3.uddw.rtilt.cub",type = isis3, force = 1) |
− | |||
− | |||
− | + | Outside of davinci (in the terminal), attach SPICE data to corrected cube: | |
+ | # Start ISIS3: isis3setup (This step is no longer necessary if working locally at MSFF) | ||
+ | # Open SPICE GUI: spiceinit | ||
+ | # Select corrected ISIS cube. | ||
+ | # Default options are OK. | ||
+ | # Click green go button. | ||
+ | |||
+ | |||
+ | Also in the terminal, project the data using the ISIS projection software: | ||
+ | # Open ISIS GUI: cam2map. | ||
+ | # Select input, output cubes. Recommended output name includes "sinu" as a modifier (e.g., I10418002.isis3.uddw.rtilt.sinu.cub). | ||
+ | # Change projection if desired (default is sinusoidal). To create a custom projection, enter maptemplate in terminal. | ||
+ | # Set interp to bi-linear. | ||
+ | # Click green go button. | ||
+ | |||
Read in the ISIS map projected 10 band THEMIS infrared image. | Read in the ISIS map projected 10 band THEMIS infrared image. | ||
− | dv>a = | + | 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. | Rectify the image, which rotates and slightly warps the projected image into a rectangle for easy manipulation and to minimize storage requirements. | ||
− | dv> | + | 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. | Remove the line and row correlated noise [[plaid]]. Setting the output to a.data replaces the radiance cube. | ||
− | dv> | + | dv> b.data = thm.deplaid(b.data, ignore = -32768) |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Call the [[autoradcorr|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. This is already done for you in the rc.data element of the returned structure. | |
− | dv> | + | dv> rc = autoradcorr(b.data, ignore = -32768) |
+ | |||
+ | |||
+ | Remove the noise known as [[destreak|streak]]. | ||
+ | dv> rc.data = destreak(rc.data, ignore = -32768) | ||
+ | dv> b.data=rc.data | ||
Return the data to its original map projection. This reverses the rectify step. | Return the data to its original map projection. This reverses the rectify step. | ||
− | dv> a = thm.reconstitute(a) | + | 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 [[rrmnoise_pca|white noise]]. Only recommended for qualitative products (e.g., DCS). | ||
+ | dv> c = rrmnoise_pca(rc.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) | ||
| | | | ||
+ | *[[uddw]] | ||
+ | *[[rtilt]] | ||
+ | *[[load_pds]] | ||
+ | *[[write]] | ||
*[[thm.rectify]] | *[[thm.rectify]] | ||
*[[thm.deplaid]] | *[[thm.deplaid]] | ||
+ | *[[destreak]] | ||
+ | *[[rrmnoise_pca]] | ||
*[[autoradcorr]] | *[[autoradcorr]] | ||
*[[thm.reconstitute]] | *[[thm.reconstitute]] | ||
Line 68: | Line 91: | ||
*[[Convert THEMIS radiance to emissivity]] | *[[Convert THEMIS radiance to emissivity]] | ||
*[[Add Two Arrays Together]] | *[[Add Two Arrays Together]] | ||
+ | *[[Using TES to atmospherically correct THEMIS]] | ||
}} | }} | ||
+ | |||
+ | |||
+ | [[Category:Procedures]] |
Latest revision as of 12:31, 2 December 2013
Contents: Description, Procedure, Functions Used, Related Functions
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 these processing steps and when it is safe to use them. 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. 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 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:
dv> a = load_pds("I10418002.isis3.uddw.rtilt.sinu.cub")
dv> a.cube[where min(a.cube,axis = z)< -2] = -32768
dv> b = thm.rectify(a.cube,ignore = -32768)
dv> b.data = thm.deplaid(b.data, ignore = -32768)
dv> rc = autoradcorr(b.data, ignore = -32768)
dv> rc.data = destreak(rc.data, ignore = -32768) dv> b.data=rc.data Return the data to its original map projection. This reverses the rectify step. dv> a.cube = thm.reconstitute(b)
dv> write(a,"I10418002.cub",isis3,force = 1)
After destreak, remove white noise. Only recommended for qualitative products (e.g., DCS). dv> c = rrmnoise_pca(rc.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)
|
DavinciWiki Mini-Nav Bar Contents
Contact Developers
All other topics
Functions Used
|