DataAggregation

Trait DataAggregation 

Source
pub trait DataAggregation: DataSeries {
    // Required methods
    fn aggregate<const N: usize>(
        &self,
        config: &AggregationConfig,
    ) -> DataResult<StaticDataSeries<Self::Item, N>>;
    fn downsample_lttb<const N: usize>(
        &self,
        config: &DownsamplingConfig,
    ) -> DataResult<StaticDataSeries<Self::Item, N>>;
    fn downsample_uniform<const N: usize>(
        &self,
        config: &DownsamplingConfig,
    ) -> DataResult<StaticDataSeries<Self::Item, N>>;
    fn calculate_group_stats(
        &self,
        points: &[Self::Item],
    ) -> DataResult<GroupStats<Self::Item>>
       where Self::Item: Clone;
}
Expand description

Trait providing aggregation and downsampling capabilities for data series

Required Methods§

Source

fn aggregate<const N: usize>( &self, config: &AggregationConfig, ) -> DataResult<StaticDataSeries<Self::Item, N>>

Aggregate data points using the specified strategy

§Arguments
  • config - Configuration for the aggregation operation
§Returns

A new data series with aggregated points

Source

fn downsample_lttb<const N: usize>( &self, config: &DownsamplingConfig, ) -> DataResult<StaticDataSeries<Self::Item, N>>

Downsample data using Largest Triangle Three Buckets algorithm

This algorithm preserves the visual characteristics of the data better than simple uniform sampling by considering the area of triangles formed by adjacent points.

§Arguments
  • config - Configuration for the downsampling operation
§Returns

A new data series with downsampled points

Source

fn downsample_uniform<const N: usize>( &self, config: &DownsamplingConfig, ) -> DataResult<StaticDataSeries<Self::Item, N>>

Downsample data using uniform sampling (every Nth point)

§Arguments
  • config - Configuration for the downsampling operation
§Returns

A new data series with uniformly sampled points

Source

fn calculate_group_stats( &self, points: &[Self::Item], ) -> DataResult<GroupStats<Self::Item>>
where Self::Item: Clone,

Calculate statistics for a group of data points

§Arguments
  • points - Slice of data points to analyze
§Returns

Statistics for the group of points

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T, const M: usize> DataAggregation for StaticDataSeries<T, M>
where T: DataPoint + Clone + Copy, T::X: PartialOrd + Copy + Add<Output = T::X> + Div<f32, Output = T::X> + Into<f32> + From<f32>, T::Y: PartialOrd + Copy + Add<Output = T::Y> + Div<f32, Output = T::Y> + Into<f32> + From<f32>,

Implementation of aggregation for StaticDataSeries