From 363f2dd14c4dcbee336cc591c68772b5da06f4ca Mon Sep 17 00:00:00 2001 From: wendtalexander Date: Tue, 17 Jan 2023 20:19:26 +0100 Subject: [PATCH] adding boolien vector to reduce duplicates --- code/chirpdetection.py | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/code/chirpdetection.py b/code/chirpdetection.py index 5e8cca4..194bbdf 100644 --- a/code/chirpdetection.py +++ b/code/chirpdetection.py @@ -551,13 +551,16 @@ def main(datapath: str) -> None: current_chirps = [] - - for tt in timestamps: + bool_timestamps = np.ones_like(timestamps, dtype=bool) + for bo, tt in enumerate(timestamps): + if bool_timestamps[bo] == False: + continue cm = timestamps_idx[(timestamps >= tt) & ( timestamps <= tt + config.chirp_window_threshold)] if set([0, 1, 2]).issubset(timestamps_features[cm]): current_chirps.append(np.mean(timestamps[cm])) electrodes_of_chirps.append(el) + bool_timestamps[cm] = False # for checking if there are chirps on multiple electrodes @@ -593,22 +596,31 @@ def main(datapath: str) -> None: sort_chirps_electrodes = chirps_electrodes[np.argsort(chirps_electrodes)] sort_electrodes = electrodes_of_chirps[np.argsort(chirps_electrodes)] bool_vector = np.ones(len(sort_chirps_electrodes), dtype=bool) + # make index vector + index_vector = np.arange(len(sort_chirps_electrodes)) the_real_chirps = [] + for chirp_index, seoc in enumerate(sort_chirps_electrodes): + if bool_vector[chirp_index] == False: + continue + else: + cm = index_vector[(sort_chirps_electrodes >= seoc) & ( + sort_chirps_electrodes <= seoc + config.chirp_window_threshold)] + + if set([0,1]).issubset(sort_electrodes[cm]): + the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) + elif set([1,0]).issubset(sort_electrodes[cm]): + the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) + elif set([0,2]).issubset(sort_electrodes[cm]): + the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) + elif set([1,2]).issubset(sort_electrodes[cm]): + the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) + + bool_vector[cm] = False + for ct in the_real_chirps: + axs[0, el].axvline(ct, color='b', lw=1) embed() - for seoc in sort_chirps_electrodes: - - cm = sort_electrodes[[(sort_chirps_electrodes >= seoc) & ( - sort_chirps_electrodes <= seoc + config.chirp_window_threshold)][bool_vector]] - - if set([0,1]).issubset(sort_electrodes[cm]): - the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) - elif set([0,2]).issubset(sort_electrodes[cm]): - the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) - elif set([1,2]).issubset(sort_electrodes[cm]): - the_real_chirps.append(np.mean(sort_chirps_electrodes[cm])) - - bool_vector[sort_electrodes[cm]] = False + plt.show()