Rパッケージの読み込み
###加载
install.packages("prospectr")
library(prospectr)
##帮助
??prospectr
使用方法の詳細な紹介があります
自分のデータを例に取る
##読み取りデータの場所を設定します
setwd( "C:/ Users / chengdehe / Desktop / processing")
##読み取りデータ
データ<-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フィルタリング——Savitzky-Golay平滑
#w窗口必须为基数
#p阶数——阶数越高,误差越小,但是过拟合越来越严重
#m=0光滑
sg_data_ref <- savitzkyGolay(data_ref, p = 3, w = 11, m = 0)
m = 0は滑らかな曲線を意味し、1は1次導関数を意味し
ます次のブログ投稿と文献では、p値とw値の意味を理解しています
1)https://www.jianshu.com/p/eac4c7928b56
2)Zhao Anxin、Tang Xiaojun、Zhang Zhonghua、Liu Junhua。Savitzky-Golayフィルターのパラメーターの最適化とフーリエ変換赤外ガススペクトルデータの平滑化前処理におけるそのアプリケーション[J]。Spectroscopy and Spectral Analysis、2016、36(05):1340-1344。
派生データ
理由:ベースラインの削除、オーバーラップ、
##### diff 函数
##differences——几阶差分
## laglag——计算差分的间隔
diff_data_ref <- t(diff(t(data_ref), differences = 1, lag = 10))
dim(diff_data_ref)
差分機能を理解するには、ブログ投稿を参照してください
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パッケージのヘルプを直接確認することをお勧めします