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

"""
Delete small offsets (below threshold) from a list of offset dates.
"""

import numpy as np


[docs] def delete_small_offsets(self, offsets, del_by_pricise=False): """Estimate offsets with clean data, then remove offsets that are too small. Parameters ---------- offsets : list List of offset dates (decimal year). del_by_pricise : bool, optional If True, also require offset > sigma. Default is False. Returns ------- list or None Filtered list of offset dates, or None. """ min_offset_NE = 0.002 #if self.H_conf and 'threshold_smallest_offset' in self.H_conf: # min_offset_NE = self.H_conf['threshold_smallest_offset'] min_offset_UP = 3. * min_offset_NE self.offsets = offsets new_Gts = self.make_model(loutlier=self.outliers) if (new_Gts is not None) and (new_Gts.offsets_values is not None): offsets_values = np.fabs(new_Gts.offsets_values) choose_index = [] for i in range(len(self.offsets)): if del_by_pricise: if (offsets_values[i, 1] > min_offset_NE) and (offsets_values[i, 1] > offsets_values[i, 4]): choose_index.append(i) if (offsets_values[i, 2] > min_offset_NE) and (offsets_values[i, 2] > offsets_values[i, 5]): choose_index.append(i) if (offsets_values[i, 3] > min_offset_UP) and (offsets_values[i, 3] > offsets_values[i, 6]): choose_index.append(i) else: if offsets_values[i, 1] > min_offset_NE: choose_index.append(i) if offsets_values[i, 2] > min_offset_NE: choose_index.append(i) if offsets_values[i, 3] > min_offset_UP: choose_index.append(i) if len(choose_index) > 0: choose_index = np.unique(choose_index) offsets = list(np.take(self.offsets, choose_index, axis=0)) else: offsets = None self.offsets = offsets self.offsets_values = None return offsets