Adaptive Gaussian Mixture State Estimation
Project description
PyEst: Adaptive Gaussian Mixture State Estimation
Not pytest: PyEst is a Python library for adaptive Gaussian mixture state estimation. For the Python test framework, see pytest.
Basic Usage
Import the gm module of PyEst as well as numpy and matplotlib
import numpy as np
import matplotlib.pyplot as plt
import pyest.gm as gm
Create a three-mixand two-dimensional Gaussian mixture:
# mixand means (nc,nx)
m = np.array([[0,0], [1,2], [0,-1]])
# mixand covariance matrices (nc,nx,nx)
P = np.array([[[1,0], [0,1]],
[[2, 0.5], [0.5,3]],
[[0.5, -0.1], [-0.1, 1]]])
# mixand weights (nc,)
w = gm.equal_weights(3)
# contruct the Gaussian mixture
p = gm.GaussianMixture(w, m, P)
Compute the mean and covariance of the distribution:
# compute and print the mean
print(p.mean())
# compute and print the covariance
print(p.cov())
Plot the Gaussian mixture
pp, XX, YY = p.pdf_2d()
fig = plt.figure()
ax = fig.add_axes(111)
ax.contourf(XX,YY,pp,100)
Apply a linear transformation to the mixture
dt = 5
F = np.array([[1, dt], [0, 1]])
my = np.array([F@m for m in p.m])
Py = np.array([F@P@F.T for P in p.P])
py = gm.GaussianMixture(p.w, my, Py)
Plot the transformed Gaussian mixture
pp, XX, YY = py.pdf_2d()
fig = plt.figure()
ax = fig.add_axes(111)
ax.contourf(XX,YY,pp,100)
plt.show()
Installation
OS X (zsh)
To install, run
pip install pyest
To install packages needed for running the examples, run
pip install 'pyest[examples]'
OS X (bash), Windows (cmd prompt)
To install, run
pip install pyest
To install packages needed for running the examples, run
pip install pyest[examples]
Citing this work
If you use this package in your scholarly work, please cite the following articles:
J. Kulik and K.A. LeGrand, “Nonlinearity and Uncertainty Informed Moment-Matching Gaussian Mixture Splitting,” https://arxiv.org/abs/2412.00343
@article{legrand2022SplitHappensImprecise,
title = {Split {{Happens}}! Imprecise and Negative Information in {G}aussian Mixture Random Finite Set Filtering},
author = {LeGrand, Keith A. and Ferrari, Silvia},
year = {2022},
month = dec,
journal = {Journal of Advances in Information Fusion},
volume = {17},
number = {2},
eprint = {2207.11356},
primaryclass = {cs, eess},
pages = {78--96},
doi = {10.48550/arXiv.2207.11356},
}
@misc{kulik2024NonlinearityUncertaintyInformed,
title = {Nonlinearity and {{Uncertainty Informed Moment-Matching Gaussian Mixture Splitting}}},
author = {Kulik, Jackson and LeGrand, Keith A.},
year = {2024},
month = nov,
number = {arXiv:2412.00343},
eprint = {2412.00343},
primaryclass = {stat},
publisher = {arXiv},
doi = {10.48550/arXiv.2412.00343},
urldate = {2025-01-01},
archiveprefix = {arXiv}
}
Documentation
For more information about PyEst, please see the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyest-0.5.0.tar.gz.
File metadata
- Download URL: pyest-0.5.0.tar.gz
- Upload date:
- Size: 62.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0ea8767857b7efc34813a15f7a270ef907ec7303670e627dbce7e37d00489ce
|
|
| MD5 |
e2bc41e53f3e349fb26369d234f9da68
|
|
| BLAKE2b-256 |
2246380aa904f2a20e4bdd7a0c57d079a739a1cbc51022a0da4ac8aeb7d185fc
|
File details
Details for the file pyest-0.5.0-py3-none-any.whl.
File metadata
- Download URL: pyest-0.5.0-py3-none-any.whl
- Upload date:
- Size: 49.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d060e928554e423065a752cd525a264439c8017f0a0d1a91f21cfe9b9c0d77f6
|
|
| MD5 |
de22b50d254082de00a2b2132a2e579b
|
|
| BLAKE2b-256 |
3482f81be1efd5d67e481e1c9f529e0685c486d1c44ab3c37af56b5c61f02d4b
|