PyFAI 2025.01版本发布:聚焦纤维衍射与集成重构的重大升级

PyFAI 2025.01版本发布:聚焦纤维衍射与集成重构的重大升级

pyFAI Fast Azimuthal Integration in Python pyFAI 项目地址: https://gitcode.com/gh_mirrors/py/pyFAI

PyFAI(Python Fast Azimuthal Integration)作为X射线衍射数据分析领域的核心开源工具,其2025.01版本带来了多项架构革新与功能增强。本次更新不仅重构了核心积分器架构,还专门针对纤维/掠入射衍射场景开发了全新模块,同时优化了数据处理流程与可视化功能。

架构重构与模块化设计

本次版本对积分器类进行了系统性重构,将原有代码按功能划分为多个专业化子模块。其中pyFAI.integrator.azimuthal专门处理方位角积分,pyFAI.integrator.fiber则聚焦纤维和表面衍射场景,而公共代码被整合至pyFAI.integrator.common模块。这种模块化设计使得代码结构更加清晰,也为未来功能扩展奠定了基础。

特别值得注意的是新引入的"promote"机制概念,允许不同积分器类之间进行功能转换。例如通过ai.promote("FiberIntegrator")可以将常规积分器提升为纤维衍射专用积分器,这种灵活的架构设计为多场景分析提供了便利。

纤维衍射分析的专业化支持

针对材料科学中日益重要的纤维/掠入射衍射场景,新版本专门开发了FiberIntegrator类。该类提供了一系列针对性方法:

  1. 二维模式分析integrate2d_grazing_incidence方法可生成qIP-qOOP(面内-面外散射矢量)图谱,直观展示各向异性样品的结构特征。
  2. 一维切片分析:通过integrate1d_grazing_incidence可获取特定方向的散射曲线,支持8种样品取向配置。
  3. 极坐标转换:新增的integrate2d_polar方法可将数据转换为极坐标表示(散射角vs模量),而integrate1d_polar则可沿特定角度进行积分。
  4. 出射角分析integrate2d_exitangles方法可将衍射图案重塑为水平和垂直出射角表示,原点对应样品水平面。

这些方法采用了优化的数学公式实现,结合numexpr包加速计算,显著提升了处理效率。同时修正了入射角(incident_angle)和倾斜角(tilt_angle)的物理模型,确保分析结果的准确性。

多几何体分析与数据整合

新引入的MultiGeometryFiber类扩展了多几何体分析能力,专门针对纤维衍射场景。与常规的MultiGeometry类似,但接受FiberIntegrator列表作为输入,可同时处理多个几何配置的纤维衍射数据。这一功能特别适合需要对比不同实验条件或样品取向的研究场景。

数据处理流程优化

在数据预处理和后处理方面,本次更新带来了显著改进:

  1. 中值滤波支持:新增了一维数据的中值滤波功能,包括分位数平均计算,提供Python、Cython和OpenCL三种实现方式,满足不同性能需求。
  2. sigma-clip增强:改进了sigma-clip算法,与中值滤波配合可更有效地识别和剔除异常数据点。
  3. 结果重分箱:新增的rebin1d工具允许将二维积分结果重新分箱为一维数据,便于后续分析。
  4. 配置管理:采用WorkerConfig数据类统一管理处理参数,支持JSON序列化,提高了与工作流系统(如Ewoks)的兼容性。

可视化与用户体验

在可视化方面,pyFAI-diffmap-view工具现在能够显示电机位置信息,方便用户在衍射图谱中定位样品位置。此外,文档模板已更新为pydata风格,提升了阅读体验。

兼容性与性能

新版本支持Python 3.9至3.13,并在多种平台上进行了充分测试,包括Windows(amd64)、Linux(amd64/arm64/ppc64le)和macOS(amd64/arm64)。通过500多次代码提交,开发团队优化了性能并提高了代码覆盖率。

应用前景

PyFAI 2025.01版本的发布,特别是纤维衍射分析模块的引入,将为高分子材料、生物纤维、薄膜材料等领域的研究提供强大工具。其优化的架构设计和增强的数据处理能力,使得从常规粉末衍射到复杂的各向异性样品分析都能获得更准确、更高效的结果。新版本的专业化功能和灵活架构,预示着PyFAI在材料表征领域的应用范围将进一步扩大。

pyFAI Fast Azimuthal Integration in Python pyFAI 项目地址: https://gitcode.com/gh_mirrors/py/pyFAI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阮子霄Weary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值