All Projects → oseiskar → Simdkalman

oseiskar / Simdkalman

Licence: mit
Python Kalman filters vectorized as Single Instruction, Multiple Data

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Simdkalman

Real-Time-Video-Stabilization
real time video stabilization using Kalman Filter
Stars: ✭ 119 (+13.33%)
Mutual labels:  kalman-filter
Financial Models Numerical Methods
Collection of notebooks about quantitative finance, with interactive python code.
Stars: ✭ 3,534 (+3265.71%)
Mutual labels:  kalman-filter
Norfair
Lightweight Python library for adding real-time 2D object tracking to any detector.
Stars: ✭ 933 (+788.57%)
Mutual labels:  kalman-filter
MessyTimeSeries.jl
A Julia implementation of basic tools for time series analysis compatible with incomplete data.
Stars: ✭ 88 (-16.19%)
Mutual labels:  kalman-filter
Kalmanjs
Javascript based Kalman filter for 1D data
Stars: ✭ 298 (+183.81%)
Mutual labels:  kalman-filter
Mathematics
数学知识点滴积累 矩阵 数值优化 神经网络反向传播 图优化 概率论 随机过程 卡尔曼滤波 粒子滤波 数学函数拟合
Stars: ✭ 417 (+297.14%)
Mutual labels:  kalman-filter
bayes-filters-lib
A flexible, modern, C++ recursive Bayesian estimation library.
Stars: ✭ 48 (-54.29%)
Mutual labels:  kalman-filter
Loose Gnss Imu
Loosely coupled integration of GNSS and IMU
Stars: ✭ 97 (-7.62%)
Mutual labels:  kalman-filter
Ros Sensor Fusion Tutorial
An in-depth step-by-step tutorial for implementing sensor fusion with robot_localization! 🛰
Stars: ✭ 306 (+191.43%)
Mutual labels:  kalman-filter
Probabilistic robotics
solution of exercises of the book "probabilistic robotics"
Stars: ✭ 734 (+599.05%)
Mutual labels:  kalman-filter
Kalmanfilter altimeter vario
Kalman filter to estimate altitude and climbrate(sinkrate) by fusing altitude and acceleration sensor data
Stars: ✭ 31 (-70.48%)
Mutual labels:  kalman-filter
Freeimu Updates
IMU - FreeIMU Library Zero Drift, Altitude & LSM303 Heading Stability
Stars: ✭ 267 (+154.29%)
Mutual labels:  kalman-filter
Robotics Toolbox Matlab
Robotics Toolbox for MATLAB
Stars: ✭ 601 (+472.38%)
Mutual labels:  kalman-filter
Computer-Vision
Cool Vision projects
Stars: ✭ 51 (-51.43%)
Mutual labels:  kalman-filter
Extended Kalman Filter
Udacity Self-Driving Car Engineer Nanodegree. Project: Extended Kalman Filters
Stars: ✭ 27 (-74.29%)
Mutual labels:  kalman-filter
pySmooth
A unique time series library in Python that consists of Kalman filters (discrete, extended, and unscented), online ARIMA, and time difference model.
Stars: ✭ 29 (-72.38%)
Mutual labels:  kalman-filter
Mad Location Manager
Mad Location Manager is a library for GPS and Accelerometer data "fusion" with Kalman filter
Stars: ✭ 369 (+251.43%)
Mutual labels:  kalman-filter
Quant
Codera Quant is a Java framework for algorithmic trading strategies development, execution and backtesting via Interactive Brokers TWS API or other brokers API
Stars: ✭ 104 (-0.95%)
Mutual labels:  kalman-filter
Tsanalysis.jl
This package includes basic tools for time series analysis, compatible with incomplete data.
Stars: ✭ 56 (-46.67%)
Mutual labels:  kalman-filter
Kalman
Some Python Implementations of the Kalman Filter
Stars: ✭ 619 (+489.52%)
Mutual labels:  kalman-filter

SIMD Kalman

Build Status Docs Status PyPI

Fast Kalman filters in Python leveraging single-instruction multiple-data vectorization. That is, running n similar Kalman filters on n independent series of observations. Not to be confused with SIMD processor instructions.

import simdkalman

kf = simdkalman.KalmanFilter(
    state_transition = np.array([[1,1],[0,1]]),
    process_noise = np.diag([0.1, 0.01]),
    observation_model = np.array([[1,0]]),
    observation_noise = 1.0)

data = numpy.random.normal(size=(200, 1000))

# smooth and explain existing data
smoothed = kf.smooth(data)
# predict new data
pred = kf.predict(data, 15)

See examples/example.py for a more comprehensive example and ReadTheDocs for the full documentation. For the changelog, see releases page

According to examples/benchmark.py. This can be up to 100x faster than pykalman and 70x faster than filterpy when can be vectorized over many independent timeseries. Also in the non-vectorized case, it can be 2x faster.

Installation

pip install simdkalman

Development

  1. Create virtualenv
    • Python 2: virtualenv venvs/python2
    • Python 3: python3 -m venv venvs/python3
  2. Activate virtualenv: source venvs/pythonNNN/bin/activate
  3. Install locally pip install -e .[dev,test]
  4. ./run-tests.sh
  5. deactivate virtualenv

Distribution

(personal howto)

Once:

  1. create an account in https://testpypi.python.org/pypi and https://pypi.python.org/pypi
  2. create ~/.pypirc as described here
  3. sudo pip install twine
  4. create testing virutalenvs:
    • virtualenv venvs/test-python2
    • python3 -m venv venvs/test-python3

Each distribution:

# first, set version in setup.py
# then create distributable package
python setup.py bdist_wheel
# test PyPI site
twine upload --repository testpypi dist/simdkalman-VERSION*
# the real thing
twine upload dist/simdkalman-VERSION*
# update git tags
git tag VERSION -m "released VERSION"
git push --tags

Test installation from the test site with

source venvs/test-pythonNNN/bin/activate
pip install \
    --index-url https://test.pypi.org/simple/ \
    --extra-index-url https://pypi.org/simple \
    simdkalman --upgrade
# or the real thing with just
# pip install simdkalman
pip install matplotlib
python examples/example.py
deactivate

TODO

  • [ ] EM algorithm documentation and options
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].