Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Tsai | 3,495 | 1 | 2 days ago | 41 | April 19, 2022 | 32 | apache-2.0 | Jupyter Notebook | ||
Time series Timeseries Deep Learning Machine Learning Pytorch fastai | State-of-the-art Deep Learning library for Time Series and Sequences in Pytorch / fastai | ||||||||||
Awesome Ts Anomaly Detection | 2,320 | 8 months ago | 1 | |||||||
List of tools & datasets for anomaly detection on time-series data. | ||||||||||
Dxy Covid 19 Data | 2,238 | 2 days ago | 7 | mit | Python | |||||
2019新型冠状病毒疫情时间序列数据仓库 | COVID-19/2019-nCoV Infection Time Series Data Warehouse | ||||||||||
Deep Learning Time Series | 1,811 | 9 months ago | 8 | apache-2.0 | Jupyter Notebook | |||||
List of papers, code and experiments using deep learning for time series forecasting | ||||||||||
Awesome_time_series_in_python | 1,811 | 4 months ago | 4 | |||||||
This curated list contains python packages for time series analysis | ||||||||||
Kairosdb | 1,689 | 3 months ago | 124 | apache-2.0 | Java | |||||
Fast scalable time series database | ||||||||||
Causalimpact | 1,484 | 2 | 2 | 7 months ago | 8 | June 07, 2021 | 22 | apache-2.0 | R | |
An R package for causal inference in time series | ||||||||||
Pyts | 1,432 | 2 | 9 | 4 months ago | 18 | October 31, 2021 | 39 | bsd-3-clause | Python | |
A Python package for time series classification | ||||||||||
Filodb | 1,381 | 3 days ago | 36 | apache-2.0 | Scala | |||||
Distributed Prometheus time series database | ||||||||||
Luminol | 1,093 | 14 | 1 | 20 days ago | 5 | December 11, 2017 | 32 | apache-2.0 | Python | |
Anomaly Detection and Correlation library |
Time series implementation in Go.
It is used in go-trending as a backend for a trending algorithm.
The time series supports storing counts at different granularities, e.g. seconds, minutes, hours, ....
In case of go-trending the time series is configured to have recent data available at small granularity, i.e. the recent 60 seconds, and historical data available at large granularity, i.e. the last few hours, days of data.
A redis backend is planned.
The default settings use time.Now()
as clock and time.Second * 60
, time.Minute * 60
and time.Hour * 24
as granularities.
import "github.com/codesuki/go-time-series"
...
ts, err := timeseries.NewTimeSeries()
if err != nil {
// handle error
}
You can specify the clock and/or granularities to use. A clock must implement the timeseries.Clock
interface.
import "github.com/codesuki/go-time-series"
...
type clock struct {}
func (c *clock) Now() {
return time.Time{} // always returns the zero time
}
var myClock clock
...
ts, err := timeseries.NewTimeSeries(
timeseries.WithGranularities(
[]timeseries.Granularity{
{Granularity: time.Second, Count: 60},
{Granularity: time.Minute, Count: 60},
{Granularity: time.Hour, Count: 24},
{Granularity: time.Hour * 24, Count: 7},
}),
timeseries.WithClock(&myClock),
)
if err != nil {
// handle error
}
To fill the time series with counts, e.g. events, you can use two different functions.
import "github.com/codesuki/go-time-series"
...
ts, err := timeseries.NewTimeSeries()
if err != nil {
// handle error
}
ts.Increase(2) // adds 2 to the counter at the current time
ts.IncreaseAtTime(3, time.Now().Add(-2 * time.Minute)) // adds 3 to the counter 2 minutes ago
The Range()
function takes 2 arguments, i.e. the start and end of a time span.
Recent()
is a small helper function that just uses clock.Now()
as end
in Range
.
Please refer to the documentation for how Range()
works exactly. There are some details depending on what range you query and what range is available.
import "github.com/codesuki/go-time-series"
...
ts, err := timeseries.NewTimeSeries()
if err != nil {
// handle error
}
ts.Increase(2) // adds 2 to the counter at the current time
// 1s passes
ts.Increase(3)
// 1s passes
ts.Recent(5 * time.Second) // returns 5
ts.Range(time.Now().Add(-5 * time.Second), time.Now()) // returns 5
GoDoc is located here
go-time-series is MIT licensed.