The SMA assumes that the energy received within the field of vision of the remote sensor can be considered as the sum of the energies received from each dominant endmember. This function addresses a Linear Mixing Model.

sma(img, endm, verbose = FALSE)

Arguments

img

Optical images. It could be RasterStack or RasterBrick.

endm

Endmembers must be a matrix or data.frame and with more than one endmember. Rows represent the endmembers and columns represent the spectral bands. The number of bands must be greater than the number of endmembers.

verbose

This parameter is Logical. It Prints progress messages during execution.

Details

A regression analysis is used to obtain the fractions. In least squares inversion algorithms, the common objective is to estimate abundances that minimize the squared error between the actual spectrum and the estimated spectrum. The values of the fractions will be between 0 and 1.

References

Adams, J. B., Smith, M. O., & Gillespie, A. R. (1993). Imaging spectroscopy: Interpretation based on spectral mixture analysis. In C. M. Pieters & P. Englert (Eds.), Remote geochemical analysis: Elements and mineralogical composition. NY: Cambridge Univ. Press 145-166 pp.

Shimabukuro, Y.E. and Smith, J., (1991). The least squares mixing models to generate fraction images derived from remote sensing multispectral data. IEEE Transactions on Geoscience and Remote Sensing, 29, pp. 16-21.

Examples

library(ForesToolboxRS)
library(raster)

# Load an example dataset
data(img_l8)

# Endmembers (Surface reflectance between 0 and 10000)
soil <- c(8980, 8508, 8704, 13636, 16579, 11420)
forest <- c(8207, 7545, 6548, 16463, 9725, 6673)
water <- c(9276, 9570, 10089, 6743, 5220, 5143)
endmembers <- matrix(c(soil, forest, water), 3, 6,
  byrow = TRUE, dimnames =
    list(c("soil", "forest", "water"), c("B1", "B2", "B3", "B4", "B5", "B6"))
)

# Unmix the image
fractions <- sma(img = img_l8, endm = endmembers)
plotRGB(fractions, 1, 2, 3, stretch = "lin")