This library provides an implementation of the Whittaker-Eilers smoothing algorithm in Go. It is designed to smooth time series data or other sequences, offering support for both equally and non-equally spaced data. The library is particularly useful for reducing noise in data while preserving important signals.
- Whittaker-Eilers smoothing for sequences of
float64
. - Support for both equally and non-equally spaced data.
- Customizable smoothing parameters.
To use this library, first ensure you have Go installed on your system. Then, you can install the library using go get
:
go get -u github.com/njern/wte
package main
import (
"fmt"
"github.com/njern/wte"
)
func main() {
data := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
lambda := 10.0
order := 2
// For equally spaced data, pass nil for spacing
smoothed, err := wte.Smooth(data, lambda, order, nil)
if err != nil {
panic(err)
}
fmt.Println("Smoothed data:", smoothed)
}
Contributions to improve this library are welcome. Feel free to fork the repository, make your changes, and submit a pull request.
This library is licensed under the MIT License.
- I was inspired to develop this library after reading The perfect way to smooth your noisy data by Andrew Bowell and used his (excellent) Rust library to generate the test cases.
- This library was developed using the gonum package for Go matrix operations. Special thanks to the Gonum contributors.