Main Content

logResiduals

Apply log residual correction to hyperspectral data cube

Since R2020b

    Description

    correctedData = logResiduals(inputData) applies a log residual correction to the hyperspectral data inputData. The log residual method divides the spectrum of each pixel by the spectral geometric mean and the spatial geometric mean, which produces a pseudoreflectance data set.

    Note

    This function requires the Hyperspectral Imaging Library for Image Processing Toolbox™. You can install the Hyperspectral Imaging Library for Image Processing Toolbox from Add-On Explorer. For more information about installing add-ons, see Get and Manage Add-Ons.

    The Hyperspectral Imaging Library for Image Processing Toolbox requires desktop MATLAB®, as MATLAB Online™ or MATLAB Mobile™ do not support the library.

    example

    Examples

    collapse all

    Read hyperspectral data into the workspace. This data is from the EO-1 Hyperion sensor, with pixel values in digital numbers.

    hcube = hypercube("EO1H0440342002212110PY_cropped.hdr");

    Convert the digital numbers to top of atmosphere (TOA) reflectance values.

    hcube_toa = dn2reflectance(hcube);

    Apply a log residual correction to the reflectance data.

    hcube_logR = logResiduals(hcube_toa);

    Display the contrast-stretched RGB images of the original hyperspectral data and the log residual corrected hyperspectral data.

    colorImg = colorize(hcube,Method="rgb",ContrastStretching=true);
    colorImg_logR = colorize(hcube_logR,Method="rgb",ContrastStretching=true);
    figure
    imagesc([colorImg colorImg_logR])

    Figure contains an axes object. The axes object contains an object of type image.

    Input Arguments

    collapse all

    Input hyperspectral data, specified as one of these options:

    • hypercube object — The DataCube property of the hypercube object stores the hyperspectral data cube.

    • M-by-N-by-C numeric array — M and N are the number of rows and columns of pixels in the hyperspectral data, respectively. C is the number of spectral bands in the hyperspectral data.

    The input pixel values can be digital numbers, TOA radiance values, or TOA reflectance values. To convert a hypercube containing digital numbers to a hypercube containing TOA radiance or TOA reflectance data, use the dn2radiance or dn2reflectance function, respectively.

    Output Arguments

    collapse all

    Corrected hyperspectral data, returned as a hypercube object or M-by-N-by-C numeric array consistent with the input data, inputData. If the input data in inputData is of data type double, then the corrected data is also of data type double. Otherwise, the corrected data is of data type single.

    References

    [1] Green, A. A. and M. D. Craig. "Analysis of Aircraft Spectrometer Data with Logarithmic Residuals." In Proceedings of the Airborne Imaging Spectrometer Data Analysis Workshop, ed. Gregg Vane and Alexander F. H. Goetz, 111–119. Pasadena: Jet Propulsion Laboratory, 1985.

    Version History

    Introduced in R2020b