R语言 基于SNV和MSC的光谱数据平滑

u7up0aaq  于 2023-06-27  发布在  其他
关注(0)|答案(1)|浏览(193)

我正在过滤超光谱数据。我有204个光谱带。我尝试使用以下代码对标准正态变量(SNV)和多重散射校正(MSC)进行R。对于SNV:

spectra <- data[, 1:204]
means <- apply(spectra, 2, mean)
sds <- apply(spectra, 2, sd)
data_snv <- scale(spectra, center = means, scale = sds)

对于MSC:

average_spectrum <- apply(spectra, 2, mean)
corrected_spectra <- sweep(spectra, 2, average_spectrum, FUN = "-")

想确认这些是否正确?
尝试使用这些代码,但不确定。

iezvtpos

iezvtpos1#

您可以使用prospectr包来执行所有这些操作,如

library(prospectr)

snv_spc <- standardNormalVariate(X = spectra)
msc_spc <- msc(X = spectra)

相关问题