A Short Introduction to PF

A Short Introduction to PF: A C++ Library for Particle Filtering - Published in JOSS (2020)

https://github.com/tbrown122387/pf

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

particle-filter statistical-methods statistical-models statistics
Last synced: 6 months ago · JSON representation ·

Repository

PF: a header only template library for fast particle filtering!

Basic Info
  • Host: GitHub
  • Owner: tbrown122387
  • License: mit
  • Language: HTML
  • Default Branch: master
  • Homepage:
  • Size: 42.9 MB
Statistics
  • Stars: 60
  • Watchers: 5
  • Forks: 17
  • Open Issues: 11
  • Releases: 3
Topics
particle-filter statistical-methods statistical-models statistics
Created almost 8 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing Funding License Citation

README.md

PF: a library for fast particle filtering!

DOI DOI

This is a template library for particle filtering. Templated abstract base classes for different particle filters are provided (e.g. the Bootstrap Filter, the SISR filter, the Auxiliary Particle Filter, the Rao-Blackwellized particle filter), as well as non-abstract (but indeed templated) base classes for closed-form filtering algorithms (e.g. Kalman Filter, Hidden Markov Model filter, etc.).

Once you have a certain model in mind, all you have to do is make it into a class that inherits from the filter you want to use.

Dependencies

This code makes use of the following libraries:

Also, your compiler must enable C++17.

Installation

Option 1: Install with CMake

git clone this Github repostory, cd into the directory where everything is saved, then run the following commands:

mkdir build && cd build/
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr/local
sudo cmake --build . --config Release --target install --parallel

You may subsitute another directory for /usr/local, if you wish. This will also build unit tests that can be run with the following command (assuming you're still in build/):

./test/pf_test

Note: for this to method work, you will need to install Catch2 "system wide" so that its *.cmake files are installed as well. To do this, click here.

Option 2: Drag-and-drop .h files

This is a header-only library, so there will be no extra building necessary. If you just want to copy the desired header files from include/pf into your own project, and build that project by itself, that's totally fine. There is no linking necessary, either. If you go this route, though, make sure to compile with C++17 enabled. Note, also, that this code all makes use of Eigen v3.3 and Boost v1.65.1. Unit tests use the Catch2 library.

Examples

Don't know how to use this? No problem. Check out the examples sub-directory. This is a stand-alone cmake project, so you can just copy this sub-directory anywhere you like, and start editing.

For example, copy to Desktop and have at it:

cp -r ~/pf/examples/ ~/Desktop/
cd Desktop/examples/
mkdir build && cd build
cmake ..
make

If there are no error messages, you will have an executable named pf_example in that same directory. Running it without command line arguments will prompt you for arguments and tell you how it can be used.

Contributing

Want to contribute to this project? Great! Click here for details on how to do that. We also have an "ideas list" you can check out here.

Paper

A full-length tutorial paper is available here, and a shorter introduction paper is available here.

Citation

Click the "DOI" link above. Or, if you're impatient, click 'here' for a Bibtex citation.

Owner

  • Name: Taylor R. Brown
  • Login: tbrown122387
  • Kind: user
  • Company: University of Virginia

JOSS Publication

A Short Introduction to PF: A C++ Library for Particle Filtering
Published
October 09, 2020
Volume 5, Issue 54, Page 2599
Authors
Taylor R. Brown ORCID
Department of Statistics, University of Virginia, PO Box 400135, Charlottesville, VA 22904, USA
Editor
Patrick Diehl ORCID
Tags
particle filter c++

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: 'PF: a library for fast particle filtering'
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Taylor
    family-names: Brown
    email: tbrown122387@gmail.com
    affiliation: University of Virginia Department of Statistics
    orcid: 'https://orcid.org/0000-0003-4972-6251'
version: 1.0.3
doi: 10.5281/zenodo.4068564
date-released: 2020-10-06
url: "https://github.com/tbrown122387/pf"

GitHub Events

Total
  • Watch event: 7
  • Push event: 1
Last Year
  • Watch event: 7
  • Push event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 205
  • Total Committers: 4
  • Avg Commits per committer: 51.25
  • Development Distribution Score (DDS): 0.015
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Taylor t****7@g****m 202
Vaibhav Sharma 4****v 1
TianYuan Zhou 4****n 1
Clare O'Brien Brown c****n@C****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 25
  • Total pull requests: 3
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 5
  • Total pull request authors: 3
  • Average comments per issue: 0.72
  • Average comments per pull request: 2.33
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tbrown122387 (21)
  • LukeAI (1)
  • eunhwanshin (1)
  • ziotom78 (1)
  • iad-ABDUL-RAOUF (1)
Pull Request Authors
  • NoahZhouTianyuan (1)
  • cxwx (1)
  • GhostVaibhav (1)
Top Labels
Issue Labels
good first issue (6) enhancement (5) help wanted (4) question (1) bug (1)
Pull Request Labels