光谱预处理-R

本文介绍了使用R语言的prospectr包进行光谱分析预处理,包括SG平滑、SNV、MSC等方法,并通过实例展示了如何对光谱数据进行平滑处理和使用kennard-Stone算法选择校正样本。
摘要由CSDN通过智能技术生成

使用R语言包prospectr进行预处理。。。。。

#R语言学习-光谱分析与处理
#光谱分析预处理包-prospectr包
#####加载
install.packages("prospectr")
library(prospectr)
##帮助-查看包信息---prospectr能够实现SG平滑,SNV,MSC,k均值抽样,连续删除,校准采样的K-S算法等.
??prospectr
##以自己的光谱数据为例子-123数据集
##设置读取数据位置
getwd()
setwd("C:/Users")
##读取数据
data <- read.csv("T.csv",check.names=F)
##去除表头,只剩下光谱数据-400-2450波段
data_ref <- data[ ,-(1:1)]   ##根据自己的数据进行适当调整即可
#####movav(X, w)_平滑处理
#X代表矩阵
#w代表几个数据进行平滑,即多少数据进行均值计算
movav_data_ref <- movav(data_ref, 1)
##Savitzky-Golay filtering——Savitzky-Golay平滑
#w窗口必须为基数
#p阶数——阶数越高,误差越小,但是过拟合越来越严重
#m=0光滑
sg_data_ref <- savitzkyGolay(data_ref, p = 3, w = 11, m = 0)
##使用kennard-Stone算法从大量多元数据中选择校正样本-X : 一个数字矩阵。

#k : 要选择的校准样本数。

#metric : 要使用的距离度量:“euclid”(欧几里德距离)或“mahal”(默认马氏距离)。

#pc : 可选。如果未指定,则在欧几里德空间中计算距离。或者,在主成分得分空间中计算距离,pc是主成分的数量保留。如果pc<1,保留的主成分数对应于至少解释(pc*100)总方差的成分数。

#group : 一个可选的因子(或向量,可以强制为因子)as.系数)长度等于nrow(X),提供相关观察的标识(例如,同一批测量的样品、同一来源的样品或同一土壤剖面的样品)。当通过程序选择一个观测点时,同一组的所有观测点一起移除并分配到校准集。这允许选择独立于其余点的校准点。

#.center : 逻辑值,指示是否应在主成分分析之前输入输入矩阵。默认设置为TRUE。

#.scale : 逻辑值,指示输入矩阵是否应在主成分分析之前进行定标。默认设置为FALSE
KS_value<-kenStone(data_ref, k = 133, pc = .99)
traindata<-as.matrix(KS_value$test)  #表示第几行是训练集
predictdata<-as.matrix(KS_value$model) #第几行是校准集

##读取ASD FieldSpecPro(ASDi,Boulder,CO)光谱辐射计获取的单个或多个二进制和ASCII文件
readASD(fnames, in_format, out_format)
#fnames : 要读取的文件的名称(具有绝对路径)的字符向量。
#in_format : 输入文件的格式:“binary”或“txt”。
#out_format : 输出的格式:“矩阵”(默认)或“列表
 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lltanwh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值