Source code for libpyhat.transform.baseline_code.fabc

import scipy.signal

from libpyhat.transform.baseline_code.common import (
    WhittakerSmoother,
    iterative_threshold,
    Baseline,
)


[docs] def fabc_baseline(intensities, dilation_param=50, smoothness_param=1e3): """Fully Automatic Baseline Correction, by Carlos Cobas (2006). http://www.sciencedirect.com/science/article/pii/S1090780706002266 """ cwt = scipy.signal.cwt(intensities, scipy.signal.ricker, (dilation_param,)) dY = cwt.ravel() ** 2 is_baseline = iterative_threshold(dY) is_baseline[0] = True is_baseline[-1] = True smoother = WhittakerSmoother(intensities, smoothness_param, deriv_order=1) return smoother.smooth(is_baseline)
[docs] class FABC(Baseline): def __init__(self, dilation_param=50, smoothness_param=1e3): self.dilation_param = dilation_param self.smoothness_param = smoothness_param def _fit_one(self, bands, intensities): return fabc_baseline(intensities, self.dilation_param, self.smoothness_param)
[docs] def param_ranges(self): return { "dilation_param": (1, 100, "integer"), "smoothness_param": (1, 1e6, "log"), }