English | 中文
本仓库汇总了研究生期间开发、整理和打包的 TEM、HRTEM、STEM、4D-STEM 图像处理、EELS 谱学与定量分析工具源码。 各工具原本相互独立(各自维护 git 仓库),这里按原有目录结构统一收录,方便一处查阅与克隆。
本仓库只收录源码与文档。 可执行文件(
.exe)、模型权重(.pt/.onnx)、电镜原始数据(.tif/.dm3/.dm4) 和 PyInstaller 构建产物体积过大,均未入库,详见 .gitignore。需要成品程序请按各工具目录的 README 自行打包。
版本号取自各工具的代码常量(__version__ / pyproject.toml),最后核对于 2026-09-28。
| 分类 | 工具 | 版本 | 源码目录 | 入口 |
|---|---|---|---|---|
| 视频与数据提取 | TEM 视频帧提取 | 4.4 | 01-视频与数据提取/视频切片工具 |
run_app.py |
| 视频与数据提取 | TEM 视频流水线(切片+漂移矫正) | — | 10-DSH集成 |
tem_pipeline.py |
| 图像处理 | TIFF 漂移矫正 | 7.3.0 | 02-图像处理/drift-correction-v7 |
drift_correction.py |
| 图像处理 | HRTEM/STEM 滤波 | 5.1.0 | 02-图像处理/hrtem-HRTEM滤波工具 |
hrtem.py、cli_launcher.py |
| 图像处理 | HRTEM/STEM 图像增强 | 2.1.0 | 02-图像处理/stem-optimize-STEM图像优化 |
main.py |
| 图像处理 | TIF 图像滤镜 | 1.2.0 | 02-图像处理/图像加滤镜工具 |
main.py |
| 图像处理 | 离域效应去除工具 | 1.1.0 | 02-图像处理/离域效应去除工具 |
main.py |
| 应变分析 | Strain++ GPA |
1.4.1 | 03-应变分析/strainpp-GPA应变分析 |
run.py |
| 应变分析 | PPA 原子位移与应变分析 | 3.4.1 | 03-应变分析/原子级应力分析-PPA |
ppa.py |
| 应变分析 | 原子识别与强度分析 | 1.3.0 | 03-应变分析/原子识别纯算法 |
atomic_app.py |
| 应变分析 | 原子中心识别模型(训练/推理工程) | 0.3.0 | 03-应变分析/原子中心识别模型开发 |
src/atom_center |
| 统计分析 | TIF 原子衬度统计 | 2.5.0 | 04-统计分析/原子衬度统计 |
tif图像衬度分析工具.py |
| 统计分析 | HAADF-STEM 特征区域演化 | 2026.09.2 | 04-统计分析/特征区域演化分析 |
应力面积统计.py |
| 统计分析 | TIFF 面积测量 | — | 04-统计分析/统计面积 |
统计面积.py |
| 统计分析 | 晶体/非晶区域统计 | 5.3 | 04-统计分析/非晶面积统计 |
main.py |
| 4D-STEM | 4D-STEM Processor | 2.2.0 | 05-4D-STEM分析/4D-STEM-Processor |
stem_processor_gui.py |
| EELS 谱学 | EELS 边缘价态分析 | 0.2.0 | 05-EELS分析/EELS边缘价态分析工具 |
run.py |
| HRTEM 模拟 | HRTEM 高分辨模拟工具(tem_sim 引擎) | 1.2.0 | 09-HRTEM模拟 |
run.bat |
| STEM 模拟 | STEM-HAADF 模拟工具(stem_sim 引擎,冻结声子多层法) | 0.1.0 | 010-STEM模拟 |
run.bat |
| 集成环境 | TEM Suite(集成 GUI) | 1.1.0 | 全整合 |
run.py |
— 表示该工具未在代码中维护版本常量。
- 01-视频与数据提取:视频转 ImageJ TIFF、FFmpeg 与 XRD 操作录屏(后两者为本地资料,未入库)。
- 02-图像处理:漂移矫正、HRTEM/STEM 增强、离域效应去除及通用 TIF 滤镜。
- 03-应变分析:GPA、PPA 应变分析,原子识别与原子中心识别模型工程。
- 04-统计分析:衬度、区域演化、手工面积及晶体/非晶统计。
- 05-4D-STEM分析:DM4 数据的 DPC、SSB、取向、应变和叠层成像。
- 05-EELS分析:Dual-EELS 边缘价态定量分析(MLLS 拟合、复散射校正、bootstrap)。
- 06-独立脚本:未封装成项目的去噪和安装脚本。
- 09-HRTEM模拟:CIF 导入、带轴/电镜参数/厚度/取向可控的 HRTEM 多层法模拟 GUI。
- 010-STEM模拟:CIF 导入、带轴/厚度/探针/环形探测器可控的 HAADF/ADF/BF/ABF STEM 模拟 GUI。
- 10-DSH集成:DeepSeek Harness 会话内的 TEM 视频流水线。
- 全整合:TEM Suite 集成层源码(工具树 + 标签页)。
编号说明:编号反映各目录加入工作区的先后顺序,且不连续——
07、08两个号从未创建 (08-历史版本在部分旧文档中指本仓库之外的本机归档,仓库内并不存在该目录)。05-有两个目录(4D-STEM 与 EELS)系历史遗留,为避免破坏各工具内部的相对引用,未做重排。010-STEM模拟用三位数编号,是「第 10 组」的历史写法:它在字典序上会排在01-与02-之间,语义上与10-DSH集成无关(前者是 STEM 模拟引擎,后者是 TEM 视频流水线); 为兼容 全整合/temsuite/registry.py、.tools、本 CI 等处硬编码路径,暂不改名。
从源码运行时,必须使用项目自己的虚拟环境,不要用 PATH 上的 python:
各工具的依赖版本互不相同(例如 numpy 1.26 与 2.2 并存、Python 3.10 与 3.12 并存),
共用解释器会让工具读到别的项目的版本,pip install 还会污染全局环境、连带破坏其它工具。
每个项目首次准备环境(只需一次):
cd <项目目录>
python -m venv .venv
.venv\Scripts\python -X utf8 -m pip install -r requirements.lock.txt之后用项目内解释器运行:
.venv\Scripts\python <入口脚本.py>09-HRTEM模拟、010-STEM模拟 提供 run.bat,原子识别纯算法 提供 启动原子识别工具.bat,双击即可。
带 .spec 文件的项目可用 PyInstaller 在项目内构建环境中重新打包:
.venv\Scripts\python -m pip install pyinstaller
.venv\Scripts\python -m PyInstaller <项目.spec>完整的隔离约定与各工具的环境清单见 环境隔离说明。 随时运行
python .tools\check-env-isolation.py检查约定是否被破坏。
具体入口和例外情况以各子目录的 README 为准。
- 处理实验原始数据前先复制一份样例;输出目录不要与输入目录相同,避免覆盖源文件。
- TIFF 堆栈可能非常大,应预留足够内存和磁盘空间。
- 8 位与 16 位 TIFF 的强度范围不同。定量分析前确认工具是否保留原始位深。
- GPA、PPA、DPC、SSB、MLLS 等结果依赖采集条件、标定和参数选择,软件输出不能替代物理有效性验证。
本仓库为 MIT(见 LICENSE),适用于其中的原创代码。
例外:03-应变分析/strainpp-GPA应变分析/ 采用 GPL-3.0-or-later(派生自
JJPPeters/Strainpp,该目录自带 LICENSE)。
GPL-3.0 具传染性:若把它与其余代码打包成单一作品分发,整体授权需按 GPL-3.0
重新审视;仅在同一仓库中并列存放、各自独立分发则不受影响。
全整合(TEM Suite)在运行期以同进程 import 方式加载 strainpp,
若两者一起打进同一个 exe 对外分发,请先确认 GPL 合规性。
例外:发行 exe 中的 GPL-3.0 第三方组件。 05-EELS分析/EELS边缘价态分析工具
与 全整合 的发行 exe 均内含 ncempy(GPL-3.0-or-later),
分发时该组件仍受 GPL-3.0 约束,不因本项目声明 MIT 而改变;
两者的 THIRD_PARTY_NOTICES.md 列明了义务与规避方式。
另 09-HRTEM模拟、010-STEM模拟 的 data/peng_high.json 取自
abTEM(GPL-3.0)。
逐工具的许可证、第三方依赖、数据文件来源、以及未收录的第三方材料清单见 NOTICE.md。
- 引用:见 CITATION.cff。引用本工具集时,请一并记录你实际使用的 具体子工具、版本或 commit,以及相关上游方法的出处。
- 贡献:见 CONTRIBUTING.md(先选子项目并读其 README; 每个项目使用独立环境与实际锁文件;原始实验数据只读且不提交机密/大数据)。
README 以“独立项目或资料集合”为单位撰写,并列出其中的关键文件。生成物与外部依赖不逐层创建 README。