26 releases

0.10.2 Feb 24, 2026
0.10.1 Sep 8, 2025
0.10.0 May 19, 2025
0.9.0 Jan 14, 2025
0.1.2 Feb 20, 2024

#7 in #outlier-detection

Download history 94/week @ 2025-12-17 21/week @ 2025-12-24 6/week @ 2025-12-31 71/week @ 2026-01-07 159/week @ 2026-01-14 152/week @ 2026-01-21 143/week @ 2026-01-28 110/week @ 2026-02-04 118/week @ 2026-02-11 150/week @ 2026-02-18 66/week @ 2026-02-25 21/week @ 2026-03-04 14/week @ 2026-03-11 45/week @ 2026-03-18 103/week @ 2026-03-25 52/week @ 2026-04-01

216 downloads per month
Used in 5 crates (2 directly)

MIT/Apache

16KB
207 lines

Seasonality detection for time series

augurs-seasons contains methods for detecting seasonality or periodicity in time series.

It currently contains implementations to do so using periodograms, similar to the seasonal Python package.

Usage

use augurs::seasons::{Detector, PeriodogramDetector};

# fn main() {
let y = &[
    0.1, 0.3, 0.8, 0.5,
    0.1, 0.31, 0.79, 0.48,
    0.09, 0.29, 0.81, 0.49,
    0.11, 0.28, 0.78, 0.53,
    0.1, 0.3, 0.8, 0.5,
    0.1, 0.31, 0.79, 0.48,
    0.09, 0.29, 0.81, 0.49,
    0.11, 0.28, 0.78, 0.53,
];
// Use the detector with default parameters.
let periods = PeriodogramDetector::default().detect(y);
assert_eq!(periods[0], 4);

// Customise the detector using the builder.
let periods = PeriodogramDetector::builder()
    .min_period(4)
    .max_period(8)
    .threshold(0.8)
    .build()
    .detect(y);
assert_eq!(periods[0], 4);
# }

Credits

This implementation is based heavily on the seasonal Python package. It also makes heavy use of the welch-sde crate.

License

Dual-licensed to be compatible with the Rust project. Licensed under the Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0> or the MIT license <http://opensource.org/licenses/MIT>, at your option.

Dependencies

~11MB
~120K SLoC