乐于分享
好东西不私藏

D/P带中心与电子态密度计算工具 使用说明

D/P带中心与电子态密度计算工具 使用说明

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/