"""module for functions that deal with vector of times from a spectrogram,i.e. where elements are the times at bin centers"""importnumpyasnp
[docs]deftimebin_dur_from_vec(time_bins,n_decimals_trunc=5):"""compute duration of a time bin, given the vector of time bin centers associated with a spectrogram Parameters ---------- time_bins : numpy.ndarray vector of times in spectrogram, where each value is a bin center. n_decimals_trunc : int number of decimal places to keep when truncating the timebin duration calculated from the spectrogram arrays. Default is 5. Returns ------- timebin_dur : float duration of a timebin, estimated from vector of times Notes ----- takes mean of pairwise difference between neighboring time bins, to deal with floating point error, then rounds and truncates to specified decimal place """# first we round to the given number of decimalstimebin_dur=np.around(np.mean(np.diff(time_bins)),decimals=n_decimals_trunc)# only after rounding do we truncate any decimal place past decadedecade=10**n_decimals_trunctimebin_dur=np.trunc(timebin_dur*decade)/decadereturntimebin_dur