SCRIPTS
快捷脚本工坊
在 Athena 里点完一遍之后,把重复劳动交给 Larch。下面可以勾选模块生成脚本,或打开写好的批处理。
拼装器
依赖:Python 3.10+、xraylarch、numpy。把 PRJ 改成你的工程路径。
edgebook_xanes.py
#!/usr/bin/env python3
# generated by NearEdge script workshop
PRJ = "sample.prj"
from larch.io import read_athena
proj = read_athena(PRJ)
groups = proj._athena_groups
from larch.xafs import find_e0
from larch.xafs import pre_edge
import numpy as np
from pathlib import Path
for name, g in groups.items():
print("processing", name)
# 自动找 E0
e0 = find_e0(g.energy, g.mu)
# 归一化
pre_edge(g, e0=e0, pre1=-150, pre2=-30, norm1=150, norm2=800, nvict=2)
# 展平后沿
e = np.asarray(g.energy)
flat = np.asarray(g.flat)
# 导出 CSV
Path("export").mkdir(exist_ok=True)
np.savetxt(f"export/{name}.csv", np.column_stack([e, flat]),
delimiter=",", header="energy_eV,mu", comments="")
脚本库
批量归一化 + 展平
读取 Athena .prj,统一 E0 规则与窗口,导出 flattened μ(E) CSV。
pythonlarchnormalizeprj
LCF 批处理
对一系列未知谱用同一组标样做线性组合,写出权重与 R-factor。
pythonlarchlcf
导数找 E0
一阶导数最大值作为 E0,批量写出能量位移,方便对照箔标定。
pythonlarchcalibrate
线站列映射
把上海光源 / BSRF 常见多列文件转成 Athena 可直接打开的 energy, mu。
pythonbeamlineimport
Ifeffit 合并宏
在 Athena 的 Ifeffit 控制台快速对齐并平均已读入的扫描。
iffifeffitmerge
Demeter 批处理骨架
用 Bruce Ravel 的 Demeter Perl API 打开工程、归一化、导出。适合集群。
perldemeterprj
序列 PCA 定秩
对时间/空间序列 flattened 谱做 SVD,打印特征值,判断独立组分数。
pythonlarchpca
自动去毛刺
用中值滤波检测单点尖峰并线性插值,适合晶体衍射毛刺。
pythonclean