光谱预处理方法-python版

算法列表

  • 标准正态变换 SNV
  • 多元散射校正 MSC
  • Savitzky-Golay平滑滤波函数 SG
  • 滑动平均滤波 move_avg
  • 一阶差分 D1
  • 二阶差分 D2
  • 小波变换 wave
  • 均值中心化 mean_centralization
  • 标准化 standardlize
  • 最大最小归一化 max_min_normalization
  • 矢量归一化 vector_normalization

感谢 @panxy0826的开源,本Tool 部分搬运修改于该作者

快速使用

1. 导入数据

# 导入 pandas 读取数据
import pandas as pd
import numpy as np

# 读取数据
data = pd.read_csv("./data/peach_spectra_brix.csv")

# m * n 
print("数据矩阵 data.shape:",data.shape)

# 50个样本, 600个 波段 第一列是 桃子糖度值 需要分离开
X = data.values[:,1:] 

2. 数据绘制

from pretreatment import Pretreatment as pre
p = pre()

# 该方法为快速示例 而编写 
# 测试用例 图片名 波段起始点 波段间距
p.PlotSpectrum(X, '演示', 0, 5).show()
## 为保证数据可以正确绘制 请将 矩阵转化为 numpy.ndarray 格式
type(X)

3. 数据预处理

多元散射校正 MSC

msc = p.msc(X)
p.PlotSpectrum(msc, 'msc', 0, 5).show()

标准正态变换 SNV

snv = p.snv(X)
p.PlotSpectrum(snv, 'snv', 0, 5).show()

Savitzky-Golay平滑滤波函数 SG

# 此处参数为参考 具体 后续 详述
sg = p.SG(X, 4*5+1,2*3,2)
p.PlotSpectrum(sg, 'sg', 0, 5).show

滑动平均滤波 move_avg

move_avg = p.move_avg(X)
p.PlotSpectrum(move_avg, 'move_avg', 0, 5).show

一阶差分 D1

D1 = p.D1(X)
p.PlotSpectrum(D1, 'D1', 0, 5).show

二阶差分 D2

D2 = p.D2(X)
p.PlotSpectrum(D2, 'D2', 0, 5).show

小波变换 wave

wave = p.wave(X)
p.PlotSpectrum(wave, 'wave', 0, 5).show

均值中心化 mean_centralization

mean_centralization = p.mean_centralization(X)
p.PlotSpectrum(mean_centralization, 'mean_centralization', 0, 5).show

标准化 standardlize

standardlize = p.standardlize(X)
p.PlotSpectrum(standardlize, 'standardlize', 0, 5).show

最大最小归一化 max_min_normalization

max_min_normalization = p.max_min_normalization(X)
p.PlotSpectrum(max_min_normalization, 'max_min_normalization', 0, 5).show

矢量归一化 vector_normalization

vector_normalization = p.vector_normalization(X)
p.PlotSpectrum(vector_normalization, 'vector_normalization', 0, 5).show

注意事项

先将如何使用写出,具体原理后续会补上

示例数据来源:nirpyresearch.com

仓库地址 https://gitee.com/aBugsLife/spectral-pretreatment-method

  • 18
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值