prospectr (version 0.2.7)

standardNormalVariate: Standard normal variate transformation

Description

This function normalizes each row of an input matrix by subtracting each row by its mean and dividing it by its standard deviation

Usage

standardNormalVariate(X)

Value

a matrix of normalized spectral data.

Arguments

X

a numeric matrix of spectral data (optionally a data frame that can be coerced to a numerical matrix).

Author

Antoine Stevens

Details

SNV is simple way for normalizing spectral data that intends to correct for light scatter. It operates row-wise:

SNV_i = x_i - x_is_iSNV_i = x_i - x_is_i

where x_ix_i is the signal of the iith observation, x_ix_i is its mean and s_is_i its standard deviation.

References

Barnes RJ, Dhanoa MS, Lister SJ. 1989. Standard normal variate transformation and de-trending of near-infrared diffuse reflectance spectra. Applied spectroscopy, 43(5): 772-777.

See Also

msc, detrend, blockScale, blockNorm

Examples

Run this code
data(NIRsoil)
NIRsoil$spc_snv <- standardNormalVariate(X = NIRsoil$spc)
# 10 first snv spectra
matplot(
  x = as.numeric(colnames(NIRsoil$spc_snv)),
  y = t(NIRsoil$spc_snv[1:10, ]),
  type = "l",
  xlab = "wavelength, nm",
  ylab = "snv"
)
if (FALSE) {
apply(NIRsoil$spc_snv, 1, sd) # check
}

Run the code above in your browser using DataLab