1. 系统概述
D/P带中心与电子态密度计算工具 是一个专门用于 XPS/UPS/DFT 能谱数据处理的图形化工具,在原有 D/P 带中心计算基础上新增了 电子态密度 (DOS) 计算功能。该工具支持批量数据处理、交互式可视化、工程保存/读取,并提供完整的导出功能。
1.1 核心功能
·📊数据导入:支持 TXT、DAT、CSV、TSV、XLSX、XLS 格式
·🔧能量校正:统一横坐标为"结合能",支持单次/批量校正
·🎯三重计算:D带中心、P带中心、电子态密度 (DOS)
·📈交互式可视化:支持拖拽选择积分范围
·💾工程管理:保存/读取完整分析工程
·📤数据导出:支持 CSV/TXT 导出及图片导出
1.2 新增 DOS 功能
本版本在原有 D/P 带中心计算基础上,新增了电子态密度计算:
计算项目 | 输出内容 | 应用场景 |
D带中心 | 中心位置、积分面积、FWHM | 催化活性预测 |
P带中心 | 中心位置、积分面积、FWHM | 电子结构分析 |
DOS | 积分DOS、平均DOS、中心位置 | 态密度分析 |

2. 系统要求
2.1 Python 版本
·Python 3.8 或更高版本(推荐 Python 3.9+)
2.2 依赖库
库名称 | 版本要求 | 用途 |
PyQt5 | ≥ 5.15.0 | GUI 界面 |
numpy | ≥ 1.20.0 | 数值计算 |
matplotlib | ≥ 3.4.0 | 图形绘制 |
openpyxl | ≥ 3.0.0 | XLSX 文件读取(可选) |
xlrd | ≥ 2.0.0 | XLS 文件读取(可选) |
json | 内置 | 工程文件序列化 |
csv | 内置 | CSV 导出 |
re | 内置 | 正则表达式解析 |
2.3 环境配置
bash
# 安装所有依赖
pip install PyQt5 numpy matplotlib openpyxl xlrd
# 如果安装较慢,可使用国内镜像
pip install PyQt5 numpy matplotlib openpyxl xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple
2.4 验证安装
bash
python -c "import PyQt5, numpy, matplotlib, openpyxl, xlrd; print('所有依赖安装成功')"

3. 界面布局
省略

4. 使用方法
4.1 基本工作流
text
1. 导入数据
├── 选择文件 → 加载单个文件
└──批量文件夹 → 加载目录下所有支持格式
2. 能量校正(如需要)
├── 输入校正值 (eV)
├── 应用到当前文件 或 应用到全部文件
└──校正公式:结合能 = 原始横坐标 + 校正值
3. 设置积分范围
├── 手动输入起点/终点
└──或在图上拖拽选择范围
4. 计算
├── 计算D带
├── 计算P带
├── 计算DOS(新增)
└──批量计算D/P/DOS(新增)
5. 查看与调整
├── 切换不同文件
├── 调整显示选项(含DOS控制)
└──查看结果面板(含DOS信息)
6. 导出结果
├── 导出完整数据 (CSV/TXT) - 含DOS列
├── 导出图片 (PNG/PDF/SVG/JPG)
├── 保存工程 (.dproj)
└──复制结果到剪贴板
4.2 详细步骤
步骤 1:导入数据
·选择文件:点击按钮选择单个数据文件
·批量文件夹:选择文件夹,自动加载所有支持格式
支持格式:
扩展名 | 说明 |
.txt | 文本格式,空格/Tab/逗号分隔 |
.dat | 通用数据文件 |
.csv | 逗号分隔文件 |
.tsv | Tab分隔文件 |
.xlsx | Excel 2007+ 文件 |
.xls | Excel 97-2003 文件 |
步骤 2:能量校正
·校正值:输入偏移量(eV),正值为向右移动
·应用到当前:仅当前文件应用校正
·应用到全部:所有文件应用相同校正值
注意:横坐标统一为"结合能 Binding Energy (eV)",原始横坐标 + 校正值 = 结合能
步骤 3:设置积分范围
·手动输入:在起点/终点框中输入数值
·拖拽选择:在图谱上按住鼠标左键拖拽,释放后自动填充范围
步骤 4:计算
·计算D带:使用当前范围计算 D 带中心
·计算P带:使用当前范围计算 P 带中心
·计算DOS:使用当前范围计算电子态密度(新增)
·批量计算D/P/DOS:对所有文件同时计算三种参数
步骤 5:显示控制
可独立控制以下元素的显示/隐藏:
控制项 | 说明 |
谱线 | 原始数据曲线 |
填充 | 谱线下区域填充 |
网格 | 坐标网格 |
图例 | 图例显示 |
公式 | 带中心计算公式 |
D/P/DOS 积分区 | 各积分范围高亮 |
D/P/DOS 中心线 | 各中心位置竖线 |
D/P/DOS 标签 | 各中心坐标标签 |
步骤 6:结果查看与导出
·结果面板:显示当前文件的详细计算结果(含DOS信息)
·复制结果:将结果复制到剪贴板
·导出完整数据:导出包含所有信息的 CSV/TXT(含DOS列)
·导出图片:导出高分辨率图谱

5. DOS 计算详解
5.1 DOS 计算参数
参数 | 说明 |
积分DOS | ∫ I(E) dE,积分面积 |
平均DOS | 积分DOS / 能量范围宽度 |
DOS中心 | 加权平均位置 |
DOS FWHM | 半高宽 |
5.2 DOS 应用场景
·催化活性分析:DOS 积分反映可用的电子态数量
·电子结构表征:DOS 分布反映能带结构
·材料性质预测:结合 D/P 带中心综合评估

6. 导出数据格式
6.1 CSV/TXT 导出列(新增DOS列)
列名 | 说明 |
index | 数据点索引 |
original_x | 原始横坐标 |
binding_energy | 校正后结合能 |
intensity | 强度/DOS |
correction_eV | 校正值 |
D_center_x/y | D带中心 |
D_range_min/max | D带积分范围 |
D_area | D带积分面积 |
D_FWHM | D带半高宽 |
P_center_x/y | P带中心 |
P_range_min/max | P带积分范围 |
P_area | P带积分面积 |
P_FWHM | P带半高宽 |
DOS_center_x/y | DOS中心(新增) |
DOS_range_min/max | DOS积分范围(新增) |
DOS_integral | 积分DOS(新增) |
DOS_FWHM | DOS半高宽(新增) |

7. 工程文件 (.dproj)
7.1 工程文件内容
工程文件为 JSON 格式,包含:
·所有加载的数据
·校正值
·D/P/DOS 计算结果
·显示选项
·当前文件索引
7.2 保存/读取工程
·保存工程:保存当前所有数据和计算结果
·读取工程:恢复之前保存的完整分析状态

8. 与精简版对比
功能 | 基础版 | DOS版本 |
D带计算 | ✅ | ✅ |
P带计算 | ✅ | ✅ |
DOS计算 | ❌ | ✅ |
DOS积分区显示 | ❌ | ✅ |
DOS中心线/标签 | ❌ | ✅ |
批量D/P/DOS计算 | ❌ | ✅ |
导出含DOS列 | ❌ | ✅ |
结果含DOS信息 | ❌ | ✅ |

9. 常见问题
Q1: 无法读取 Excel 文件
解决方法:
bash
pip install openpyxl xlrd
Q2: 积分面积为0
解决方法:
·检查积分范围是否包含有效数据
·确保数据点在该范围内存在
·检查是否有负值或异常值
Q3: DOS 计算结果为空
可能原因:
·积分范围内数据不足
·积分面积为0
·范围设置过小
Q4: 无法加载中文路径文件
解决方法:
·将文件路径改为英文
·或确保 Python 使用 UTF-8 编码
Q5: 批量计算速度慢
解决方法:
·减少同时加载的文件数
·使用较小的积分范围

10. 版本历史
版本 | 更新内容 |
v3.0 DOS | 新增电子态密度(DOS)计算功能 |
v3.0 | 精简版,仅支持文本/Excel格式 |
v2.0 | 添加工程保存/读取功能 |
v1.0 | 基础版本 |

11. 注意事项
1.数据格式:文件需要包含至少两列数值(横坐标 + 强度)
2.单位:横坐标单位为 eV,纵坐标为强度/DOS(任意单位)
3.校正:校正值即为"结合能 = 原始值 + 校正值"
4.批量处理:批量计算时所有文件使用相同的积分范围
5.DOS计算:需确保积分范围覆盖完整的 DOS 区域

12. 参考文献
·Hammer, B., & Nørskov, J.K. (1995). Why gold is the noblest of all the metals. Nature.
·Nørskov, J.K., et al. (2011). The nature of the active site in heterogeneous metal catalysis. Chemical Society Reviews.
·Bligaard, T., & Nørskov, J.K. (2008). Heterogeneous catalysis. Chemical Physics of Solid Surfaces.

13. 技术支持
·PyQt5 文档:https://doc.qt.io/qtforpython/
·Matplotlib 文档:https://matplotlib.org/
·NumPy 文档:https://numpy.org/doc/

夜雨聆风