本文旨在详细阐述基于Python语言开发的一款第一性原理能带图谱后处理工具。该工具通过矩阵网格化与高斯滤波算法,将离散的能带计算数据转化为具备角分辨光电子能谱(ARPES)连续特征的可视化图谱,并提供多维度的数据重组与交互式调优功能。
一、 工具概述
核心功能:本工具跳过了传统的二维散点绘制模型,利用二维空间直方图投射与高斯展宽机制,生成高分辨率的平滑能带图。同时,工具内置了RGB色彩空间混合算法与路径对称映射算法。基于VASPKIT 的BAND UNFOLD功能输出的有效能带数据进行能带绘制并可自定义输出成类似ARPES的图片的能带图。
二、 数据准备与格式规范
在运行工具前,需在当前工作目录下准备以下三种标准化输出文件:
- 总体能带数据(EBS*.dat):包含三列基本数据,依次为 K路径坐标、能量值、总权重。
![图片]()
- 投影能带数据(PEBS*.dat):包含分波态密度权重的输出文件。首行需为标准注释行(如 K-Path Energy s py pz...),系统将动态读取该表头以分配轨道列号,具备向下兼容性(涵盖s、p、d、f所有可能轨道)。
![图片]()
- 高对称点坐标(KLABELS):以制表符或空格分隔的两列数据,首列为高对称点标签(如 GAMMA, M, K),次列为对应的K路径浮点坐标。
![图片]()
三、 操作流程与预期效果
启动脚本后,系统将依据以下四个阶段引导用户完成绘图:
- 阶段一:任务构建(轨道组合)。系统自动列出当前目录下的所有文件及识别到的有效轨道。用户通过输入编号,可自由捆绑多文件、多轨道。例如,组合Co原子的dxy轨道与C原子的py轨道。
![图片]()
- 阶段二:边界裁剪与对称重构。用户可设定起始与终止高对称点(如选择区间M至L)。当开启对称模式并指定对称中心后(如以Gamma点为中心),程序会在底层提取所需数据段,计算绝对距离,并沿纵轴进行数据的负向拷贝与拼接,自动生成类似于 K-Gamma-K 的对称图谱。
![图片]()
- 阶段三:预览与参数微调。程序将随机抽取一项数据生成预览图(preview.png)。终端随即挂起,用户可根据图像质量,通过输入特定指令动态修正各项参数,包括:水平展宽半径、对比度阈值、背景灰度、输出长宽比、全局字体字号等。
![图片]()
- 阶段四:批量并行输出。参数确认后,系统自动遍历所有单态与组合态,将灰度底噪图(_gray.png)与色彩叠加图(_color.png)统一保存至指定文件夹,输出结果达到直接出版规格。
![图片]()
![图片]()
![图片]()
四、 大语言模型(AI)复现指南
若需在不同环境中重新开发或定制本工具,向AI大模型提供结构化且约束严格的提示词是成功的关键。建议向AI发送如下指令,确保功能特性的完整实现:
请编写一个Python脚本,用于处理第一性原理计算输出的 EBS.dat 整体能带文件与 PEBS_*.dat 投影能带文件,以生成ARPES风格的连续图谱。请严格遵循以下技术规范:
- 渲染引擎约束:禁止使用 scatter 函数。必须使用 numpy.histogram2d 对离散三维坐标(K, Energy, Weight)进行网格化,并调用 scipy.ndimage.gaussian_filter 施加二维高斯平滑滤波。
- 动态读取机制:读取 PEBS 文件的 #K-Path 开头行,动态识别后续列的物理轨道名称,并在交互式菜单中供用户调取。
- 对称路径镜像算法:读取 KLABELS 解析高对称点坐标。支持区间切片。在启用对称路径时,要求用户指定对称中心点,随后按绝对距离对该段数据进行正负对称拷贝拼接,并同步更新X轴的坐标及标签。
- 多态混合算法:针对用户选定的轨道组合,分配相异的RGB颜色。在同一背景矩阵之上,应用线性 Alpha 混色公式(底色 × (1-权重) + 目标色 × 权重),确保轨道重合区域颜色平滑过渡。
- 交互与调优:在批量出图前,强制生成预览图并进入参数配置循环。允许用户在命令行中输入数字,实时变更图片尺寸、全局字体属性、高斯方差、对比度上限及背景底噪。
- 环境依赖:纯Python实现,需声明 matplotlib.use('Agg') 以兼容Linux服务器无头环境,确保运行过程无GUI报错。
五、 部署与运行注意事项
- 依赖库安装:本脚本仅依赖标准科学计算库,需在运行前确保系统已正确安装 numpy、scipy 与 matplotlib。
- 内存管理:脚本默认分辨率网格为 400×600。不建议在交互调优中将分辨率提升至极高数值(如4000×6000),以免在多通道RGB矩阵浮点运算中引发内存溢出(OOM)。
- 高斯平滑半径(Sigma_K):当初始计算采样的K点较为稀疏,导致生成图谱出现垂直断层时,应在预览阶段适当增大水平高斯方差(Sigma_K)参数。








