SLCCOR

Perform spectral line curvature correction


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: Algorithm :: Acknowledgements :: References :: Related

Back to top

Description


SLCCOR shifts the band center wavelength value and FWHM values of a multiband at-sensor radiance data set or a multiband surface reflectance data set as a function of along-scanline position and band index, and convolves the band spectra with the data set's nominal relative response profile. The wavelength and FWHM shifts are obtained from a correction lookup table (CLUT) and are relative to the data set's nominal relative response profile. When the shifts represent actual variation of the sensor relative response profile over the data set, this operation makes the single nominal relative response profile valid over the entire data set. This program is intended to be used with a CLUT generated by GENCLUT so that it can remove relative response profile variation due to spectral line curvature.
Back to top

Parameters


Name Type Caption Length Value range
CLUTFILI* String Input CLUT file name 1 - 192  
DBSCL* Integer Input CLUT segment 1 - 1  
FILI* String Input image file name 1 - 192  
VALONLY String Valid bands only 0 - 3 YES | NO
Default: NO
FILO* String Output file name 1 - 192  

* Required parameter
Back to top

Parameter descriptions

CLUTFILI

Specifies the name of the PCIDSK file that contains the input spectral line curvature lookup table.

DBSCL

Specifies the input segment that contains the spectral line curvature lookup table (CLUT).

FILI

Specifies the name of the image file that contains the data set to correct.

VALONLY

Specifies whether the selected bands are to be restricted to those with 'plot' or 'bmask' (begin mask) quality values.

Available options are:

This parameter has no effect if the input file contains no band-validity metadata.

FILO

Specifies the name of the output file to receive the transformed image data. The specified output file must not exist prior to running SLCCOR.

Back to top

Details

Spectral line curvature (also called "spectral smile") is a feature of image data acquired with a pushbroom-type imaging spectrometer employing a two-dimensional detector array. (This is a common design for imaging spectrometers.) When an image that exhibits spectral line curvature is atmospherically corrected using a method that relies on accurate center-wavelength and FWHM data for the image bands, the along-band dimension of the result may exhibit noise (spiking) in the neighborhood of absorption bands.

If the amount of such noise is small enough, it may be removed effectively enough for pratical purposes by smoothing (see SMSPEC). In many cases, however, the amount of noise is so large that the degree of smoothing required to remove it will distort the data. It is often preferable to reduce spectral line curvature from the data before performing atmospheric correction, to reduce the amount of smoothing required afterwards.

Spectral line curvature occurs when the image of the spectrometer entrance slit within a particular waveband does not fall entirely on the detector array row that corresponds to that waveband. The slit-image may curve (or "smile") so that it intersects multiple detector array rows. In general, spectral line curvature affects all wavebands of an image to a varying degree.

A correction for spectral line curvature is based on shifts to the nominal center-wavelength and FWHM values associated with the image data that is a function of image line coordinate (the image line dimension maps to the detector array row dimension) and band. GENCLUT can be used to generate a two-dimensional spectral line curvature lookup table (CLUT) that contains shifts that represent the effect of spectral line curvature. The CLUT can then be used in ATRLUT to resample the radiance spectra from the radiance lookup table (RLUT) so that they more closely match the actual (distorted) sensor relative response profiles for different band and across-scanline positions. SLCCOR can then be used to convolve the reflectance data set with the nominal relative response profile so that the profile will be valid over the entire data set.

Alternatively, the radiance data set can be convolved with the nominal relative response profile to remove the spectral line curvature before running ATRLUT. In this case, the CLUT is not input to ATRLUT.

Back to top

Example

This example demonstrates a complete atmospheric correction with 'smile' detection workflow using GENTP5, the MODTRAN4 program, GENRLUT, GENAWVC, GENCLUT, ATRLUT, and SLCCOR.

The input data is a test gray-panel image acquired by the CASI pushbroom imaging sensor. The following ancillary data is required for RLUT generation:
  • nominal location: lat 43.0deg, lon -79.5deg, sensor altitude: 200m
  • nominal GMT time: year 2003, month 11, day 21, hour 16, minute 0
  • nominal heading: 180.0deg

The details listed above were taken from the scene aquisition data that accompanied the original data distribution and are part of the image metadata held in panel.pix.

A nominal sun position is also required. This was calculated from the nominal position and time using SOLARZAZ:
  • solar azimuth: 163.367401deg, solar zenith: 64.664810deg

Because the gray panel was positioned approximately two meters from the sensor, a nominal scene elevation of 198m will be used.

Based on the nominal location and time, use the midlatitude summer atmospheric model and the rural aerosol model. Because you do not have a surface meteorological range value, allow MODTRAN4 to use the visibility it associates with the rural aerosol model by default.

Because the atmospheric conditions are noted as "clear", select "background" stratospheric profile and extinction.

The data set consists of 288 bands with center wavelengths from 406.1454nm to 949.987nm and a nominal FWHM of 3nm. Specify a wavelength interval of [350, 1000nm] and 18573 samples (1cm^-1 wavenumber resolution), to allow reliable resampling to the sensor response profile, which is stored in the panel.pix metadata.

The left and right field of view angles are 15.67 and 21.03 respectively, as specified by the sensor definition file and stored in the metadata of panel.pix. Therefore, specify a view zenith angle interval of [158.97deg,180deg]. Specify 12 samples in this interval.

Based on a nominal heading of 180.0deg and the knowledge that CASI is a pushbroom sensor, determine that the view azimuth is 180.0deg +/- 90deg, or is either 90.0deg or 270.0deg. The view-solar azimuth is positive clockwise starting from the view azimuth direction, and is therefore equal to the solar azimuth minus the view azimuth. Consequently, the relative view-solar azimuth is either (163.367401 - 90.0)deg = 73.367401deg or (163.367401 - 270.0)deg = 106.632599deg.

Specify a relative view-solar azimuth angle interval of [-106.632599deg, 73.367401deg] and three samples to account for the nadir pixel.

Specify the reflectance interval of [0.05, 0.60] and two samples, which is typically used by this atmospheric transformation method.

You have no records of the atmospheric water vapor content. Because you will use GENAWVC to extract the vertical water vapor content from the image data, specify seven samples in the range of [0.5g/cm^2, 1.5g/cm^2].

Prepare and run SLCCOR.

EASI>clutfili	=	"clut.pix"	    ! input CLUT file
EASI>dbscl	=	2	                ! input CLUT segment
EASI>fili	=	"p_refl.pix"	    ! image to correct
EASI>valonly	=	"NO"	            ! do not restrict bands
EASI>filo	=	"p_refl_final.pix"	! output corrected image

EASI>run SLCCOR

SLCCOR produces the final atmospherically and "smile" corrected reflectance data set, stored in p_refl_final.pix. The output file will contain 288 32R channels and the same radiometric transformations as the input file p_refl.pix.

Back to top

Algorithm

SLCCOR relies on the existence of a spectral smile curvature lookup table (CLUT) containing the relevant center wavelength and FWHM shifts that need to be applied to correct a data set.

Spectral line curvature correction is achieved by convolving the input spectra to the shifted band response profiles as defined by the CLUT.

The CLUT contains a single center wavelength shift and FWHM shift for each crosstrack pixel location/spectral band combination. Accordingly, every along-track spectrum for a fixed cross-track pixel location will be convolved to the same shifted band response profiles.

If only valid bands were selected, only the bands marked with "plot" or "bmask" will be convolved and output.

There are two possible approaches for performing "smile" correction coupled with a radiance to reflectance atmospheric transformation for a given hyperspectral image data set. Both approaches require the creation of an at-sensor radiance lookup table and the extraction of a vertical water vapor content map for the entire image. They differ, however, in the manner in which the "smile" correction and the atmospheric correction are applied.

Method I
  1. Use GENTP5, GENRLUT, RESRLUT, and GENAWVC in the specified order to create and resample an RLUT tailored to the input image data set and to extract the vertical water vapor content map over the entire image.
  2. Run GENCLUT to effectively perform "smile" detection and output a spectral line curvature lookup table (CLUT).
  3. Run SLCCOR to convolve the radiance data set to the original sensor band response profiles.
  4. Run ATRLUT without setting the "smile" related parameters (CLUTFILI and DBSCL). Because there will be no extra compensation for the sensor band response profiles, the resampled RLUT can be used.
Method II
  1. Use GENTP5, GENRLUT, RESRLUT, and GENAWVC in the specifeid order to create and resample an RLUT tailored to the input image data set and to extract the vertical water vapor content map over the entire image.
  2. Run GENCLUT to effectively perform "smile" detection and output a spectral line curvature lookup table (CLUT).
  3. Run ATRLUT, setting the "smile" related parameters (CLUTFILI and DBSCL) to the CLUT created in the previous step. Because different shifted sensor band response profiles will be used for each cross-track pixel location, the 'raw' RLUT must also be used.
  4. Run SLCCOR to convolve the reflectance data set to the original sensor band response profiles.

CLUT format

The spectral line curvature correction lookup table (CLUT) is a two-dimensional array.

A CLUT table entry is a pair of real values:
Each CLUT dimension is labeled according to the physical quantity that it represents. The following dimension labels are defined for CLUTs:

The dimensional sizes of a CLUT are determined from the input data set and the input sensor. The crosstrack dimension contains a CLUT entry for every data set crosstrack pixel. The band dimension contains a CLUT entry for every band, as identified by the sensor.

A CLUT is stored exclusively in a PCIDSK binary segment. One CLUT can be stored per segment. All CLUT attributes are saved as metadata for that binary segment.

The following metadata tags are recognized by the CLUT processing algorithms:

When the CLUT is saved to disk, the CLUT entries are serialized into a system-independent byte stream and written to the binary segment.

Back to top

Acknowledgements

PCI Geomatics received financial support from the Canadian Space Agency/L'Agence Spatiale Canadienne through the Earth Observation Application Development Program (EOADP) for the development of this software, under contract 9F028-0-4914/09.

Back to top

References

R.A. Neville, L. Sun, K. Staenz, 2003. "Detection of Spectral Line Curvature In Imaging Spectrometer Data", Proceedings of AeroSense: Algorithms and Technologies for Multispectral, Hyperspectral, and Ultraspectral Imagery IX, 21-25 April 2003, Orlando, Florida.

© PCI Geomatics Enterprises, Inc.®, 2024. All rights reserved.