def indices_of_flag(self, start_time, duration, times, padding=0): """ Return the indices of the times lying in the flagged region Parameters ---------- start_time: int Beginning time to request for duration: int Number of seconds to check. padding: float Number of seconds to add around flag inactive times to be considered inactive as well. Returns ------- indices: numpy.ndarray Array of indices marking the location of triggers within valid time. """ from pycbc.events.veto import indices_outside_times sr = self.raw_buffer.sample_rate s = int((start_time - self.raw_buffer.start_time - padding) * sr) - 1 e = s + int((duration + padding) * sr) + 1 data = self.raw_buffer[s:e] stamps = data.sample_times.numpy() invalid = numpy.bitwise_and(data.numpy(), self.valid_mask) != self.valid_mask starts = stamps[invalid] - padding ends = starts + 1.0 / sr + padding * 2.0 idx = indices_outside_times(times, starts, ends) return idx