Main Content

iarr

Apply internal average relative reflectance (IARR) correction to spectral data

Since R2020b

    Description

    correctedData = iarr(inputData) applies IARR based correction to the hyperspectral or multispectral data inputData. The IARR method computes the mean spectrum from the entire dataset, then divides the spectrum of each pixel by the mean spectrum.

    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. This data is from the EO-1 Hyperion sensor, with pixel values in digital numbers.

    hcube = imhypercube("EO1H0440342002212110PY_cropped.hdr");

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

    hcube_toa = dn2reflectance(hcube);

    Apply atmospheric correction to the reflectance data.

    newhcube = sharc(hcube_toa,AtmosphericModel="Midlatitude Summer"); 

    Apply IARR correction to the atmospherically corrected hyperspectral data.

    newhcube_iarr = iarr(newhcube);

    Display the false-color images of the atmospherically corrected hyperspectral data before and after IARR correction.

    sharcImg = colorize(newhcube,ContrastStretching=true);
    sharcImg_iarr = colorize(newhcube_iarr,ContrastStretching=true);
    figure
    imagesc([sharcImg sharcImg_iarr])

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

    Input Arguments

    collapse all

    Input spectral data, specified as one of these options:

    • hypercube object.

    • multicube object.

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

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

    If inputData 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

    Corrected spectral data, returned as a hypercube or multicube 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] Kruse, Fred A. “Use of Airborne Imaging Spectrometer Data to Map Minerals Associated with Hydrothermally Altered Rocks in the Northern Grapevine Mountains, Nevada, and California.” Remote Sensing of Environment 24, no. 1 (February 1988): 31–51. https://doi.org/10.1016/0034-4257(88)90004-1.

    Version History

    Introduced in R2020b

    expand all