{"id":51294134,"url":"https://github.com/xylambda/kalmankit","last_synced_at":"2026-06-30T13:00:55.526Z","repository":{"id":40391927,"uuid":"264726082","full_name":"Xylambda/kalmankit","owner":"Xylambda","description":"Multidimensional implementation of standard and extended Kalman Filters. Filtering and smoothing.","archived":false,"fork":false,"pushed_at":"2026-06-05T22:17:47.000Z","size":3363,"stargazers_count":17,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-06-30T13:00:47.051Z","etag":null,"topics":["extended-kalman-filter","filter","kalman","kalman-filter","kalman-smoother","numpy","python","rts-smoother","signal-extraction","signal-processing","smoother"],"latest_commit_sha":null,"homepage":"https://xylambda.github.io/kalmankit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xylambda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-17T18:00:19.000Z","updated_at":"2026-06-05T21:57:25.000Z","dependencies_parsed_at":"2024-08-05T15:42:10.982Z","dependency_job_id":"62a90146-4c96-40ab-a120-a48b9cc92cf5","html_url":"https://github.com/Xylambda/kalmankit","commit_stats":{"total_commits":58,"total_committers":2,"mean_commits":29.0,"dds":0.03448275862068961,"last_synced_commit":"7b7d1ef4d71dae6627fa9e2d0db78298c81295a0"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/Xylambda/kalmankit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xylambda%2Fkalmankit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xylambda%2Fkalmankit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xylambda%2Fkalmankit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xylambda%2Fkalmankit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xylambda","download_url":"https://codeload.github.com/Xylambda/kalmankit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xylambda%2Fkalmankit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34967623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["extended-kalman-filter","filter","kalman","kalman-filter","kalman-smoother","numpy","python","rts-smoother","signal-extraction","signal-processing","smoother"],"created_at":"2026-06-30T13:00:28.338Z","updated_at":"2026-06-30T13:00:55.519Z","avatar_url":"https://github.com/Xylambda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"img/logo.png\" width=\"700\"\u003e\n\u003c/p\u003e\n\n![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/Xylambda/kalmankit?label=VERSION\u0026style=badge)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Xylambda/kalmankit?style=badge)\n![GitHub issues](https://img.shields.io/github/issues/Xylambda/kalmankit?style=badge)\n![workflow](https://github.com/Xylambda/kalmankit/actions/workflows/cicd.yaml/badge.svg)\n[![doc](https://img.shields.io/badge/DOCS-documentation-blue.svg?style=badge)](https://xylambda.github.io/kalmankit/)\n\nThe Kalman filter is an optimal estimation algorithm: it estimates the true \nstate of a signal given that this signal is noisy and/or incomplete. This \npackage provides a multidimensional implementation of:\n* **Standard Kalman Filter**: if the noises are drawn from a gaussian \ndistribution and the underlying system is governed by linear equations, the \nfilter will output the best possible estimate of the signal's true state.\n\n* **Extended Kalman Filter**: can deal with nonlinear systems, but it does not\nguarantee the optimal estimate. It works by linearizing the function locally\nusing the Jacobian matrix.\n\n\n## Installation\n**Normal user**\n```bash\npip install kalmankit\n```\n\n**Developer**\n```bash\ngit clone https://github.com/Xylambda/kalmankit.git\npip install -e \"kalmankit/.[dev]\"\n```\n\n## Tests\nTo run tests you must install the library as a `developer`.\n```bash\ncd kalmankit/\npytest -v tests/\n```\n\n## Usage\nThe library provides 5 examples of usage:\n1. [Moving Average](examples/moving_average.py)\n2. [Market Beta estimation](examples/market_beta.py)\n3. [Pendulum estimation with EKF](examples/pendulum.py)\n4. [Standard RTS smoothing for constant-velocity tracking](examples/constant_velocity_smoothing.py)\n5. [Extended RTS smoothing for a nonlinear pendulum](examples/pendulum_smoothing.py)\n\nInstall the `examples` extra to run the examples:\n\n```bash\npip install -e \".[examples]\"\n```\n\n## References\n* Matlab - [Understanding Kalman Filters](https://www.youtube.com/playlist?list=PLn8PRpmsu08pzi6EMiYnR-076Mh-q3tWr)\n\n* Bilgin's Blog - [Kalman filter for dummies](http://bilgin.esme.org/BitsAndBytes/KalmanFilterforDummies)\n\n* Greg Welch, Gary Bishop - [An Introduction to the Kalman Filter](https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf)\n\n* Simo Särkkä - Bayesian filtering and Smoothing. Cambridge University Press.\n\n\n## Cite\nIf you've used this library for your projects please cite it:\n\n```latex\n@misc{alejandro2021kalmankit,\n  title={kalmankit - Multidimensional implementation of Kalman Filter algorithms},\n  author={Alejandro Pérez-Sanjuán},\n  year={2021},\n  howpublished={\\url{https://github.com/Xylambda/kalmankit}},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxylambda%2Fkalmankit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxylambda%2Fkalmankit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxylambda%2Fkalmankit/lists"}