v1.2
What's Changed
Breaking changes
-
Change how sensor parameters are passed to action generators by @nperree-dstl in #901
- ActionableProperty has a
generator_kwargs_mapping
dictionary to map properties of the ActionGenerator to properties of the Sensor, allowing them to be set via the sensor. This means the previous method for setting resolutions has been modified to use this.- Fix: for RadarRotatingBearingRange, set
resolution=resolution_value
instead ofresolutions=dict()
- When creating a new sensor with an ActionableProperty, use the
generator_kwargs_mapping
to map sensor properties to ActionGenerator properties where required.
- Fix: for RadarRotatingBearingRange, set
- ActionableProperty has a
-
Sensor management with actionable movables by @akenyon in #943
- Sensor managers now take a set of sensors and a set of platforms so positional arguments order has changed
- Fix: set
reward_function
using kwargs (e.g.reward_function=…
)
- Fix: set
- Import locations have changed for the base classes Action, ActionGenerator, Actionable and ActionableProperty.
- Fix: import all from new location,
stonesoup.sensormanager.action
- Fix: import all from new location,
- Sensor managers now take a set of sensors and a set of platforms so positional arguments order has changed
Implemented enhancements
- Add metric MultiManager and MetricPlotter by @rcgorman-dstl in #811
- Introduce ability to constrain particle states in ParticleUpdater and MCMCRegulariser by @timothy-glover in #855
- Bool to return reward for BruteForce and Optimise sensor managers by @asaunders-dstl in #851
- Resampling dependant regularisation in ParticleUpdater by @timothy-glover in #869
- Minor Addition and Changes to MultiMeasurementInitiator by @gawebb-dstl in #835
- Adding greedy sensor manager by @akenyon in #874
- Add GaussianMixtureInitiator, ASDGaussianInitiator and EnsembleInitiator by @csherman-dstl in #873
- Function to linearly interpolate state mutable sequences by @gawebb-dstl in #872
- Update Animated Plotter Example by @mharris-dstl in #857
- Introduce Kullback-Leibler Divegence measure and reward function by @timothy-glover in #868
- New Recursive updaters added by @spike-dstl in #859
- Polar Plotting by @gawebb-dstl in #796
- One to One Track Association by @gawebb-dstl in #624
- Azimuth elevation range model by @Carlson-J in #880
- Introduce grid based action generators and actionable movable classes by @timothy-glover in #892
- Create IsotropicPlume model and gas sensor by @timothy-glover in #850
- Adapted the square root components by @jmbarr in #916
- Shorten sensor management tutorials' simulation length by @mharris-dstl in #918
- Adding setting title functionality to AnimationPlotter by @jswright-dstl in #919
- Add convert measurement parameter to TwoDPlotter by @jswright-dstl in #909
- Added the switching term to GOSPA. by @Carlson-J in #898
- Add support for Python 3.12 by @sdhiscocks in #925
- Simplify (or at least make more standard) control models by @jmbarr in #927
- Tidy plotter initialisation and remove rectangle zoom restriction. by @mharris-dstl in #934
- Dynamically Iterated EKF by @spike-dstl in #891
- Add 3D plotting option to Plotterly by @mharris-dstl in #932
- Error-Controller BRUF and Variable-Step BRUF by @spike-dstl in #914
Fixed bugs
- Corrected update equation in Kalman tutorial by @jmbarr in #866
- Add conv measurements option to AnimatedPlotterly by @mharris-dstl in #856
- Fix track to track associations type by @sdhiscocks in #870
- Change return type and add track ID metadata to Track2GaussianDetectionFeeder by @sdhiscocks in #871
- Fix to RecursiveEnsembleUpdater by @spike-dstl in #885
- Correct UKF kappa default to match documentation by @sdhiscocks in #905
- Modify Ensemble state generation and initiator test thresholds by @sdhiscocks in #902
- Change StatePrediction and StateUpdate by @jswright-dstl in #906
- Fix bug in GridActionGenerator by @nperree-dstl in #917
- Fix error handling for 3d in Plotterly and add tests by @mharris-dstl in #931
- Fix plugins for latest versions of Python by @sdhiscocks in #956
- Fix incorrect transition model being used in Kalman Smoothers by @sdhiscocks in #945
- Fix calculation of cross-covariance in unscented_transform @sglvladi in #963
- Fixing bug which causes multiplication by Probability to return a Probability @jmbarr in #912
Documentation updates
- Remove plot style in GMPHD tutorial to fix docs build by @sdhiscocks in #867
- Improve example documentation by @mharris-dstl in #840
- Example of Bearing-only tracking by @A-acuto in #823
- Modify track fusion example to use tee and plot longest track by @sdhiscocks in #882
- Update copyright year by @jswright-dstl in #920
- Make sensor management tutorials flake-8 compliant by @mharris-dstl in #926
- Make Metrics Example Flake8 Compliant by @mharris-dstl in #928
- Reinforcement Learning Sensor Manager Example by @sgboakes in #886
- change reference to correct one by @avcuenes in #938
- Correct deleter property documentation by @jswright-dstl in #950
- Add an example showing performance differences between JPDA and EHM by @A-acuto in #861
- Fix unused variable in Comparing Multiple Trackers example by @sdhiscocks in #959
Other changes
- change unequal timesteps in animated plotter from error to warning by @mharris-dstl in #904
- Move sphinx gallery line in tutorial 10 by @mharris-dstl in #924
- NumPy 2 compatibility by @sdhiscocks in #929
- Ignore Sphinx Gallery execution times file by @sdhiscocks in #947
- Avoid test collection failure with optional dependency astropy by @sdhiscocks in #955
- Add pyehm plugin as optional tests by @sdhiscocks in #957
- Added Version Requirement for Plotly by @gawebb-dstl in #958
- Add GitHub release notes config by @sdhiscocks in #960
New Contributors
- @asaunders-dstl made their first contribution in #851
- @akenyon made their first contribution in #874
- @csherman-dstl made their first contribution in #873
- @Carlson-J made their first contribution in #880
- @avcuenes made their first contribution in #938
Full Changelog: v1.1...v1.2