Critic2 粉末衍射谱线处理
实际运行背景扣除、峰形拟合与峰表再拟合,说明数据来源、文件覆盖和强度偏移。
阅读本篇目录
POWDER从晶体结构计算衍射谱;XRPD处理已有的一维谱线,两者是不同命令。本篇用NaCl结构计算谱,加入明确的背景与噪声,演示从两列数据到背景、峰表和再拟合曲线的全过程。
1. 下载并查看原始曲线#
下载配套数据和脚本:
unzip critic2-molecular-xrpd-wave143-*.zip -d critic2-tools
cd critic2-tools
head -n 6 data/structural-profile.xy
两列依次为2θ(度)和任意单位强度。本例共 3334 点,结构谱来自实际NaCl POWDER 输出,加入 20+0.05x+2sin(0.08x) 背景和种子14320261030、标准差0.1的噪声。profile-components.csv保留各个分量。这是有已知来源的计算谱教学数据,不是实验测量。
程序为 critic2/1.4内部1.4.155,GCC/GFortran13.3、OpenMP、LAPACK/BLAS与NLopt2.10;单CPU运行。画图使用SciPy/NumPy/Matplotlib。
2. 一次运行背景、拟合与再拟合#
bash run.sh 5
ls work/xrpd-preserve
实际执行的完整输入:
xrpd background ../../data/structural-profile.xy corrected.xy 20
xrpd fit corrected.xy 2
run cp in.peaks initial.peaks
run cp in_fit.dat initial_fit.dat
xrpd refit corrected.xy initial.peaks
先用 BACKGROUND 得到背景扣除后的曲线;末尾20是背景拟合节点参数。FIT读取扣背景文件,后面的2是本例采用的峰检测参数,换成自己的数据时需要结合强度尺度和谱图检查。
中间两行只复制当前算例目录内自己的峰表与拟合曲线,用来保留第一次结果。REFIT再读取保留的峰表,可用于手动检查或调整峰参数后的再拟合。
3. 输出文件怎么看#
head -n 6 work/xrpd-preserve/corrected.xy
head -n 12 work/xrpd-preserve/initial.peaks
head -n 6 work/xrpd-preserve/in_fit.dat
corrected.xy的四列是x、扣背景后的强度、背景和原强度,第二列加第三列应恢复第四列。initial.peaks是第一次峰表,包含峰位置、面积、FWHM和高斯/洛伦兹混合参数;initial_fit.dat保留第一次拟合曲线。
本版本 REFIT实际写入当前前缀的 in.peaks 和 in_fit.dat,会替换此前同名结果,控制台的峰文件提示与实际名称有差异。因此先保留第一次文件,再检查真实生成的最终文件,避免把初始峰表弄丢。
4. 比较真实输出,而不是只看“拟合完成”#
bash analyze.sh
ls figures-reference/xrpd-profile.*
本例最终曲线的强度残差RMS为 0.468721,估计背景相对已知背景的RMS为 0.279251。拟合器还对观测强度施加了常数偏移 0.193759,图和检查表保留该偏移;不能把带偏移的观测列直接当成原始扣背景强度。

强峰位置与原结构计算谱逐一比较,原始数据、背景、第一次与最终拟合都保留。自己的实验谱应同时检查背景、未拟合峰、峰宽、强度偏移及测量条件。这些命令处理一维峰形,不会自动完成晶体原子位置精修、相含量分析或结构身份判定。
完整重算和画图请在新解压目录运行 bash run-all.sh。结果包括两列输入谱、四列背景文件、峰参数表、初始/最终拟合曲线、独立检查表及PNG/SVG图件。
只分析随包数据时,数值检查表在 analysis-reference/CHECKS.json,PNG/SVG图片在 figures-reference/;完整重算时分别写入 analysis/ 和 figures/。