一种自动提取x射线衍射图谱中特征峰信息的方法
技术领域
1.本发明涉及数据科学领域,更具体的说,涉及一种自动提取x射线衍射图谱中特征峰信息的方法。
背景技术:2.分子筛已广泛用于催化裂化、加氢裂化、汽油和柴油加氢改质等石油化工过程,是石油化工行业中应用最广的催化材料。
3.合成具有高效的分子筛催化剂能产生巨大的经济效益,而高通量合成系统以其高实验吞吐量被用于分子筛的实验研究和开发。
4.x射线衍射(xrd)图谱被广泛用于表征分子筛等微观晶体结构的手段。传统的手动峰标注需要操作人员逐个将图谱中的峰标注出来,这耗费了大量的人力资本。
5.因此,目前亟需一种自动提取x射线衍射图谱中特征峰信息的方法。
技术实现要素:6.本发明的目的是提供一种自动提取x射线衍射图谱中特征峰信息的方法,解决现有技术对于x射线衍射图谱中特征峰信息难以进行有效自动提取的问题。
7.为了实现上述目的,本发明提供了一种自动提取x射线衍射图谱中特征峰信息的方法,包括以下步骤:
8.s1、对x射线衍射图谱进行归一化处理和平滑操作;
9.s2、遍历整个x射线衍射图谱,采用滑动窗口的形式计算整个窗口的标准差,根据标准差找出其中峰可行区间;
10.s3、对峰可行区间进行遍历,剔除掉不是峰的区间,并将其中相邻的峰区间进行合并;
11.s4、遍历每个峰信号区间进行基线修正;
12.s5、对修正后的峰信号进行拟合,得到峰信号的信息参数,信息参数包括峰高、峰强度以及峰宽。
13.在一实施例中,所述步骤s1中,采用高斯滤波对x射线衍射图谱进行平滑操作。
14.在一实施例中,所述步骤s1,进一步包括以下步骤:
15.s11、将原始的x射线衍射图谱数据进行归一化处理;
16.s12、利用高斯滤波对x射线衍射图谱进行滤波操作,得到滤波后的x射线衍射图谱data
smooth
。
17.在一实施例中,所述步骤s2,进一步包括以下步骤:
18.s21、将衍射角度按序排列,对x射线衍射图谱data
smooth
进行遍历,采用滑动窗口的方法计算窗口内的标准差,得到新的标准差图谱data
std
;
19.s22、寻找出标准差图谱data
std
中的极大值点,剔除掉小于给定阈值的极大值点,得到极大值点对应位置索引max
std
;
20.s23、遍历位置索引max
std
中每一个点p,将p位置的左右给定宽度的位置区域设为峰可出现区域,找出x射线衍射图谱data
smooth
中的极大值点位置,剔除掉未落在峰可出现区域的极大值点,得到极大值点位置索引max
smooth
;
21.s24、寻找出标准差图谱data
std
中的极小值点,得到极小值点位置索引min
std
,以及x射线衍射图谱data
smooth
中的极小值点对应的位置索引min
smooth
;
22.s25、遍历极大值点位置索引max
smooth
的每个点p,作为峰位置loc
peak
,在极小值点位置索引min
std
中找出离该极大值点左侧最近位置l
std
和右侧最近位置r
std
,在min
smooth
中找出离该极大值点左侧最近位置l
smooth
和右侧最近位置r
smooth
;
23.s26、分别比较x射线衍射图谱data
smooth
在左侧最近位置l
std
和l
smooth
,右侧最近位置r
std
和r
smooth
处的值,取其中较小值的位置分别作为峰的起始位置loc
start
和结束位置loc
end
,得到三元组peak
info
,每项三元组包含峰起始位置loc
start
、峰位置loc
peak
和峰结束位置loc
end
。
24.在一实施例中,所述步骤s3,剔除掉不是峰的区间,进一步包括以下步骤:
25.遍历peak
info
中的每一条,如果data
smooth
[loc
peak
]与data
smooth
[loc
start
]、data
smooth
[loc
end
]之差都小于给定强度阈值,则删除这条峰信息,得到新的peak
info_new
,peak
info_new
按loc
start
从小到大排序;
[0026]
其中,data
smooth
[loc
peak
]为data
smooth
[i]在i=loc
peak
处的值;
[0027]
data
smooth
[loc
start
]为data
smooth
[i]在i=loc
start
处的值;
[0028]
data
smooth
[loc
end
]为data
smooth
[i]在i=loc
end
处的值;
[0029]
data
smooth
[i]为data
smooth
在i处的值。
[0030]
在一实施例中,所述步骤s3,将其中相邻的峰区间进行合并,进一步包括以下步骤:
[0031]
对于peak
info_new
中的每条记录peak
info_new
[i],如果peak
info_new
[i+1][loc
start
]与peak
info_new
[i][loc
end
]相差不超过给定宽度,则两条记录记载的区间合并,新记录的loc
start
为peak
info_new
[i][loc
start
],新记录的loc
end
为peak
info_new
[i][loc
end
],新记录的loc
peak
为两条记录loc
peak
合在一起的列表,依次遍历所有记录,得到最终的三元组peak
info_final
,每项三元组包含峰起始位置loc
start
,峰位置loc
peak
和峰结束位置loc
end
三项;
[0032]
其中,peak
info_new
[i+1][loc
start
]代表第i+1条记录peak
info_new
[i+1]中的loc
start
值。
[0033]
在一实施例中,所述步骤s4,进一步包括以下步骤:
[0034]
s41、遍历peak
info_final
中的每条记录,从data
smooth
中将loc
start
到loc
end
之间的数据信号截取出来得到截取信号signal;
[0035]
s42、遍历每条signal,在左右两端给定宽度的位置寻找最小的强度值包括左侧最小强度值l
bkg
和右侧最小强度值r
bkg
,取l
bkg
和r
bkg
中较小值填充成和signal长度一致的背景向量bkg;
[0036]
s43、利用signal减去bkg得到signal
modify
,对signal
modify
进行离散积分得到p_q;
[0037]
s44、利用以下公式从左到右更新bkg中的值:
[0038]
bkg
i
=l
bkg
+(r
bkg
‑
l
bkg
)*p_q
i
/p_q;
[0039]
其中,p_q
i
为从起始位置到i位置的离散积分;
[0040]
s45、重复s43
‑
s44数次得到bkg
final
,最终信号signal
final
为:
[0041]
signal
final
=signal
‑
bkg
final
。
[0042]
在一实施例中,所述步骤s5,进一步包括以下步骤:
[0043]
遍历signal
final
,使用给定比例的高斯、洛伦兹混合函数对信号进行多峰拟合,得到峰强a、峰位置b以及峰宽c。
[0044]
在一实施例中,所述高斯、洛伦兹混合函数公式如下:
[0045][0046]
式中,w
gauss
为高斯函数的混合分量,i为在进行多峰拟合时第i个峰的拟合参数;
[0047]
多峰拟合函数如下:
[0048]
f(x)=f1(x)+f2(x)+f3(x)+
…
+f
n
(x);
[0049]
其中,n为需要拟合的信号中的峰数量。
[0050]
本发明提出的一种自动提取x射线衍射图谱中特征峰信息的方法,无须手动操作,可以自动化地将xrd图谱中特征峰的峰位置,峰强度以及峰宽信息提取出来,从而大大降低了手动提取峰的人力成本,提升了后续分析的效率。
附图说明
[0051]
本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的描述而变的更加明显,在附图中相同的附图标记始终表示相同的特征,其中:
[0052]
图1揭示了根据本发明一实施例的自动提取x射线衍射图谱中特征峰信息的方法流程图;
[0053]
图2揭示了根据本发明一实施例的x射线衍射图谱滤波前后局部对比图;
[0054]
图3揭示了根据本发明一实施例的x射线衍射图谱标准差与平滑图谱对比图;
[0055]
图4揭示了根据本发明一实施例的峰可行区域示意图;
[0056]
图5揭示了根据本发明一实施例的信号基线修正前后对比图;
[0057]
图6揭示了根据本发明一实施例的信号拟合效果图。
具体实施方式
[0058]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释发明,并不用于限定发明。
[0059]
xrd图谱中的衍射峰表现出较强的特征性和一致性,可以根据其这种性质,合理的设计出自动化提取峰的方法。
[0060]
图1揭示了根据本发明一实施例的自动提取x射线衍射图谱中特征峰信息的方法流程图,如图1所示的自动提取x射线衍射(xrd)图谱峰中特征峰信息的方法,具体包括以下步骤:
[0061]
s1、对x射线衍射图谱进行归一化处理和平滑操作;
[0062]
s2、遍历整个x射线衍射图谱,采用滑动窗口的形式计算整个窗口的标准差,根据
标准差找出其中峰可行区间;
[0063]
s3、对峰可行的区间进行遍历,剔除掉不是峰的区间,并将其中相邻的峰区间进行合并;
[0064]
s4、遍历每个峰信号区间进行基线修正;
[0065]
s5、对修正后的峰信号进行拟合,得到峰信号的信息参数,信息参数包括峰高、峰强度以及峰宽。
[0066]
下面详细对每一步进行说明。
[0067]
s1、对x射线衍射图谱进行归一化处理和平滑操作。
[0068]
对xrd图谱进行归一化处理,再利用高斯滤波进行平滑操作,消除掉一些小的峰的噪声干扰。
[0069]
原始的xrd图谱包含很多细小的噪声,这些噪声会影响峰的提取过程,利用滤波将这些小的噪声预先去除掉。
[0070]
所述步骤s1,进一步包括以下步骤:
[0071]
s11、将原始xrd图谱数据进行归一化处理;
[0072]
归一化处理,是本领域较为常用的处理算法,一般是指将数据的数值空间从最大到最小区间转换到0~1区间,具体操作为对于每个原始数据,减去该特征维度样本集中的最小值后,再除以转换后数据的最大值。
[0073]
s12、利用高斯滤波对xrd图谱峰进行滤波操作,得到滤波后的图谱data
smooth
。
[0074]
s2、遍历整个x射线衍射图谱,采用滑动窗口的形式计算整个窗口的标准差,根据标准差找出其中峰可行的区间。
[0075]
峰值预搜索,将峰所在的位置大致框选出来。峰可行的区间即为可能出现峰的区间。
[0076]
所述步骤s2,进一步包括以下步骤:
[0077]
s21、将衍射角度按序排列,从衍射低角度到高角度,对滤波后的图谱data
smooth
进行遍历,采用滑动窗口的方法计算窗口内的标准差,得到新的标准差图谱data
std
;
[0078]
s22、寻找出新的标准差图谱data
std
中的极大值点,并以给定阈值剔除掉比较小的极大值点得到极大值点对应位置索引max
std
;
[0079]
s23、遍历max
std
中每一个点p,将p位置左右给定宽度的位置设为峰可行区域,然后找出data
smooth
中的极大值点位置,剔除掉未落在峰可行区域的极大值点得到max
smooth
;
[0080]
s24、寻找出data
std
中的极小值点对应位置min
std
,以及data
smooth
中的极小值点对应位置min
smooth
;
[0081]
s25、遍历max
smooth
的每个点p(即峰位置loc
peak
),在min
std
中找出离该极大值点最近的左右两个位置l
std
,r
std
(l
std
为左边最近位置,r
std
为右边最近位置),在min
smooth
中找出离该极大值点最近的左右两个位置l
smooth
,r
smooth
(l
smooth
为左边最近位置,r
smooth
为右边最近位置);
[0082]
s26、分别比较data
smooth
在l
std
和l
smooth
,r
std
和r
smooth
处的值,取其中较小值的位置分别作为峰的起始loc
start
和结束位置loc
end
,得到三元组peak
info
,每项三元组包含峰起始位置loc
start
、峰位置loc
peak
和峰结束位置loc
end
三个参数信息。
[0083]
s3、对峰可行区间进行遍历,剔除掉不是峰的区间,并将其中相邻的峰区间进行合
并。
[0084]
进行峰区间整理,将一些明显不含峰的区间剔除掉,并且相邻的峰应应看成一个整体在后面进行多峰拟合,将其合并。
[0085]
更进一步的,剔除掉不是峰的区间,进一步包括以下步骤:
[0086]
遍历peak
info
中的每一条,如果data
smooth
[loc
peak
]与data
smooth
[loc
start
]、data
smooth
[loc
end
]之差都小于给定强度阈值,则删除这条峰信息,得到新的peak
info_new
,peak
info_new
按loc
start
从小到大排序,data
smooth
[i]为data
smooth
在i处的值;
[0087]
data
smooth
[loc
peak
]为data
smooth
[i]在i=loc
peak
处的值;
[0088]
data
smooth
[loc
start
]为data
smooth
[i]在i=loc
start
处的值;
[0089]
data
smooth
[loc
end
]为data
smooth
[i]在i=loc
end
处的值。
[0090]
更进一步的,将其中相邻的峰区间进行合并,进一步包括以下步骤:
[0091]
对于peak
info_new
中的每条记录peak
info_new
[i],如果peak
info_new
[i+1][loc
start
]与peak
info_new
[i][loc
end
]相差不超过给定宽度,则两条记录记载的区间合并,新记录的loc
start
为peak
info_new
[i][loc
start
],新记录的loc
end
为peak
info_new
[i+1][loc
end
],新记录的loc
peak
为两条记录loc
peak
合在一起的列表,依次遍历所有记录,得到最终的三元组peak
info_final
,每项三元组包含峰起始位置loc
start
、峰位置loc
peak
和峰结束位置loc
end
三项参数信息;
[0092]
其中,peak
info_new
[i+1][loc
start
]代表第i+1条记录peak
info_new
[i+1]中的loc
start
值。
[0093]
s4、遍历每个峰信号区间进行基线修正。
[0094]
xrd图谱会出现基线漂移的现象,需要将其修正。
[0095]
所述步骤s4,进一步包括以下步骤:
[0096]
s41、遍历peak
info_final
中的每条记录,从data
smooth
中将loc
start
到loc
end
之间的数据信号截取出来得到截取信号signal;
[0097]
s42、遍历每条signal,在左右两端给定宽度的位置寻找最小的强度值,包括左侧最小强度值l
bkg
和右侧最小强度值r
bkg
,取l
bkg
和r
bkg
中较小值填充成和signal长度一致的背景向量bkg;
[0098]
s43、利用signal减去bkg得到signal
modify
,对signal
modify
进行离散积分得到p_q;
[0099]
s44、利用以下公式从左到右更新bkg中的值:
[0100]
bkg
i
=l
bkg
+(r
bkg
‑
l
bkg
)*p_q
i
/p_q;
[0101]
其中,p_q
i
为从起始位置到i位置的离散积分;
[0102]
s45、重复(3)
‑
(4)5次,得到bkg
final
,最终信号signal
final
为:
[0103]
signal
final
=signal
‑
bkg
final
。
[0104]
s5、对修正后的峰信号进行拟合,得到峰高、峰强度以及峰宽信息。
[0105]
进行多峰拟合,利用具体的峰形函数将峰的具体参数拟合出来。
[0106]
所述步骤s5,进一步包括以下步骤:
[0107]
遍历signal
final
,使用给定比例的高斯、洛伦兹混合函数对信号进行多峰拟合,得到峰强a、峰位置b以及峰宽c。
[0108]
所述高斯、洛伦兹混合函数公式如下:
[0109][0110]
式中,w
gauss
代表高斯函数的混合分量,i为在进行多峰拟合时第i个峰的拟合参数。
[0111]
多峰拟合函数如下:
[0112]
f(x)=f1(x)+f2(x)+f3(x)+
…
+f
n
(x);
[0113]
其中,n为需要拟合的信号中的峰数量。
[0114]
本发明提出的自动提取x射线衍射图谱中特征峰信息的方法,在进行xrd峰信息的提取时,首先采用步骤s1对原始图谱进行平滑,然后采用步骤s2进行峰位置的预搜索,得到一系列可能存在峰的区间,然后依据步骤s3对这些可能含有峰的区间进行整理,剔除掉不含峰的区间,并将相邻的峰合并在一个信号区间里。在经过步骤s3找出所有的峰区间后,利用步骤s4消除信号中的基线漂移造成的干扰,最后利用步骤s5进行信号的拟合,得到每个峰的三个参数(峰位置、峰强度、峰宽)。
[0115]
下面通过实施例对本发明进行具体描述。有必要在此指出的是,以下实施例只用于对本发明作进一步说明,不能理解为对本发明保护范围的限制,该领域的专业技术人员根据本发明的内容做出的一些非本质的改进和调整,仍属于本发明的保护范围。
[0116]
以下通过一张xrd图谱峰信息提取的实施例来说明本发明,具体步骤包括:
[0117]
步骤s1、数据平滑。
[0118]
将数据除以最大强度值得到最大峰强为1的标准化图谱;
[0119]
利用长度为13,标准差为2的高斯滤波核在整个图谱上进行滤波得到data
smooth
,滤波结果如图2所示,图2揭示了根据本发明一实施例的x射线衍射图谱滤波前后的局部对比图。
[0120]
步骤s2、峰值预搜索。
[0121]
采用长度为13的滑动窗口划过整个图谱,计算窗口内的标准差,得到标准图谱如图3所示,图3揭示了根据本发明一实施例的x射线衍射图谱标准差与平滑图谱对比图。
[0122]
找出其中的极大值点,以0.1的阈值筛选掉一部分极大值点。将这些极大值点左右20宽度的区间设为峰可行区间,如图4所示,图4揭示了根据本发明一实施例的峰可行区域示意图。
[0123]
找出data
smooth
中的极大值点,剔除掉未落在峰可行区间的点。
[0124]
步骤s3、峰区间整理。
[0125]
剔除掉峰值和左右端值之差小于0.1的区间,并以7的宽度判别相邻区间并将相邻区间合并得到peak
info_final
。
[0126]
步骤s4、基线修正。
[0127]
从peak
info_final
中把signal提取出来,在信号左右两端13个长度的区间分别寻找最小值,按步骤四基线消除的公式得到消除后的信号signal
final
,如图5所示,图5揭示了根据本发明一实施例的信号基线修正前后对比图。
[0128]
步骤s5、多峰拟合。
[0129]
以w
gauss
=0.5的混合函数对峰进行拟合,得到拟合结果,拟合结果如图6所示,图6揭示了根据本发明一实施例的信号拟合效果图。
[0130]
本发明提出的一种自动提取x射线衍射图谱中特征峰信息的方法,无须手动操作,
可以自动化地将xrd图谱中特征峰的峰位置,峰强度以及峰宽信息提取出来,从而大大降低了手动提取峰的人力成本,提升了后续分析的效率。
[0131]
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
[0132]
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0133]
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。