def iter_interval_ind(self, interval_len, start=0): """ Iterate through time by time interval of length 'interval_len'. Yield the time interval (in time space) as well as the start and end coordinate of the time interval. """ n = self.get_num_bins_to(interval_len) ind = start for curr_interval in utils.grouper_nofill(self.t[start:], n): yield curr_interval, (ind, min(ind + n, self.num_steps)) ind += len(curr_interval)
def iter_interval(self, interval_len): """ Iterate by bins of size 'interval_len' """ # Need to add 1 to number of bins here # because of how Python slice indexing works. # Example: in [0, 1, 2, 3, 4], there are 4 bins. # To get to 2, we need 2 bins, but the corresponding # slice is from 0:3 n = self.get_num_bins_to(interval_len) + 1 for curr_interval in utils.grouper_nofill(self.t, n): yield curr_interval