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