Source code for libpyhat.transform.remove_baseline

import numpy as np

from libpyhat.transform.baseline_code.airpls import AirPLS
from libpyhat.transform.baseline_code.als import ALS
from libpyhat.transform.baseline_code.dietrich import Dietrich
from libpyhat.transform.baseline_code.fabc import FABC
from libpyhat.transform.baseline_code.kajfosz_kwiatek import KajfoszKwiatek as KK
from libpyhat.transform.baseline_code.median import MedianFilter
from libpyhat.transform.baseline_code.min_spline import minimum_interp
from libpyhat.transform.baseline_code.polyfit import PolyFit
from libpyhat.transform.baseline_code.rubberband import Rubberband
from libpyhat.transform.baseline_code.wavelet_spline import wavelet_spline


# This function applies baseline removal to the data
[docs] def remove_baseline(df, method="ALS", segment=True, params=None, spect_label="wvl"): wvls = np.array(df[spect_label].columns.values, dtype="float") spectra = np.array(df[spect_label], dtype="float") # set baseline removal object (br) to the specified method if method == "ALS": br = ALS(**params) elif method == "Dietrich": br = Dietrich(**params) elif method == "Polyfit": br = PolyFit(**params) elif method == "AirPLS": br = AirPLS(**params) elif method == "FABC": br = FABC(**params) elif method == "KK": br = KK(**params) elif method == "Median": br = MedianFilter(**params) elif method == "Rubberband": br = Rubberband(**params) elif method == "Wavelet a Trous + Spline": br = wavelet_spline(**params) elif method == "Min + Interpolate": br = minimum_interp(**params) else: print(f"{method} is not recognized!") return 0 br.fit(wvls, spectra, segment=segment) df_baseline = df.copy() df_baseline[spect_label] = br.baseline df[spect_label] = df[spect_label] - df_baseline[spect_label] return df, df_baseline