Particle filters for Python

Welcome to the pypfilt documentation. This package implements several particle filter methods that can be used for recursive Bayesian estimation and forecasting.

If there is a system or process that can be:

  • Described (modelled) with mathematical equations; and

  • Measured repeatedly in some (noisy) way.

Then you can use pypfilt to estimate the state and/or parameters of this system.

_images/lorenz63_forecast_regularised.png

Forecasts for \(x(t)\), \(y(t)\), and \(z(t)\) of the Lorenz63 system at time \(t=20\).

Depending on your preferred learning style, start with any of the following:

The Getting Started tutorial

Shows how to build a simulation model, generate simulated observations from this model, fit the model to these observations, and generate the example forecasts, above.

The Key Concepts guide

Introduces the various pypfilt components and how they fit together.

Note

This guide is currently incomplete.

The How-to Guides

Demonstrates how to solve particular problems.

Note

These guides are currently incomplete.

The Scenario Settings guide

Explains the settings that can be defined in a scenario file.

The API documentation

Presents the details of each pypfilt component and is likely only of interest if you need to develop your own components.

License

The code is distributed under the terms of the BSD 3-Clause license (see LICENSE), and the documentation is distributed under the terms of the Creative Commons BY-SA 4.0 license.

Citation

If you use pypfilt, please cite our JOSS article and an archived release of the software (see CITATION.cff).

@article{pypfilt,
  author = {Moss, Robert},
  title = {pypfilt: a particle filter for {Python}},
  journal = {Journal of Open Source Software},
  volume = {9},
  issue = {96},
  pages = {6276},
  year = {2024},
  doi = {10.21105/joss.06276},
  note = {Please cite this article and an archived release (see CITATION.cff)},
}

User Documentation