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_measurements
method is selected, then the exposure equals to the number of measurements up to timet
. Ifexposure_sum
method is selected, then the exposure equals to the cumulative sum of measurement values up to timet
. Works only for measurements with positive values.x_mean
normalizes 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
namedtuple
representing step at aparticular step of degradation correction.-
a
Corrected signal
a
atiteration
.
-
b
Corrected signal
b
atiteration
.
-
iteration
Iteration of degradation correction algorithm.
-
ratio
Ratio between
a
and ˙˙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
a
andb
, 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
a
andb
, 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.