# 近红外光谱数据预处理方法 **Repository Path**: wangmaodm/Data-Preprocessing ## Basic Information - **Project Name**: 近红外光谱数据预处理方法 - **Description**: 九种近红外光谱预处理方法 msc_optimized, snv, sg, D1, D2,mean_centralization, min_max_normalization, move_avg, paa - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-12-09 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: 数据预处理, Python, 滤波方法 ## README # 近红外光谱数据预处理方法 #### 介绍 九种近红外光谱预处理方法 msc_optimized, snv, sg, D1, D2,mean_centralization, min_max_normalization, move_avg, paa 本次建模使用的数据集为内部数据,未公开,为了程序的正常运行,只放了部分数据,可按其格式替换成自己的数据集或其他公开数据集 #### 软件架构 python3.8 #### 使用说明 **_将自己的data文件添加到此目录即可_** * 加载数据 ``` spectra, label, wave = DataLoader.load_fabric_spectra() pre = SpectraPreprocessor() ``` * 原始光谱图 `pre.plot_spectra(wave, spectra, title="原始光谱图")` ![输入图片说明](image/imagey.png) * 多元散射校正 (MSC) ``` msc_spectra = pre.msc(spectra) pre.plot_spectra(wave, msc_spectra, title="MSC Processed Spectra") ``` ![输入图片说明](image/image_msc.png) *标准正态变换 (SNV) ``` snv_spectra = pre.snv(spectra) pre.plot_spectra(wave, spectra, title="snv Spectra") ``` ![输入图片说明](image/image_snv.png) *Savitzky-Golay 滤波 (SG) ``` sg_spectar = pre.sg(spectra) pre.plot_spectra(wave, sg_spectar, title="sg Spectra") ``` ![输入图片说明](image/image_sg.png) *一阶差分算法 (一阶导数+sg滤波) ``` d1_spectar = pre.D1(spectra) pre.plot_spectra(wave, d1_spectar, title="D1 Spectra") ``` ![输入图片说明](image/image_D1.png) *二阶差分算法 (导数+sg滤波) ``` d2_spectar = pre.D2(spectra) pre.plot_spectra(wave, d2_spectar, title="D2 Spectra") ``` ![输入图片说明](image/image_D2.png) *均值中心化 ``` mean_spectra = pre.mean_centralization(spectra) pre.plot_spectra(wave, mean_spectra, title="mean Spectra") ``` ![输入图片说明](image/image_mean.png) *最大最小归一化 ``` min_max_spectra = pre.min_max_normalization(spectra) pre.plot_spectra(wave, min_max_spectra, title="min_max Spectra") ``` ![输入图片说明](image/image_minmax.png) *滑动平均滤波 ``` move_spectra = pre.move_avg(spectra, n=5) pre.plot_spectra(wave, move_spectra, title="move Spectra") ``` ![输入图片说明](image/image_move.png) *分段聚合近似法 (PAA)降维 ``` paa_spectra, matched_wave = pre.paa(spectra, wave, window_size=2) pre.plot_spectra(matched_wave, paa_spectra, title="paa Spectra") ``` ![输入图片说明](image/image_paa.png)