光谱的基线处理
对于使用enlighten读取的光谱的数据来说,读取的数据是含有基线的,而人们所需要的只是需要的峰部分,而人们大多数是使用的OMNIC或者ORIGIN进行手动去基线处理方法,这样处理可能会有一定的小误差,如果能够进行使用软件进行自动去基线处理不仅极大地节省了人力,也加快了处理基线的时间,本文提供了一个使用python处理的一个自动去基线的方法。
准备工作
使用此次编写的python文件需要安装部分库,
BaselineRemoval==0.0.4
cycler==0.10.0
joblib==0.16.0
kiwisolver==1.2.0
matplotlib==3.3.0
numpy==1.19.1
pandas==1.1.0
Pillow==7.2.0
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.1
scikit-learn==0.23.2
scipy==1.5.2
six==1.15.0
sklearn==0.0
threadpoolctl==2.1.0
这些库使用这些指定的版本,我尝试着用最新的不可以。下载安装这些库的时候会很慢,简易镜像下载使用。
这里是镜像链接
(建议将上面那些弄到一个txt文本之中,这样可以省事儿,然后直接调用镜像下载)
安装完库之后接下来就可以进行去基线啦!
进行写py文件
# -*- coding: utf-8 -*-
# @Author: TD21forever
# @Date: 2020-07-28 12:21:13
# @Last Modified by: TD21forever
# @Last Modified time: 2020-07-28 13:32:42
from BaselineRemoval import BaselineRemoval
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
#read from csv to get original data
file = pd.read_csv('./data.csv')
X_ = file["X"]
Y_ = file["Y"]
print(X_)
#to_list
polynomial_degree=5
X = X_.to_list()
Y = Y_.to_list()
#Method one Modpoly
baseObj = BaselineRemoval(Y,polynomial_degree)
Y_Modpoly_output=baseObj.ModPoly()
data = pd.DataFrame()
data["X"] = X
data["Y"] = Y_Modpoly_output
data.to_csv('ModPoly.csv')
# # Visualize
plt.plot(X_,Y_,color='black',linewidth=2.0)
plt.plot(X_,Y_Modpoly_output,color='red',linewidth=2.0,linestyle='--')
plt.legend(["original","Modpoly"])
plt.title("Modpoly")
plt.savefig("./Modpoly.png")
#Method two IModPoly
baseObj=BaselineRemoval(Y,polynomial_degree)
Y_IModPoly_output=baseObj.IModPoly()
data = pd.DataFrame()
data["X"] = X
data["Y"] = Y_IModPoly_output
data.to_csv('IModPoly.csv')
# Visualize
plt.plot(X_,Y_,color='black',linewidth=2.0)
plt.plot(X_,Y_IModPoly_output,color='red',linewidth=2.0,linestyle='--')
plt.legend(["original","IModPloy"])
plt.title("IModPloy")
plt.savefig("./IModPloy.png")
保存好之后就可以进行去基线处理喽,文件的介绍应该看得懂吧
结果
插入链接与图片
运行成功的图片:
处理后的结果图片就如下图显示啦,
是不是很简单,你可以自己去尝试下啦。
结束
作为我的处女作就写到这里就准备结束啦,并不知道怎么进行书写哈哈格式比较混乱,但是程序啥的都是可以正常使用的十分简单的操作的,祝各位学习愉快!
原文链接:https://blog.csdn.net/qq_38634299/article/details/107913512