Skip to main content

pyest_logo

PyEst: Adaptive Gaussian Mixture State Estimation

Python application

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:

K.A. LeGrand and S. Ferrari, “Split Happens! Imprecise and Negative Information in Gaussian Mixture Random Finite Set Filtering,” Journal of Advances in Information Fusion, Vol 17, No. 2, December, 2022

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.

Metadata

Release files for pyest 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyest 0.7.1
File Size Uploaded
pyest-0.7.1.tar.gz 62.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyest 0.7.1
File Interpreter ABI Platform
pyest-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 112.3 kB

Release files / pyest-0.7.1.tar.gz

Download URL pyest-0.7.1.tar.gz
Size 62.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d60e2c41a1d2ae60d51fa5ac4d2152eb028569c6cc97136fe93951f160a122bf
BLAKE2b-256 checksum
How to use checksums
fc14638c9a840a82dd2659ceb1a981949812be5df33c9b5ed7a47c9fcb12f4cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.9

Release files / pyest-0.7.1-py3-none-any.whl

Download URL pyest-0.7.1-py3-none-any.whl
Size 49.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d765983d64c9fdf51959fecc1894e3624ffa0714d44db8c19021fbf4d70e4ca
BLAKE2b-256 checksum
How to use checksums
b13bffe1072cfca5b243acee04e34056e726ddff2a718b893790b32c30c1a4cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.9

Release history Release notifications | RSS feed

0.7.2

2 release files

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page