def keep_near_injection(self, window, injections): from pycbc.events.veto import indices_within_times if len(self.events) == 0: return inj_time = numpy.array(injections.end_times()) gpstime = self.events['time_index'].astype(numpy.float64) gpstime = gpstime / self.opt.sample_rate + self.opt.gps_start_time i = indices_within_times(gpstime, inj_time - window, inj_time + window) self.events = self.events[i]
def set_template(self, num): """ Set the active template to read from Parameters ---------- num: int The template id to read triggers for Returns ------- trigger_id: numpy.ndarray The indices of this templates triggers """ self.template_num = num times = self.get_data('end_time', num) # Determine which of these template's triggers are kept after # applying vetoes if self.valid: self.keep = veto.indices_within_times(times, self.valid[0], self.valid[1]) # logging.info('applying vetoes') else: self.keep = np.arange(0, len(times)) if self.bank != {}: self.param = {} if 'parameters' in self.bank.attrs: for col in self.bank.attrs['parameters']: self.param[col] = self.bank[col][self.template_num] else: for col in self.bank: self.param[col] = self.bank[col][self.template_num] # Calculate the trigger id by adding the relative offset in self.keep # to the absolute beginning index of this templates triggers stored # in 'template_boundaries' trigger_id = self.keep + \ self.file['%s/template_boundaries' % self.ifo][num] return trigger_id