Source code for pyacs.gts.lib.offset.test_offsets

"""
Test offsets: delete small ones, F-ratio test, re-check small offsets.
"""

import numpy as np


[docs] def test_offsets(self, verbose=False, debug=True, window_length=None): """Test offsets: delete small, F-ratio test, re-check small offsets.""" ouliers_saved = self.outliers self.find_outliers_by_residuals() self.offsets = self.delete_small_offsets(self.offsets) if self.offsets is not None: if not window_length: window_length = 180 data_saved = self.copy().data data = self.remove_outliers().data t0 = self.offsets list_index = np.hstack([0, np.searchsorted(data[:, 0], t0), len(data[:, 0])]) t0_tested = [] for i in range(len(t0)): if verbose: print(" -> Testing offset time %10.3lf" % t0[i]) if window_length: if (list_index[i+1] - list_index[i] < window_length/2): index_start = list_index[i] else: index_start = list_index[i+1] - window_length/2 if (list_index[i+2] - list_index[i+1] < window_length/2): index_end = list_index[i+2] else: index_end = list_index[i+1] + window_length/2 else: index_start = list_index[i] index_end = list_index[i+2] data_i = data[index_start:index_end] t0_i = self.Ftest_4_offsets(data_i, t0[i]) if t0_i is not None: if verbose: print(" -> Significant. Goes to next test.") t0_tested.append(t0[i]) else: if verbose: print(" -> No nignificant. Goes to next test.") if len(t0_tested) > 0: self.offsets = list(np.unique(t0_tested)) else: self.offsets = None self.offsets_values = None self.data = data_saved if self.offsets is not None: self.find_outliers_by_residuals() self.offsets = self.delete_small_offsets(self.offsets, del_by_pricise=True) self.outliers = ouliers_saved