Code used in "Dynamics-Informed Gaussian Process models in Stone Soup" paper
This repository contains implementations of Gaussian Process (GP) models integrated into the Stone Soup tracking framework. This is associated with the paper "Dynamics-Informed Gaussian Processes models in Stone Soup", Chung, Lydeard, Godsill, 2025.
The modified Stone Soup library, including these models, is included as a submodule
Stone-Soup/- Contains the modified Stone Soup library implementing the GP models.iGP_tutorial.ipynb- Demonstrates how to use the Integrated GP (iGP) models within the Stone Soup framework.eval_code/- Contains code used for the evaluation section of the associated paper.synthetic.py- Generate synthetic data from a GP and track with one or more GP models.mosquito.py- Tracks mosquito coordinates obtained from fruit fly and mosquito flight trajectories stored inmosquito_coordinates.csv.synthetic_optim.pyThis script generates synthetic data using a selected model, computes the marginal log likelihood over a grid of length scales and kernel variances, and visualises the results with a contour plot highlighting both global and local maxima.tracking/- Contains helper functions for tracking implementations.
To set up the project, follow these steps:
git clone --recurse-submodules https://github.com/nfcc2/dynamics-informed-gps.git
cd dynamics-informed-gps(Note: The --recurse-submodules flag ensures the Stone Soup submodule is also cloned.)
python -m venv env
source env/bin/activate # On Windows, use 'env\Scripts\activate'pip install -r requirements.txtTo run the tutorial in VS Code:
- Open
iGP_tutorial.ipynbin VS Code. - Ensure the Jupyter and Python extensions are installed.
- Select the correct interpreter (Cmd/Ctrl+Shift+P → "Python: Select Interpreter").
- Run cells using the
▶️ buttons.
If the environment doesn’t show up, register it with:
python -m ipykernel install --user --name=env
### Running Synthetic Data Evaluation
Replicates Figure 2, visualising an example trajectory from a generating model, along with estimated tracks from tracking models.
```bash
python eval_code/synthetic.pyReplicates Figure 3, visualising marginal log likelihood surface plots from a generating model on its trajectory.
python eval_code/synthetic_optim.pyReplicates Figure 4, showing tracking results of the GP models on the mosquito trajectory data.
python eval_code/mosquito.pyThis project is released under the MIT License.