stats: handle absence of global maxima in signal #127
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses issues with functions/methods that rely on identifying global maxima of a time series when there are none (e.g., because signal crosses its mean value only once).
qats.signal.find_maxima()
: if only one mean-level crossing, return empty arrays. Previously,find_maxima()
could fail if there was one up-crossing but no down-crossings. This fixes find_maxima() fails when no downcrossings are found #125.qats.signal.average_frequency()
: if only one mean-level crossing, returnnp.nan
. Previously, this would generate a runtime warning (RuntimeWarning: divide by zero encountered in divide
).Other updates:
nperseg
specified in settings, use signal length. This removes the scipy UserWarning generated if this mismatch occurs.