[ANN] Announcing TimeRecords.jl

TimeRecords.jl

Build Status
Coverage Status

After a couple of years in working on Edge and PubSub solutions, I’ve developed a timeseries package that’s mainly focused on common operations to collect and make such data easier to use in multivariate data science applications (such as regression or Kalman Filtering). The aim of this package is not to do typical timeseries analysis, but making it easier to massage the data in a way that can be easily consumed by various applications. For example, interpolations and time-weighted averaging in order to produce multivariate observations with lined-up timestamps.

The object model contains four main types:

  1. TimeRecord{T} an object of type T with a unix timestamp
  2. TimeSeries{T} a vector of TimeRecord{T} that is sorted
  3. TimeInterval two unix timestamps in chronological order
  4. TimeSeriesCollector an object that collects data over an internally defined interval; has methods to trigger callback functions when the timer has been exceeded. Callback functions must be able to take a dict of TimeSeries, and a TimeInterval.

I’ve typically used this as a layer between MQTT and NATS but I will likely target other PubSub protocols and build some example libraries in the future.

14 Likes