
gitee
github
近红外光谱(NIRS)数据的半自动预处理Python模块。
一. nippy
1.1. 简介
- nippy是一个Python(3.6+)模块,用于快速探索不同的NIRS预处理方法。
- nippy收集和包装了最常见的预处理方法,并提供了用于快速构建具有可选预处理组合的预处理管道的工具。
- 本模块的目的是使用户能够快速测试多种交替预处理技术,并测试这些技术如何影响NIRS模型的性能。
1.2. 使用方法
nippy分析的典型结构如下:
- (1) 通过生成INI格式的配置文件,指定要尝试的方法和相关参数。(有关编写配置文件的详细文档,请查看CONFIGURATION.md).
- 例如,将nippy配置为在三个不同的滤波器长度(7、11和31)下测试二阶导数Savitzky-Golay滤波(具有三阶多项式拟合),可以通过向配置文件添加以下部分来完成。
[SAVGOL]
filter_win = 7, 11, 31
poly_order = 3
deriv_order = 2
also_skip = True
- (2) 将NIR数据加载到numpy矩阵(行波长、列样本)。将波长加载到一个numpy向量中。
data = np.genfromtxt('nir_data.csv', delimiter=',')
wavelength = data[0, :]
spectra = data[1:, :].T # Rows = wavelength, Columns = samples
- (3) 导入nippy并使用nippy.read_configuration.
import nippy
pipelines = nippy.read_configuration('example_protocol.ini')
- (4) nippy生成所有可能的预处理排列的列表。将数据和管道列表传递给nippy函数。
datasets = nippy.nippy(wavelength, spectra, pipelines)
变量数据集现在包含已根据pipelines变量中列出的方法进行预处理的数据集列表。预处理的数据可以在Python中使用,也可以导出以在其他应用程序中使用。
1.3. 需求
- numpy (1.13.1+)
- scipy (0.19.1+)
- sklearn (0.19.2+)
1.4. 安装
pip install git+https://github.com/uef-bbc/nippy
1.5. 存储库内容
- nippy.py: 包含所有预处理操作
- handler.py: 用于生成和运行多个预处理管道的顶层脚本
1.6. 实例
- example.py: 用于执行多个预处理管道的示例脚本
- example.ini: nippy协议示例
- nir_data.csv: 用于演示的小型NIR数据集
二、nippy.py
2.1. 导入的模块
| 模块/函数 | 来源库 | 用途 |
|---|---|---|
| scipy.signal | scipy | 信号处理 |
| scipy.io | scipy | 数据输入输出 |
| scipy.ndimage | scipy | n维图像包 |
| numpy | 矩阵运算 | |
| sklearn.preprocessing.normalize | sklearn | 数据归一化处理 |
| sklearn.preprocessing.scale | sklearn | 数据缩放处理 |
| handler | nippy | 生成和运行多个预处理管道的顶层脚本 |
| pickle | python | |
| os | python |
2.2 类
2.2.1 Preprocessor
| 函数(方法) | 参数 | 输出 | 用途 |
|---|---|---|---|
| 类的方法 | |||
| __ init __ | self, wavelength, spectra, configuration_file | wavelength, spectra, configuration, current_pipe_idx | 构造方法 |
| __ iter __ | self | self | 迭代 |
| __ next __ | self | wavelength_, spectra_, self.configuration[this_idx] | 迭代处理 |
| 预处理方法 | |||
| baseline | spectra:NIRS data matrix | spectra - np.mean(spectra, axis=0) | 用均值法,删除每个光谱的基线 |
| snv | |||
| rnv | |||
| lsnv | |||
| savgol | |||
| trim | |||
| resample | |||
| norml | |||
| detrend | |||
| msc | |||
| emsc | |||
| clip | |||
| smooth | |||
| derivate | |||
| 工具方法 | |||
| export_pipelines_to_csv | |||
| export_pipelines_to_mat | |||
| export_pipelines_to_pickle | |||
| run_pipeline | |||
| 主方法 | |||
| nippy |