Skip to main content

用于对实验数据进行基线校正的算法库。

项目描述

标识 当前 Pypi 版本 当前康达版本 GitHub Actions 测试状态 文件状态 支持的 Python 版本 泽诺多 DOI

pybaselines 是一个用于对实验数据进行基线校正的算法库。

<nav class="contents" id="contents" role="doc-toc">

内容

</nav>

介绍

pybaselines 是一个 Python 库,它提供了许多不同的算法,用于对来自拉曼、FTIR、NMR、XRD、XRF、PIXE 等实验技术的数据执行基线校正。该项目的目的是提供一个半统一的 API 以允许快速测试和比较多种基线校正算法,以找到一组数据的最佳算法。

pybaselines 有 50 多种基线校正算法。这些包括流行的算法,例如 AsLS、airPLS、ModPoly 和 SNIP,以及许多鲜为人知的算法。大多数算法直接改编自文献,尽管有一些是 pybaselines 独有的,例如基于 Whittaker 平滑算法的惩罚样条版本。可在 文档中找到已实现算法的完整列表。

安装

稳定发布

pybaselines 可以 使用pip从pypi安装,方法是在终端中运行以下命令:

pip install pybaselines

pybaselines 也可以使用 conda 从 conda - forge通道安装,方法是运行:

conda install -c conda-forge pybaselines

开发版

pybaselines 的源代码可以从GitHub repo下载。要从 GitHub 安装当前版本的 pybaselines,请运行:

pip install git+https://github.com/derb12/pybaselines.git#egg=pybaselines

依赖项

pybaselines 需要Python 3.6 或更高版本以及以下库:

使用上述任何安装方法安装 pybaselines 时,应自动安装所有必需的库。

pybaselines的可选依赖 项在文档中列出。要在使用 pip 安装 pybaselines 时还安装可选依赖项,请运行:

pip install pybaselines[full]

如果使用 conda 安装,则必须手动指定可选依赖项。

快速开始

要使用 pybaselines 中的各种功能,只需输入测量数据和任何所需参数。pybaselines 中的所有基线校正函数将输出两项:计算基线的 numpy 数组和潜在有用参数的字典。

有关每个基线算法的更多详细信息,请参阅 pybaselines 文档的算法部分。有关它们的用法示例,请参阅示例部分

一个简单的例子如下所示。

import matplotlib.pyplot as plt
import numpy as np
import pybaselines
from pybaselines import utils

x = np.linspace(1, 1000, 1000)
# a measured signal containing several Gaussian peaks
signal = (
    utils.gaussian(x, 4, 120, 5)
    + utils.gaussian(x, 5, 220, 12)
    + utils.gaussian(x, 5, 350, 10)
    + utils.gaussian(x, 7, 400, 8)
    + utils.gaussian(x, 4, 550, 6)
    + utils.gaussian(x, 5, 680, 14)
    + utils.gaussian(x, 4, 750, 12)
    + utils.gaussian(x, 5, 880, 8)
)
# exponentially decaying baseline
true_baseline = 2 + 10 * np.exp(-x / 400)
noise = np.random.default_rng(1).normal(0, 0.2, x.size)

y = signal + true_baseline + noise

bkg_1 = pybaselines.polynomial.modpoly(y, x, poly_order=3)[0]
bkg_2 = pybaselines.whittaker.asls(y, lam=1e7, p=0.02)[0]
bkg_3 = pybaselines.morphological.mor(y, half_window=30)[0]
bkg_4 = pybaselines.smooth.snip(
    y, max_half_window=40, decreasing=True, smooth_half_window=3
)[0]

plt.plot(x, y, label='raw data', lw=1.5)
plt.plot(x, true_baseline, lw=3, label='true baseline')
plt.plot(x, bkg_1, '--', label='modpoly')
plt.plot(x, bkg_2, '--', label='asls')
plt.plot(x, bkg_3, '--', label='mor')
plt.plot(x, bkg_4, '--', label='snip')

plt.legend()
plt.show()

上面的代码将生成如下所示的图像。

各种基线

贡献

欢迎并非常感谢您的贡献。有关提交错误报告、拉取请求或一般反馈的信息,请参阅贡献指南

变更日志

有关 pybaselines 更改的信息,请参阅更改日志。

执照

pybaselines 是开源的,在 BSD 3 条款许可下免费提供。有关详细信息,请参阅许可证

作者

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pybaselines-0.8.0.tar.gz (109.5 kB 查看哈希

已上传 source

内置分布

pybaselines-0.8.0-py3-none-any.whl (108.9 kB 查看哈希

已上传 py3