downsample-oxide 0.1.0

Largest Triangle Three Buckets Implementation
Documentation

Downsample Oxide

Largest Triangle Three Buckets implementation based off https://github.com/jeromefroe/lttb-rs

docs.rs License crates.io

Documentation


From Jerome's Readme:

An implementation of the largest triangle three buckets (lttb) algorithm for time series downsampling as described in Downsampling Time Series for Visual Representation. This is a Rust port of the original Javascript implementation.

This implementation is heavily based and inspired from his original. Some QOL updates and datatype differences, such as using rust_decimal and offering output types to work generically or with chrono or time (both behind features).


Example

use downsample_oxide::*;

fn main() {
    let dps = Vec::from([
        DataPoint::new(first_day_of_month(1), Decimal::from(10)),
        DataPoint::new(first_day_of_month(2), Decimal::from(12)),
        DataPoint::new(first_day_of_month(3), Decimal::from(8)),
        DataPoint::new(first_day_of_month(4), Decimal::from(10)),
        DataPoint::new(first_day_of_month(5), Decimal::from(12)),
    ]);

    let output = dps.downsample(3)
}