用于处理xmcd peem数据的python工具
peemp的Python项目详细描述
窥视
处理来自I06钻石光源的PEEM-XMCD数据的套件。
PEEM-XMCD工作流程
xmcd信号来源于两种不同的x射线圆偏振成像的差异。 有两种类型的数据-xmcd4和xmcd2。前者捕获了4n幅共振+,非共振+,共振-,非共振-。 通常n=10。每组图像取平均值。偏振相关信号是从开共振和关共振之间的差异中提取的。
困难在于随着时间的推移会出现漂移,但需要对信号进行平均以减少噪声。 在取平均值之前,需要对图像进行漂移校正,以最小化它们之间的不匹配。 此外,开、关共振图像需要分别进行漂移校正。
这是什么
每次捕获的漂移校正
利用漂移是聚集过程的优点,提出了一种更稳健的漂移校正方案。 在最初的igor实现中,需要选择一个包含特性的roi,并且特性必须在整个系列中保持在roi中。 在这里,我们允许每个帧的floatingroi。 下一帧的roi基于计算出的当前帧的绝对位移进行移位。 这有效地使roi“锁定”到图像序列中的特征。 因此,初始roi只需要与feature一样大,前提是帧之间的相对漂移不会将特征完全移出roi。
使用skimage.feature.register_translation
中的例程。
它比标准(超采样)图像卷积方案快得多。
通过对含噪数据的校正帧进行加权平均,动态地对参考图像进行改进。
批处理
已编写批处理脚本。使用python的multiprocessing
模块,
并行批处理可以使用所有的计算能力。
可以在处理选择敏感漂移区域之前预览捕获。
为了提高内存效率,最好使用inplace漂移处理模型,以避免创建数据的附加副本。
xmcd信号计算
xmcd信号图像可以使用peempy.xmcd
xmcd向量映射构造
xmcd矢量图可以由多个角度的信号生成。 由于仪器的变形,安装前需要对正框架。 此包允许基于任意数量的对齐控制点在任意数量的帧之间进行图像对齐。 当xmcd图像的角度大于三个角时,可以构造三维矢量地图。
开始
安装
包的稳定版本上载到python包索引(pypi)中,可以使用以下命令安装:
pip install peempy
或者,也可以使用以下命令安装开发版本:
pip install git+https://gitlab.com/bz1/peempy@dev
通信线路接口
使用pip
安装包后,可以使用命令行界面执行以下任务
从原始数据中计算xmcd信号,对xmcd信号进行平均,并监控数据的采集进度。
要使用的主命令是简单的包名-peempy
,并且有子命令用于
功能。
例如:
Usage: peempy [OPTIONS] COMMAND [ARGS]...
The command line interface of peempy
Options:
--version Display the version of PEEMPY
-pd, --peem-data-dir TEXT The beamline data directory
-wd, --work-dir TEXT The base directory to be used for saving
processed
-dm, --drift-mode [one-pass|two-pass|iter]
Drift correction mode
-fp, --float-precision [single|double]
Floating point precision when saving XMCD
signal
--help Show this message and exit.
Commands:
datalist Print the avaliable datafolders
drift Perform batch drift operation.
view-drift view the drift corrected images
xmcdavg Align and average XMCD signals
xmcdlist List IDs of captures that have XMCD computed.
对于任何子命令,都可以通过传递--help
标志来访问帮助信息。
python api
这个包定义了许多类来处理不同的任务:
ImageStack
是许多其他类的基类。它表示存储在多维数组中的一堆图像。ImageSeries
表示图像的时间序列,可以进行漂移校正。XMCDImageSeries
表示xmcd捕获,通常由40帧交替能量/极化组成。DriftCorrector
是进行漂移校正的类
XMCDStack
是一堆xmcd信号。这个类用于制作矢量地图。
待办事项
- 编写快速入门文档