From a1c770eacf91d67ac6e61726f6962d7422bd217f Mon Sep 17 00:00:00 2001 From: pcain-usgs <pcain@usgs.gov> Date: Tue, 8 Sep 2020 17:47:16 -0600 Subject: [PATCH] Implement step timeshift method --- geomagio/algorithm/FilterAlgorithm.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/geomagio/algorithm/FilterAlgorithm.py b/geomagio/algorithm/FilterAlgorithm.py index e6c9269d8..ba78a759b 100644 --- a/geomagio/algorithm/FilterAlgorithm.py +++ b/geomagio/algorithm/FilterAlgorithm.py @@ -43,6 +43,12 @@ STEPS = [ ] +def get_step_time_shift(step): + input_sample_period = step["input_sample_period"] + numtaps = len(step["window"]) + return input_sample_period * ((numtaps - 1) / 2) + + class FilterAlgorithm(Algorithm): """ Filter Algorithm that filters and downsamples data @@ -226,13 +232,13 @@ class FilterAlgorithm(Algorithm): window = window / sum(window) # first output timestamp is in the center of the filter window for firfilters # center output timestamp is in the center of the filter window for averages - filter_time_shift = input_sample_period * ((numtaps - 1) / 2) + shift = get_step_time_shift(step) out = Stream() for trace in stream: # data to filter data = trace.data starttime, data = self.check_misalignment( - step, data, trace.stats.starttime, filter_time_shift + step, data, trace.stats.starttime, shift ) if len(data) < numtaps: continue @@ -336,7 +342,7 @@ class FilterAlgorithm(Algorithm): end = (start + intervals) - step["input_sample_period"] return (start, end) - shift = len(step["window"]) // 2 + shift = get_step_time_shift(step) shift_step = shift * step["input_sample_period"] start = start - shift_step end = end + shift_step -- GitLab