Degradation Correction¶
Exposure¶
-
tsipy.correction.compute_exposure(x, method='num_measurements', x_mean=1.0) Computes exposure of a given signal.
In literature, exposure is found under an alias exposure time. If
num_measurementsmethod is selected, then the exposure equals to the number of measurements up to timet. Ifexposure_summethod is selected, then the exposure equals to the cumulative sum of measurement values up to timet. Works only for measurements with positive values.x_meannormalizes values before cumulative sum.- Examples:
>>> import numpy as np >>> x = np.array([1.0, np.nan, 3.0, 4.0, 5.0]) >>> compute_exposure(x, method="num_measurements") array([1., 1., 2., 3., 4.]) >>> compute_exposure(x, method="exposure_sum") array([ 1., 1., 4., 8., 13.])
- Return type
ndarray
Algorithms¶
-
class
tsipy.correction.History(iteration, a, b, ratio) History(iteration, a, b, ratio)A
namedtuplerepresenting step at aparticular step of degradation correction.-
a Corrected signal
aatiteration.
-
b Corrected signal
batiteration.
-
iteration Iteration of degradation correction algorithm.
-
ratio Ratio between
aand ˙˙b˙˙ at iterationiteration.
-
-
tsipy.correction.correct_both(t_m, a_m, e_a_m, b_m, e_b_m, model, verbose=False, eps=1e-06, max_iter=100) Executes degradation correction algorithm
CorrectBoth.The algorithm is described in Kolar et al. [1].
It is shown that corrected signals converge to the ground truth in the absence of measurement noise.
- Returns:
Corrected signals
aandb, degradation modeld_c(.)and correction history.
- Return type
Tuple[ndarray,ndarray,DegradationModel,List[History]]
-
tsipy.correction.correct_degradation(t_m, a_m, e_a_m, b_m, e_b_m, model, method='correct_one', verbose=False, eps=1e-06, max_iter=100) Selects and executes a correction algorithm.
This is a wrapper function for
correct_one()andcorrect_both().- Return type
Tuple[ndarray,ndarray,DegradationModel,List[History]]
-
tsipy.correction.correct_one(t_m, a_m, e_a_m, b_m, e_b_m, model, verbose=False, eps=1e-06, max_iter=100) Executes degradation correction algorithm
CorrectOne.The algorithm is described in Kolar et al. [1].
It is shown that corrected signals converge to the ground truth in the absence of measurement noise.
- Returns:
Corrected signals
aandb, degradation modeld_c(.)and correction history.
- Return type
Tuple[ndarray,ndarray,DegradationModel,List[History]]
Degradation Models¶
-
class
tsipy.correction.DegradationModel Abstract class for degradation model, that learns the degradation function.
It must implement two methods
˙__call__()for inference andfit()for training.For each degradation model, it must hold
\[f(0, \theta) = 1.\]-
abstract
fit(x_a, ratio) Learns a mapping from exposure to signal ratio..
- Return type
None
-
initial_fit(x_a, y_a, y_b) Obtains an initial approximation for the model.
- Return type
None
-
abstract
-
class
tsipy.correction.ExpLinModel Degradation model with prediction function in exponential form.
Exact equation is:
\[f(x, \theta) = 1 - e^{\theta_1 \cdot \theta_2} + \theta_3 \cdot x.\]-
fit(x_a, ratio) Learns a mapping from exposure to signal ratio..
- Return type
None
-
initial_fit(x_a, y_a, y_b) Obtains an initial approximation for the model.
- Return type
None
-
-
class
tsipy.correction.ExpModel Degradation model with prediction function in exponential form.
Exact equation is:
\[f(x, \theta) = 1 - e^{\theta_1 \cdot \theta_2}.\]-
fit(x_a, ratio) Learns a mapping from exposure to signal ratio..
- Return type
None
-
initial_fit(x_a, y_a, y_b) Obtains an initial approximation for the model.
- Return type
None
-
-
class
tsipy.correction.MRModel(y_max=1.0, y_min=0.0, out_of_bounds='clip') -
fit(x_a, ratio) Learns a mapping from exposure to signal ratio..
- Return type
None
-
-
class
tsipy.correction.SmoothMRModel(y_max=1.0, y_min=0.0, out_of_bounds='clip', n_pts=999, lam=1.0, solver='quadprog', convex=False) -
fit(x_a, ratio) Learns a mapping from exposure to signal ratio..
- Return type
None
-
-
tsipy.correction.load_model(model) Loads a degradation model given the model name.
- Currently, the following models are implemented
exponential
exp,exponential with linear term
explin,monotonic regression
mr, andsmooth monotonic regression
smr.
- Args:
model: String abbreviation of the model name.
- Return type
DegradationModel
Signal Generator¶
-
class
tsipy.correction.SignalGenerator(length=100000, add_degradation=True, add_noise=True, downsampling_rates=(0.9, 0.2), noise_stds=(0.025, 0.015), exposure_method='num_measurements', random_seed=0) Class for generating sample signals.
-
property
data Two.
- Return type
DataFrame
-
property
References¶
- 1(1,2)
Luka Kolar, Rok Šikonja, and Lenart Treven. Iterative correction of sensor degradation and a bayesian multi-sensor data fusion method. 2020. arXiv:2009.03091.