Main Content

fastInScene

Perform fast in-scene atmospheric correction

Since R2020b

    Description

    newspcube = fastInScene(spcube)returns atmospherically corrected data by computing the surface reflectance values from the top of atmosphere (TOA) reflectance values in input hyperspectral or multispectral data. Use this function to perform fast atmospheric correction that uses the in-scene characteristics for estimating the correction parameters.

    The fast in-scene method gives best correction results, if the spectral data

    • is radiometrically calibrated

    • is uniformly illuminated

    • does not contain large water bodies, cloud, or cloud shadows

    • contain adequate dark pixels for approximately computing the baseline spectrum

    • contain heterogeneous regions that include soil, water, vegetation, and man-made structures. The method assumes that the mean reflectance spectrum of different endmember spectra are scene-independent.

    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™ and MATLAB Mobile™ do not support the library.

    example

    Examples

    collapse all

    Read hyperspectral data into the workspace.

    inputCube = imhypercube("EO1H0440342002212110PY_cropped.dat");

    Remove low signal-to-noise ratio (SNR) bands from the hyperspectral data cube.

    inputCube = removeBands(inputCube,BandNumber=find(~inputCube.Metadata.BadBands));

    Convert digital number (DN) to top of atmosphere (TOA) reflectance values.

    inputCube = dn2reflectance(inputCube);

    Remove atmospheric effects from the input hyperspectral data based on the in-scene characteristics.

    correctedCube = fastInScene(inputCube);

    Display the false-color images of the input hyperspectral data and the hyperspectral data after fast in-scene atmospheric correction.

    colorImg = colorize(inputCube);
    colorImg_corrected = colorize(correctedCube);
    figure
    imagesc([colorImg colorImg_corrected])

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

    Input Arguments

    collapse all

    Input spectral data, specified as a hypercube or multicube object. For better results, the input values must be TOA reflectance values. If the input values are digital numbers, use the dn2reflectance function to estimate the TOA reflectance values.

    If spcube is a multicube object, all its spectral bands must have the same data resolution. If all spectral bands of the multicube object do not have the same resolution, resample the bands using the resampleBands function, or select bands with uniform resolution using the selectBands function.

    Output Arguments

    collapse all

    Output spectral data, returned as a hypercube or multicube object. The pixel values of the data cube returned at the output specifies the surface reflectance values.

    Limitations

    This function does not support parfor loops, as its performance is already optimized. (since R2023a)

    References

    [1] Bernstein, L.S., S.M. Adler-Golden, R.L. Sundberg, R.Y. Levine, T.C. Perkins, A. Berk, A.J. Ratkowski, G. Felde, and M.L. Hoke. “A New Method for Atmospheric Correction and Aerosol Optical Property Retrieval for VIS-SWIR Multi- and Hyperspectral Imaging Sensors: QUAC (QUick Atmospheric Correction).” In Proceedings. 2005 IEEE International Geoscience and Remote Sensing Symposium, 2005. IGARSS ’05., 5:3549–52. Seoul, Korea: IEEE, 2005. https://doi.org/10.1109/IGARSS.2005.1526613.

    Version History

    Introduced in R2020b

    expand all