光谱预处理——R语言prospectr包

加载R包

###加载
install.packages("prospectr")
library(prospectr)
##帮助
??prospectr

在这里插入图片描述
里面会有详细的介绍如何使用

以自己数据为例

##设置读取数据位置
setwd(“C:/Users/chengdehe/Desktop/processing”)
##读取数据
data <- read.csv(“H3.csv”,check.names=F)

数据结构
在这里插入图片描述
在这里插入图片描述
数据剔除标签

##设置读取数据位置
setwd("C:/Users/chengdehe/Desktop/processing")
##读取数据
data <- read.csv("H3.csv")
##去除表头,只剩下光谱数据
data_ref <- data[ ,-(1:2)]

**

去除噪声

原因:由实验仪器或实验环境引起

**
光谱平滑处理

movav(X, w)

#####movav(X, w)_平滑处理
#X代表矩阵
#w代表几个数据进行平滑,即多少数据进行均值计算
movav_data_ref <- movav(data_ref, 8)

在这里插入图片描述
下面博文,理解平滑是如何进行的,以及为何平滑后数据减少

https://blog.csdn.net/qq_35166974/article/details/88058945

Savitzky-Golay filtering——Savitzky-Golay平滑

#w窗口必须为基数
#p阶数——阶数越高,误差越小,但是过拟合越来越严重
#m=0光滑
sg_data_ref <- savitzkyGolay(data_ref, p = 3, w = 11, m = 0)

m=0表示光滑曲线,取1,表示一阶导数
下面博文和文献,理解p与w值的含义

1)https://www.jianshu.com/p/eac4c7928b56
2)赵安新,汤晓君,张钟华,刘君华.优化Savitzky-Golay滤波器的参数及其在傅里叶变换红外气体光谱数据平滑预处理中的应用[J].光谱学与光谱分析,2016,36(05):1340-1344.

衍生数据

原因:去除基线、重叠,,

##### diff 函数
##differences——几阶差分
## laglag——计算差分的间隔
diff_data_ref <- t(diff(t(data_ref), differences = 1, lag = 10))   
dim(diff_data_ref)

理解 diff 函数,参考博文

https://likan.info/cn/post/diff-function-in-r/

散射矫正

原因:去除光的散射和光的路径长短变化

######standardNormalVariate——散射矫正#########
snv_data_ref <- standardNormalVariate(X = data_ref)
dim(snv_data_ref)
#####Centering and scaling————与SNV处理相似但是按照列的方向####
bn_data_ref <- blockNorm(X = data_ref, targetnorm = 1)$Xscaled
###
bs_data_ref <- blockScale(X = data_ref, type = "hard")$Xscaled

其他处理方式

光谱的转换

cr_data_ref <- continuumRemoval(X = data_ref, type = "A")
##type——the type of data: 'R' for reflectance (default), 'A' for absorbance

光谱抽样——带校准的抽样

kms_data_ref <- naes(X = data_ref, k = 5, pc = 2, iter.max = 100)
##对训练集进行

##小白一个,建议直接查R包的帮助

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值