def _vote_bad_epochs(self, epochs):
"""Each channel votes for an epoch as good or bad.
Parameters
----------
epochs : instance of mne.Epochs
The epochs object for which bad epochs must be found.
"""
n_epochs = len(epochs)
picks = _handle_picks(info=epochs.info, picks=self.picks)
drop_log = np.zeros((n_epochs, len(epochs.ch_names)))
bad_sensor_counts = np.zeros((len(epochs), ))
ch_names = [epochs.ch_names[p] for p in picks]
deltas = np.ptp(epochs.get_data()[:, picks], axis=-1).T
threshes = [self.threshes_[ch_name] for ch_name in ch_names]
for ch_idx, (delta, thresh) in enumerate(zip(deltas, threshes)):
bad_epochs_idx = np.where(delta > thresh)[0]
# TODO: combine for different ch types
bad_sensor_counts[bad_epochs_idx] += 1
drop_log[bad_epochs_idx, picks[ch_idx]] = 1
return drop_log, bad_sensor_counts
评论列表
文章目录