Skip to content

Extended LTTB for fast vizualisation of summed signalsΒ #877

@EmanuelMarioJoos

Description

@EmanuelMarioJoos

What's the functionality you would like to add

LTTB allows visualization of individual timeseries signals separately. However,
in many applications such as monitoring water inflow to a hydro dam, where multiple
inflows exist, it would be advantageous to aggregate and visualize these signals
together. An extension that allows operations like lttb(sum(sig1, sig2, sig3)) or more general lttb(func(signal_1, signal_2, ...)) would be great.

func cloud be sum, substraction, muliplication or division which i call aggregation function.

However, the signals we want to do summations on
usually have different timestamps. In this case, we cannot directly sum the
original signals together. We could resample the signals first to get the same
timestamps and then add them up. But this is very computationally intensive
and for visualisation only, not really suited. Also in this case, we lose some
real-time information.

How would the function be used

Function would be used the same way as the current LTTB but with multiple signals and a aggregation function.

Why should this feature be added?

From my point of view this is very useful for multiple applications.

What scale is this useful at?

All scales.

Proposed solution for lttb with summation

  1. Downsample each signal separately using LTTB
  2. For each point in every downsampled signal, we first select its corresponding
    timestamp. Then, using this timestamp, we retrieve the last values
    from all other original signals and sum them together (this assumes that all the values are from sensors with last value valid)
  3. Merge all the summed results from every resampled signal

Time complexity: If lttb is n (number of data points per signal) i assume extenden lttb would be n*m where m the number of signals is. For most of the cases n>>m.

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposed-featureA proposed feature or function to ease a task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions