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.2

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.2
File Size Uploaded
pyest-0.7.2.tar.gz 62.8 kB Details

Built distribution (wheel)

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

Total release size: 112.9 kB

Release files / pyest-0.7.2.tar.gz

Download URL pyest-0.7.2.tar.gz
Size 62.8 kB
Tags Source
SHA-256 checksum
How to use checksums
625c1953e1cc6d78f95c425e203cf254c1a86fc88d53a2a2ce59ef279e27d953
BLAKE2b-256 checksum
How to use checksums
38ea41e7046b808bb8654cf82046f1d12d4a97b4079336ba7395d2eb735087e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.9

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

Download URL pyest-0.7.2-py3-none-any.whl
Size 50.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
daa2e64f2b3481b9718c8e6429f7828c493d5741065e9ad75b61a800cde42d06
BLAKE2b-256 checksum
How to use checksums
fffb87cae03d7a04f843ad8c32978b70ef22564ebd3605172bd0d63282ff6b07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.9

Release history Release notifications | RSS feed

This release

0.7.2 This release

2 release files

0.7.1

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