def __init__(self, filename, bank=None, segment_name=None, veto_files=None, gating_veto_windows={}): self.filename = filename self.file = h5py.File(filename, 'r') self.ifo = tuple(self.file.keys())[0] self.valid = None self.bank = h5py.File(bank, 'r') if bank else {} # Determine the segments which define the boundaries of valid times # to use triggers key = '%s/search/' % self.ifo s, e = self.file[key + 'start_time'][:], self.file[key + 'end_time'][:] self.segs = veto.start_end_to_segments(s, e).coalesce() if segment_name is None: segment_name = [] if veto_files is None: veto_files = [] for vfile, name in zip(veto_files, segment_name): veto_segs = veto.select_segments_by_definer(vfile, ifo=self.ifo, segment_name=name) self.segs = (self.segs - veto_segs).coalesce() if self.ifo in gating_veto_windows: gating_veto = gating_veto_windows[self.ifo].split(',') gveto_before = float(gating_veto[0]) gveto_after = float(gating_veto[1]) if gveto_before > 0 or gveto_after < 0: raise ValueError("Gating veto window values must be negative " "before gates and positive after gates.") if not (gveto_before == 0 and gveto_after == 0): gate_times = np.unique( self.file[self.ifo + '/gating/auto/time'][:]) gating_veto_segs = veto.start_end_to_segments(gate_times + gveto_before, gate_times + gveto_after).coalesce() self.segs = (self.segs - gating_veto_segs).coalesce() self.valid = veto.segments_to_start_end(self.segs)
def __init__(self, filename, bank=None, segment_name=None, veto_files=None): self.filename = filename self.file = h5py.File(filename, 'r') self.ifo = tuple(self.file.keys())[0] self.valid = None self.bank = h5py.File(bank, 'r') if bank else {} # Determine the segments which define the boundaries of valid times # to use triggers key = '%s/search/' % self.ifo s, e = self.file[key + 'start_time'][:], self.file[key + 'end_time'][:] self.segs = veto.start_end_to_segments(s, e).coalesce() if segment_name is None: segment_name = [] if veto_files is None: veto_files = [] for vfile, name in zip(veto_files, segment_name): veto_segs = veto.select_segments_by_definer(vfile, ifo=self.ifo, segment_name=name) self.segs = (self.segs - veto_segs).coalesce() self.valid = veto.segments_to_start_end(self.segs)