From 123b8226ef3c52d43806d593547ede5b819ac444 Mon Sep 17 00:00:00 2001
From: Patrick Godwin <patrick.godwin@ligo.org>
Date: Wed, 14 Jun 2017 13:26:18 -0700
Subject: [PATCH] gstlal_idq_trigger_gen: added toggle to write triggers to
 dataframe & save to hdf5

---
 gstlal-ugly/bin/gstlal_idq_trigger_gen | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/gstlal-ugly/bin/gstlal_idq_trigger_gen b/gstlal-ugly/bin/gstlal_idq_trigger_gen
index 2cdbceb41a..d046b35221 100755
--- a/gstlal-ugly/bin/gstlal_idq_trigger_gen
+++ b/gstlal-ugly/bin/gstlal_idq_trigger_gen
@@ -278,9 +278,10 @@ class MultiChannelHandler(simplehandler.Handler):
 				self.last_save_time = buftime
 
 			# hdf file saving
-			if (buftime - self.truncate_int(self.last_hdf_save_time[(channel, int(rate))], self.hdf_cadence)) >= self.hdf_cadence:
-				self.to_hdf5(channel, int(rate), buftime)
-				self.last_hdf_save_time[(channel, int(rate))] = buftime
+			if options.triggers_from_dataframe:
+				if (buftime - self.truncate_int(self.last_hdf_save_time[(channel, int(rate))], self.hdf_cadence)) >= self.hdf_cadence:
+					self.to_hdf5(channel, int(rate), buftime)
+					self.last_hdf_save_time[(channel, int(rate))] = buftime
 
 			# read buffer contents
 			for i in range(buf.n_memory()):
@@ -313,11 +314,12 @@ class MultiChannelHandler(simplehandler.Handler):
 							self.fdata += "%20.9f\t%20.9f\t%20.9f\t%10.3f\t%8.3f\t%8.3f\t%8.3f\t%10.3f\t%s\n" % (start_time, stop_time, trigger_time, freq, row.phase, row.sigmasq, row.chisq, row.snr, channel_tag)
 						# save dataframe compatible data
 						buftime_index = self.truncate_int(buftime, self.hdf_cadence)
-						try:
-							self.dataframes[(channel, int(rate))].loc[buftime_index, buftime] = numpy.array([start_time, stop_time, trigger_time, freq, row.phase, row.sigmasq, row.chisq, row.snr], dtype=float)
-						except ValueError:
-							print >>sys.stderr, "Error saving buffer contents to dataframe at buffer time = %d for channel = %s, rate = %d." % (buftime, channel, int(rate))
-							traceback.print_exc()
+						if options.triggers_from_dataframe:
+							try:
+								self.dataframes[(channel, int(rate))].loc[buftime_index, buftime] = numpy.array([start_time, stop_time, trigger_time, freq, row.phase, row.sigmasq, row.chisq, row.snr], dtype=float)
+							except ValueError:
+								print >>sys.stderr, "Error saving buffer contents to dataframe at buffer time = %d for channel = %s, rate = %d." % (buftime, channel, int(rate))
+								traceback.print_exc()
 
 				memory.unmap(mapinfo)
 
@@ -665,6 +667,7 @@ for channel in channels:
 		basis_params[(channel, rate)] = [(phi, q, duration(phi, q, 1e-3)/2.) for (phi, q) in phi_ql(flow, fhigh, qlow, qhigh, mismatch = options.mismatch)]
 		thishead = pipeparts.mkqueue(pipeline, thishead, max_size_buffers = 0, max_size_bytes = 0, max_size_time = Gst.SECOND * 30)
 		time_domain = (dur*rate**2) < (5*dur*rate*numpy.log2(rate))
+		#print >>sys.stderr, len(list(half_sine_gaussian(sine_gaussian(phi, 0, q, t_arr)) for (phi, q) in phi_ql(flow, fhigh, qlow, qhigh, mismatch = 0.2)))
 		thishead = pipeparts.mkfirbank(pipeline, thishead, fir_matrix = numpy.array([half_sine_gaussian(sine_gaussian(phi, phi_0, q, t_arr)) for (phi, q) in phi_ql(flow, fhigh, qlow, qhigh, mismatch = options.mismatch) for phi_0 in phase]), time_domain = time_domain, block_stride = int(rate), latency = 0)
 		if data_source_info.latency_output:
 			thishead = pipeparts.mklatency(pipeline, thishead, name = 'stage4_afterFIRbank_%s_%s' % (str(rate).zfill(5), channel))
-- 
GitLab