From 5f4d74548e07e5b5245524bcd225ae7837bbbeb9 Mon Sep 17 00:00:00 2001 From: ChiWai Chan <chiwai.chan@ligo.org> Date: Thu, 14 Mar 2019 04:47:42 +0900 Subject: [PATCH] cbc_template_fir.movingmedian() - add alternate, faster, implementation using pandas (fall back to current implementation if pandas is not available) --- gstlal-inspiral/python/cbc_template_fir.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gstlal-inspiral/python/cbc_template_fir.py b/gstlal-inspiral/python/cbc_template_fir.py index 6490b26aa6..8b3951f3c1 100644 --- a/gstlal-inspiral/python/cbc_template_fir.py +++ b/gstlal-inspiral/python/cbc_template_fir.py @@ -203,8 +203,15 @@ def compute_autocorrelation_mask( autocorrelation ): def movingmedian(interval, window_size): tmp = numpy.copy(interval) - for i in range(window_size, len(interval)-window_size): - tmp[i] = numpy.median(interval[i-window_size:i+window_size]) + try: + # pandas version >= 0.18.1 is required + import pandas + s = pandas.Series(tmp) + out = s.rolling(2 * window_size).median()[2 * window_size - 1 : -1] + tmp[window_size : len(interval) - window_size] = numpy.array(out) + except (ImportError, AttributeError): + for i in range(window_size, len(interval) - window_size): + tmp[i] = numpy.median(interval[i - window_size : i + window_size]) return tmp -- GitLab