Recent Releases of stone-soup
stone-soup - v1.7
Implemented enhancements
- Add multi data feeders with queues #1147 (sdhiscocks)
- Add SinglePointMeasurementInitiator #1148 (sdhiscocks)
- Seed in sensor #1150 (jswright-dstl)
- Update transition models to support backward prediction #1152 (sdhiscocks)
- Add jacobian method to combined measurement model #1154 (sdhiscocks)
- Make Clutter From Measurement Plotter More Configurable #1156 (mkierzenka)
- Add PathBasedPlatform #1161 (jswright-dstl)
- Support regulariser with multi model particle filter #979 (sdhiscocks)
- Update Kernels and documentation #1060 (jswright-dstl)
- Shallow copy track in smoothers #1126 (sdhiscocks)
- Expected Likelihood Particle Filters #802 (sglvladi)
- Added support for a 4D state vector when using a range, bearing, range rate radar model #809 (PACarniglia)
- Platform orientation calculated from previous velocity #1090 (nperree-dstl)
- Add native implementation of EHM #1169 (paulhorridge)
- PMHT tutorial and tracker #1015 (Amir-Belmekki)
- Transition and measurement models for road networks #812 (sglvladi)
- Added Dict Reader. Added Track Reader. Refactored CSV & Pandas DataFrame Reader #1164 (gawebb-dstl)
- Sample Position Action Generator and Movable #1120 (timothy-glover)
- Add ImmutableMixIn and Freezable classes #715 (erogers-dstl)
- Enable BoundingBoxReducer to filter detections in state space #1184 (sdhiscocks) ## Fixed bugs
- Fix KnownTurnRate model not using 2nd noise parameter #1153 (sdhiscocks)
- Use measuremenet_model argument in RotatingElevationBearingRange sensor #1168 (csherman-dstl)
- Fix mod_elevation handling scalar and angle type tests #1167 (sdhiscocks)
- Fix issues with particle filter tests with constraint functions #1172 (sdhiscocks)
- Fix metadata priority in Track with multi hypotheses #1175 (sdhiscocks)
- Use native Python datetime objects in GOSPA metric #1176 (sdhiscocks)
- Use
action_mappingproperty to use theCircleSamplePositionActionGeneratorin a 3D space #1178 (csherman-dstl) - Fix merging of plotting kwargs #1191 (sdhiscocks)
- Ensure StateVector/StateVectors is used in combined measurement model #1192 (sdhiscocks) ## Documentation updates
- Update Copyright Year for 2025 #1149 (timothy-glover)
- Updated the Pandas DataFrame Example and a few other small tweaks #1158 (mkierzenka)
- Add Bayesian search examples #1159 (akenyon)
- New example that shows linearised ODE as transition model #1009 (A-acuto)
- Add Loopy Belief Propogation example #1173 (jswright-dstl)
- Fix issue with docs building with new kaleido release #1189 (sdhiscocks) ## Other changes
- Fix flaky ensemble updater tests #1141 (sdhiscocks)
- Fix tests for RadarRotatingElevationBearingRange sensor #1151 (csherman-dstl)
- Fix RoadNetwork.shortest_path for networkx>=3.5 #1182 (sglvladi)
- Replace mergedeep with local merge function in plotting module #1188 (gawebb-dstl)
New Contributors
- mkierzenka made their first contribution in #1156
- Amir-Belmekki made their first contribution in #1015
- Python
Published by sdhiscocks 8 months ago
stone-soup - v1.6
Breaking changes
- Vectorise the unscented transform #1123 (sdhiscocks)
- The inputs / outputs to the
unscented_transformandgauss2sigmafunctions have been changed to a state withStateVectorsfrom a list ofStateVector.
- The inputs / outputs to the
- Rename PriorAsProposal to DynamicsProposal, and KFasProposal to KalmanProposal #1131 (sglvladi)
- Old names are still valid but are deprecated and will be removed in the next release. ## Implemented enhancements
- Implementation of Stochastic Integration Filter #1040 (0sm1um)
- Add RotatingElevationBearingRange sensor #1107 (csherman-dstl)
- Add AnimatedPolarPlotterly Class #1105 (csherman-dstl)
- Make track uncertainty alpha an optional keyword argument #1113 (iwishiwasaneagle)
- Add Optuna Sensor Manager #1106 (csherman-dstl) ## Fixed bugs
- Small error PointProcessUpdater regarding the use of the survival probability term #1099 (LG35)
- Monte Carlo Tree Search action value correction #1108 (timothy-glover)
- Fix StateMutableSequence to allow for subclasses with mandatory properties #1111 (yoshum)
- Use weakref for prior priors #1112 (sdhiscocks)
- Check for State type explicitly with StateMutableSequence instance checks #1116 (sdhiscocks)
- Kalman Smoother check GaussianState and Prediction/Update separately #1122 (sdhiscocks)
- Allow setting of gm_method at instance level for PDAUpdater #1134 (sdhiscocks)
- Fixing GOSPA metric to work with ParticleState #1139 (sdhiscocks)
- Handle 9D state in CartesianToElevationBearingRangeRate #1144 (lgolstongov)
- Enable pickling of possible weakrefs in Particle and Prediction #1127 (sdhiscocks) ## Documentation updates
- Update Read The Docs configuration file #1110 (sdhiscocks)
- Add docs for tracker update_tracker method #1132 (sdhiscocks) ## Other changes
- Multi-Frame Assignment Modifications #1114 (sdhiscocks)
- Accumulated State Densities Modifications #1115 (sdhiscocks)
- Fix flaky StochasticIntegrationUpdater test #1117 (sdhiscocks)
- Use full test template for Python 3.13 CircleCI config #1124 (sdhiscocks)
New Contributors
- LG35 made their first contribution in #1099
- yoshum made their first contribution in #1111
- iwishiwasaneagle made their first contribution in #1113
- lgolstongov made their first contribution in #1144
- Python
Published by csherman-dstl 12 months ago
stone-soup - v1.5
Breaking changes
- Sensor performance improvement #1084 (sdhiscocks)
- If you have created a custom sensor by sub classing from
SimpleSensoryou will need to addmeasurement_modelargument to theis_detectablemethod.
- If you have created a custom sensor by sub classing from
- Vectorise logpdf mod_angle calculations in angle based models #1097 (sdhiscocks)
- If you have created a custom model sub classing from one of the models in stonesoup.models.measurement.nonlinear, you may need to add a new static method
_typed_vectorreturning a vector containing custom types used (e.g.Bearing) and rename your customfunctionmethod to_function.
- If you have created a custom model sub classing from one of the models in stonesoup.models.measurement.nonlinear, you may need to add a new static method
- Various package updates #1092 (sdhiscocks)
- Python 3.8 support has been dropped. Please use Python 3.9 or greater. ## Implemented enhancements
- Update Plotter Labels #1071 (gawebb-dstl)
- Add CLEAR MOT
MetricGenerator#1068 (kopytjuk) - Upgrade: more stable mean and covar evaluation of particle state update #1083 (A-acuto)
- Extend
MetricGeneratorinterface withgenerator_nameand add it toClearMotMetrics#1082 (kopytjuk) - Particle filter proposal implementation #1080 (A-acuto)
- Addition of Efficient/Lagrangian Point-Mass Filter #1052 (pesslovany) ## Fixed bugs
- Fix ASD with OOSM #1075 (sdhiscocks)
- Add init file for proposal class #1091 (A-acuto)
- Handle MFA infeasible primal problem #1095 (sdhiscocks) ## Documentation updates
- Add cell tracking demo including optimisation of tracking parameters #1069 (nwitts-dstl)
- Improve polar plotting example #1078 (csherman-dstl)
- Add actionable platform example #1077 (akenyon)
- Add CLEAR MOT example #1086 (kopytjuk) ## Other changes
- Minor Improvements August 24 #1074 (gawebb-dstl)
- Make passing measurements in distance hypothesiser optional #1085 (sdhiscocks)
- Don't set global random seed in tests #1064 (sdhiscocks)
New Contributors
- nwitts-dstl made their first contribution in #1069
- pesslovany made their first contribution in #1052
- Python
Published by sdhiscocks over 1 year ago
stone-soup - v1.4
Implemented enhancements
- CLEAR MOT Associator #1017 (kopytjuk) ## Fixed bugs
- Fix UncertaintyReward bug and improve ExpectedKLDivergence #1066 (timothy-glover)
- Handle distance of 0 correctly in TrackToTruth associator #1063 (sdhiscocks) ## Documentation updates
- Update AKKF tutorial #1061 (jswright-dstl) ## Other changes
- GOSPAMetric: Avoid unnecessary copies and inefficient masking #1059 (marvonlar)
- Fix spelling and grammar issues #1062 (jswright-dstl)
- Fix plotting tests due to typo in warning message #1065 (sdhiscocks)
New Contributors
- Python
Published by sdhiscocks over 1 year ago
stone-soup - v1.3
Implemented enhancements
- Add SMC-PHD components #798 (sglvladi)
- Add SMC-PHD initiator implementation #968 (sglvladi)
- Added TrackingStateSpaceDistanceGater #973 (gawebb-dstl)
- Progress Trackers Manually: Option E #980 (gawebb-dstl)
- Add logic to allow CompoundTimeRange to initiate with CompoundTimeRange #993 (jswright-dstl)
- Add showplottraces method to plotly #1004 (csherman-dstl)
- Allow generation of predicted measurement without measurement noise #1012 (sdhiscocks)
- PDA Updater #913 (jmbarr)
- Cubature Kalman Filter #948 (jmbarr)
- Add axis labels for 1d plotting in Plotterly, add option to pass color to legend in Plotter.plotgroundtruths #1019 (jswright-dstl)
- Add Joseph form of covariance calculation to Kalman Updater #1028 (csherman-dstl)
- Added id property to Platform & property to create a GroundTruthPath from a Platform #1026 (gawebb-dstl)
- Implementation of Loopy Belief Propagation (LBP) #1022 (marcelh71)
- Monte Carlo Tree Search Sensor Manager and Autonomous STE Examples #1023 (timothy-glover)
- Update UncertaintyRewardFunction to return tracks and minor modifications #1048 (timothy-glover)
- Set weakref to particle parent parent, rather than None #1044 (sdhiscocks)
- Use more efficient algorithm in GOSPA assignment #1033 (sdhiscocks)
- Adaptive kernel Kalman filter (AKKF) #1014 (jswright-dstl) ## Fixed bugs
- Fixing GOSPA metric to work with ParticleState #967 (ollie-digi2al)
- Change ParticleState Length check in KLD measure for efficiency #970 (timothy-glover)
- Added Hash Functions to
TimeRangeandCompoundTimeRange#981 (gawebb-dstl) - Fix issue with using un-resampled prior in regulariser #978 (sdhiscocks)
- Remove hardcoded Metrics from MetricPlotter #982 (jswright-dstl)
- Update Plotterly to name axes being plotted #988 (jswright-dstl)
- Correct calculation of net orientation of PlatformMountables #966 (edwheelhouse-dstl)
- Allow setting of colour to measurements and clutter in Plotterly #990 (sdhiscocks)
- Change inv() usage to pinv() in ChernoffUpdater #989 (jswright-dstl)
- Change usage of inv() in Mahalanobis to pinv() #991 (jswright-dstl)
- Handle linalg error in gauss2sigma with Cholesky decomposition #992 (sdhiscocks)
- Fixes to plotting/legends in AnimatedPlotterly #997 (sdhiscocks)
- Fix documentation and covariance calculation for Constant Turn Transition Models #1000 (csherman-dstl)
- Use walrus operator to omit cases where no tracks exist in associations #1021 (jswright-dstl)
- Fix Inverse Function in CartesianToElevationBearingRangeRate #1024 (gawebb-dstl)
- Fix incorrect generator kwargs with grid moveables #1036 (sdhiscocks)
- Fix CartesianToElevationBearingRangeRate inverse velocity and clutter plotting #1037 (gawebb-dstl)
- Fix GaussianMixtureInitiator to use a MultiMeasurementInitiator #1042 (jswright-dstl)
- Minor deprecation fixes #1045 (sdhiscocks)
- Fix repr on Base class #1049 (sdhiscocks)
- Only use one track state per timestamp in (G)OSPA metric #1056 (sdhiscocks) ## Documentation updates
- Add iterated module to documentation #964 (spike-dstl)
- Example of Ensemble Kalman filter with Out-Of-Sequence measurements #915 (A-acuto)
- Adding an example showing inverse-time dynamics method to deal with OOSM #940 (A-acuto)
- Adding an example showing how to deal with OOSM using a buffer of measurements #939 (A-acuto)
- Adding an example showing Particle filter algorithm with OOSM #965 (A-acuto)
- Example of data measurement fusion from two sensors, performance comparison #862 (A-acuto)
- Adding an example comparing Particle filters and kalman filters using track fusion #875 (A-acuto)
- Add 3D plotting example #983 (mharris-dstl)
- Add repo CITATION file #987 (sdhiscocks)
- Create subfolder structure for examples #994 (sdhiscocks)
- Improve thumbnails in example gallery #996 (sdhiscocks)
- Fixes for Sphinx 7.3 and sphinx-gallery 0.16 #998 (sdhiscocks)
- Fix issue with nested sections TOC tree in documentation #1003 (sdhiscocks)
- Adding an example showing an explicit MHT application using MFA components #954 (A-acuto)
- Adding an example of extended object tracking (EOT) #969 (A-acuto)
- Add download link to OpenSky Demo CSV and full links to icons #1051 (sdhiscocks) ## Other changes
- Suppress warnings with Sphinx config cache #985 (sdhiscocks)
- Add type checking for model_list in CombinedGaussianTransitionModel #1020 (jswright-dstl)
- Update docs link GitHub workflow #1005 (sdhiscocks)
- Fix links to source code from docs "Edit on GitHub" links #1034 (sdhiscocks)
- Update docs link action to new name #1038 (sdhiscocks)
- Include slow tests on CircleCI #1047 (sdhiscocks)
- Fix failing test for AKKF proposal multivariate sampling to compare mean of particle state #1057 (jswright-dstl)
New Contributors
- ollie-digi2al made their first contribution in #967
- marcelh71 made their first contribution in #1022
- Python
Published by sdhiscocks over 1 year ago
stone-soup - v1.2
What's Changed
Breaking changes
Change how sensor parameters are passed to action generators by @nperree-dstl in https://github.com/dstl/Stone-Soup/pull/901
- ActionableProperty has a
generator_kwargs_mappingdictionary 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_valueinstead ofresolutions=dict() - When creating a new sensor with an ActionableProperty, use the
generator_kwargs_mappingto map sensor properties to ActionGenerator properties where required.
- ActionableProperty has a
Sensor management with actionable movables by @akenyon in https://github.com/dstl/Stone-Soup/pull/943
- Sensor managers now take a set of sensors and a set of platforms so positional arguments order has changed
- Fix: set
reward_functionusing kwargs (e.g.reward_function=…) - Import locations have changed for the base classes Action, ActionGenerator, Actionable and ActionableProperty.
- Fix: import all from new location,
stonesoup.sensormanager.action
Implemented enhancements
- Add metric MultiManager and MetricPlotter by @rcgorman-dstl in https://github.com/dstl/Stone-Soup/pull/811
- Introduce ability to constrain particle states in ParticleUpdater and MCMCRegulariser by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/855
- Bool to return reward for BruteForce and Optimise sensor managers by @asaunders-dstl in https://github.com/dstl/Stone-Soup/pull/851
- Resampling dependant regularisation in ParticleUpdater by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/869
- Minor Addition and Changes to MultiMeasurementInitiator by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/835
- Adding greedy sensor manager by @akenyon in https://github.com/dstl/Stone-Soup/pull/874
- Add GaussianMixtureInitiator, ASDGaussianInitiator and EnsembleInitiator by @csherman-dstl in https://github.com/dstl/Stone-Soup/pull/873
- Function to linearly interpolate state mutable sequences by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/872
- Update Animated Plotter Example by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/857
- Introduce Kullback-Leibler Divegence measure and reward function by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/868
- New Recursive updaters added by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/859
- Polar Plotting by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/796
- One to One Track Association by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/624
- Azimuth elevation range model by @Carlson-J in https://github.com/dstl/Stone-Soup/pull/880
- Introduce grid based action generators and actionable movable classes by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/892
- Create IsotropicPlume model and gas sensor by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/850
- Adapted the square root components by @jmbarr in https://github.com/dstl/Stone-Soup/pull/916
- Shorten sensor management tutorials' simulation length by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/918
- Adding setting title functionality to AnimationPlotter by @jswright-dstl in https://github.com/dstl/Stone-Soup/pull/919
- Add convert measurement parameter to TwoDPlotter by @jswright-dstl in https://github.com/dstl/Stone-Soup/pull/909
- Added the switching term to GOSPA. by @Carlson-J in https://github.com/dstl/Stone-Soup/pull/898
- Add support for Python 3.12 by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/925
- Simplify (or at least make more standard) control models by @jmbarr in https://github.com/dstl/Stone-Soup/pull/927
- Tidy plotter initialisation and remove rectangle zoom restriction. by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/934
- Dynamically Iterated EKF by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/891
- Add 3D plotting option to Plotterly by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/932
- Error-Controller BRUF and Variable-Step BRUF by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/914 ### Fixed bugs
- Corrected update equation in Kalman tutorial by @jmbarr in https://github.com/dstl/Stone-Soup/pull/866
- Add conv measurements option to AnimatedPlotterly by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/856
- Fix track to track associations type by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/870
- Change return type and add track ID metadata to Track2GaussianDetectionFeeder by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/871
- Fix to RecursiveEnsembleUpdater by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/885
- Correct UKF kappa default to match documentation by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/905
- Modify Ensemble state generation and initiator test thresholds by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/902
- Change StatePrediction and StateUpdate by @jswright-dstl in https://github.com/dstl/Stone-Soup/pull/906
- Fix bug in GridActionGenerator by @nperree-dstl in https://github.com/dstl/Stone-Soup/pull/917
- Fix error handling for 3d in Plotterly and add tests by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/931
- Fix plugins for latest versions of Python by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/956
- Fix incorrect transition model being used in Kalman Smoothers by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/945
- Fix calculation of cross-covariance in unscented_transform @sglvladi in https://github.com/dstl/Stone-Soup/pull/963
- Fixing bug which causes multiplication by Probability to return a Probability @jmbarr in https://github.com/dstl/Stone-Soup/pull/912 ### Documentation updates
- Remove plot style in GMPHD tutorial to fix docs build by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/867
- Improve example documentation by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/840
- Example of Bearing-only tracking by @A-acuto in https://github.com/dstl/Stone-Soup/pull/823
- Modify track fusion example to use tee and plot longest track by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/882
- Update copyright year by @jswright-dstl in https://github.com/dstl/Stone-Soup/pull/920
- Make sensor management tutorials flake-8 compliant by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/926
- Make Metrics Example Flake8 Compliant by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/928
- Reinforcement Learning Sensor Manager Example by @sgboakes in https://github.com/dstl/Stone-Soup/pull/886
- change reference to correct one by @avcuenes in https://github.com/dstl/Stone-Soup/pull/938
- Correct deleter property documentation by @jswright-dstl in https://github.com/dstl/Stone-Soup/pull/950
- Add an example showing performance differences between JPDA and EHM by @A-acuto in https://github.com/dstl/Stone-Soup/pull/861
- Fix unused variable in Comparing Multiple Trackers example by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/959 ### Other changes
- change unequal timesteps in animated plotter from error to warning by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/904
- Move sphinx gallery line in tutorial 10 by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/924
- NumPy 2 compatibility by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/929
- Ignore Sphinx Gallery execution times file by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/947
- Avoid test collection failure with optional dependency astropy by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/955
- Add pyehm plugin as optional tests by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/957
- Added Version Requirement for Plotly by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/958
- Add GitHub release notes config by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/960
New Contributors
- @asaunders-dstl made their first contribution in https://github.com/dstl/Stone-Soup/pull/851
- @akenyon made their first contribution in https://github.com/dstl/Stone-Soup/pull/874
- @csherman-dstl made their first contribution in https://github.com/dstl/Stone-Soup/pull/873
- @Carlson-J made their first contribution in https://github.com/dstl/Stone-Soup/pull/880
- @avcuenes made their first contribution in https://github.com/dstl/Stone-Soup/pull/938
Full Changelog: https://github.com/dstl/Stone-Soup/compare/v1.1...v1.2
- Python
Published by sdhiscocks about 2 years ago
stone-soup - v1.1 Release
Implemented enhancements:
- Bernoulli Particle Filter by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/815
- New resampling methods and example by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/817
- Add a SingleTargetMixtureTracker by @A-acuto in https://github.com/dstl/Stone-Soup/pull/825
- Kafka readers and writers by @sglvladi in https://github.com/dstl/Stone-Soup/pull/799
- One to one Assignment for Association by @orosoman-dstl in https://github.com/dstl/Stone-Soup/pull/664
- Add Mapping to plot_sensors. Hide plotting elements in Plotterly by @gawebb-dstl in https://github.com/dstl/Stone-Soup/pull/836
Fixed bugs:
- Handle case of no tracks with MFA by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/814
- Add LRU cache to Updater predict measurement methods by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/826
- Fix edge case with mod elevation for 2π by @jmbarr in https://github.com/dstl/Stone-Soup/pull/828
- Fix recursion error when printing objects by @sglvladi in https://github.com/dstl/Stone-Soup/pull/832
- Fix bug in BaseRepr.whitespace_remove() walrus expression by @sglvladi in https://github.com/dstl/Stone-Soup/pull/839
- Fix ellipse plot by @mharris-dstl in https://github.com/dstl/Stone-Soup/pull/843
- Regulariser amendment and implementation in ParticleUpdater by @timothy-glover in https://github.com/dstl/Stone-Soup/pull/830
- Fix non linear constant turn transition model by @orosoman-dstl in https://github.com/dstl/Stone-Soup/pull/844
Documentation updates:
- Plot FOV on Sensor Management tutorials by @nperree-dstl in https://github.com/dstl/Stone-Soup/pull/816
- Set minimum version for sphinxrtdtheme by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/833
- Change plot in Resampler Tutorial to display correct CDF by @spike-dstl in https://github.com/dstl/Stone-Soup/pull/834
Other changes:
- Fix issue with failing YAML serialisation tests by @sdhiscocks in https://github.com/dstl/Stone-Soup/pull/810
- Python
Published by sdhiscocks over 2 years ago
stone-soup - v1.0 Release
Breaking changes:
- Drop Python 3.7 support, and remove references to beta #808 (sdhiscocks)
- New minimum Python version 3.8
Implemented enhancements:
- Plotting Improvements #795 (gawebb-dstl)
- Add a Schmidt-Kalman version of the Kalman Updater #794 (jmbarr)
- Add log weight property to Particle State #791 (sdhiscocks)
- Add animated variation of plotterly #789 (mharris-dstl)
- Modify SystematicResampler to enable down/upsampling #786 (timothy-glover)
- Create regulariser object and MCMC particle regulariser #785 (timothy-glover)
- Created RadarBearing and RadarRotatingBearing Sensors #778 (timothy-glover)
- add k-d tree tutorial and update tree sub-module #771 (rcgorman-dstl)
- Add track stitching class and example. #764 (spike-dstl)
- Added an example within the documentation for custom readers supporting pandas DataFrames. #707 (BenjaminFraser)
Fixed bugs:
- Enable Forward Declaration of Type Hints for Properties #806 (orosoman-dstl)
- Fix np.mean for StateVectors #788 (sdhiscocks)
- Add is_clutter_detectable method to sensors #787 (jswright-dstl)
- Cast noise_covar value to a CovarianceMatrix when initialising a MeasurementModel #775 (gawebb-dstl)
Documentation updates:
- Fix issue with kD-tree example not building #807 (sdhiscocks)
- Change track stitching example initiator #804 (sdhiscocks)
- Add multi_tracker_example #790 (mharris-dstl)
Other changes:
- Create sampler module and gaussian mixture sampling function #793 (timothy-glover)
- Use temporary file for FITS Reader tests #777 (sdhiscocks)
- Implement multi-frame assignment algorithm #568 (joldf)
- Python
Published by sdhiscocks over 2 years ago
stone-soup - v0.1b12 Release
Breaking changes:
- Rotation matrix fix #762 (edwheelhouse-dstl)
- This may impact previous parameters or results as rotation matrix was defined incorrectly.
Implemented enhancements:
- Implement analytic Jacobian for CartesianToElevationBearingRangeRate. #773 (mattbrown11)
- Average uncertainty reward #768 (mharris-dstl)
- Make Orbital classes and functions compatible with State Vectors #752 (jmbarr)
- TimeBasedPlotter default timestamps and Notebook animation docs #751 (sdhiscocks)
- Add logpdf method to models, and implement in particle filter #744 (sdhiscocks)
- Add Accumulated State Densities Filter #734 (jogehl)
- Add Multi-model and Rao-Blackwellised versions of particle filter #719 (Isaac-JenkinsRA)
Fixed bugs:
- Do not draw line between not_update states. #769 (mattbrown11)
- Fix Angle.__abs__ such that it always returns a positive value #763 (etfrogers-dstl)
- Ensure ranges are floats in optimise sensor manager #759 (sdhiscocks)
- Fix covar for ConstantNthDerivative model #758 (KaidosUncle)
- Removing redundant calculation #756 (mharris-dstl)
- Add if else check on state_vector in _new_target function #755 (mharris-dstl)
- Enable pickling of Mahalanobis measure #750 (sdhiscocks)
- Modified dotproduct to work with StateVectors #743 (jmbarr)
- Fixed TypeError being thrown on certain Gaussian states in the Plotter.plot_tracks function #738 (gawebb-dstl)
Documentation updates:
- Add more documentation for GaussianMixtureReducer. #770 (mattbrown11)
- Update copyright year to 2023 #761 (spike-dstl)
- Simple update of SIAP metric reference in Metrics example. #753 (jmbarr)
- Add ESS Resampler to particle filter tutorial #747 (spike-dstl)
- Correct acronym for (G)OSPA in documentation #741 (jswright-dstl)
- Maintain order of truths in tutorials for reproducibility #737 (sdhiscocks)
- Fixed typo in sensor management tutorial #736 (sgboakes)
- State time ordered plotter #379 (gawebb-dstl)
Other changes:
- Fix test comparing platform angles close to ±π #766 (sdhiscocks)
- Add Python 3.11 to CI builds #745 (sdhiscocks)
- Python
Published by sdhiscocks almost 3 years ago
stone-soup - v0.1b11 Release
Implemented enhancements:
- Remove repeated code in sensor #732 (gawebb-dstl)
- Implement generic readers for HDF5 #731 (cpbrophy)
- Add clutter model usage in RadarRotatingBearingRange #723 (jswright-dstl)
- Add 2d density plot to Plotter #458 (gawebb-dstl)
Fixed bugs:
- Fix bug with pre-fetching noise in cases of only a single target #724 (sdhiscocks)
- Add instance check for reward function #722 (jswright-dstl)
- Fix plotting error when a track only has a single state #721 (sdhiscocks)
- Fix mapping in TPR tree causing error when mapping is tuple #720 (sdhiscocks)
Documentation updates:
- Disable documentation table of content entries for objects #735 (sdhiscocks)
- Update maintainer email address #730 (sdhiscocks)
- Actionable sensor updates #726 (sglvladi)
Other changes:
- Adding tests for the copying of tracks #725 (gawebb-dstl)
- Python
Published by sdhiscocks over 3 years ago
stone-soup - v0.1b10 Release
Breaking changes:
- Standardise clearable cached properties on Stone Soup Base/Property #711 (sdhiscocks)
- If code directly modifies mutable objects on types or models, including values returned from certain attributes, this will cause an issue with cached values. This use is uncommon (not at all present in main code base) so unlikely to affect your code.
- Add caching of mean and covar on ParticleState #686 (sdhiscocks)
- Same as above.
- State vectors iterator #677 (jmbarr)
- When iterating over
StateVectorsclass,StateVectorobjects are now yielded. This is similar to iterating over the transpose ofStateVectorspreviously.
- When iterating over
- Add Nonparametric PDA and gate out non valid measurements #636 (sdhiscocks)
- By default, now only hypotheses within the validation gate are returned. The old behaviour can be restored by adding
include_all=Truewhen initiating the PDA hypothesiser.
- By default, now only hypotheses within the validation gate are returned. The old behaviour can be restored by adding
- Add options to track to track association algorithm #634 (orosoman-dstl)
- The
TrackToTrackassociator has been renamed toTrackToTrackCounting. This is to accommodate having multiple track to track associators, and make clear that this is using the counting technique for association. This component now also has some additional parameters added.
- The
- Modify ParticleState so it has StateVectors and remove unnecessary Particles class #581 (nperree-dstl)
- The
ParticleStateis now initialised withStateVectorsand an array forweight, rather than from the intermediate step of have aParticlesobject. Theparticlesattribute now returns a list ofParticleobjects. A list of particles can also still be used by passing thestate_vectorasNone, and addingparticle_list=particles.
- The
- Add Sensor Management #503 (nperree-dstl)
- Sensors now have their own timestamp, and such on rotating radar sensors, the dwell centre (renamed from dwell center) is now a
StateVector(previously aState) as time stamp is no longer required.
- Sensors now have their own timestamp, and such on rotating radar sensors, the dwell centre (renamed from dwell center) is now a
Implemented enhancements:
- Pre-fetch noise values for sensor measure method #712 (sdhiscocks)
- Modify assign2D to exploit NumPy indexing #709 (sdhiscocks)
- Add the Sliding Innovation Filter #706 (sdhiscocks)
- Update marker styles for tracks in plotters #705 (sdhiscocks)
- Add argument for number of points on ellipse polygon with plotly plotter #703 (sdhiscocks)
- Add new plotter based on plotly #699 (sdhiscocks)
- Modify uncertainty reward so sensors measure all tracks together #691 (sdhiscocks)
- Add Squared Mahalanobis distance and cache covariance matrix inversions #684 (sdhiscocks)
- Add ChernoffUpdater class and track feeder #681 (ekhunter123)
- Enable use of detections' measurement model in kDTree #679 (sdhiscocks)
- Add optional kDTree to Gaussian Mixture Reducer merge step #678 (sdhiscocks)
- Enable use of kDTree with Gaussian Mixture Hypothesiser #676 (sdhiscocks)
- Ensemble Square Root Updater #669 (0sm1um)
- Add additional functionality into Plotter class. #661 (jswright-dstl)
- Fix ActionGenerator so resolution of actions available is not hard coded #657 (nperree-dstl)
- Add parameter to limit number of components in GaussianMixtureReducer #649 (ekhunter123)
- Add max range to simple Radars #646 (hpritchett-dstl)
- Modify EnsembleState to use StateVectors #644 (sdhiscocks)
- Add option to specify number of targets in MultiTargetGroundTruthSimulator #637 (ekhunter123)
- Ensemble Kalman Filter Algorithm and Data Type #625 (0sm1um)
Fixed bugs:
- Improve logic of readonly property checking to avoid double setting #714 (etfrogers-dstl)
- Reduce redundant calls to mod_angle method in Angle type #710 (sdhiscocks)
- Plotter minor fix #702 (orosoman-dstl)
- Fix averaging with StateVectors #700 (sdhiscocks)
- Enable proper shallow copying of state mutable sequences #696 (sdhiscocks)
- Fix OptimizeBruteSensorManager #694 (nperree-dstl)
- Changed ruamel version requirement to 0.16.5 #693 (gawebb-dstl)
- Remove
hasattrin Measures to avoid callingmeantwice #680 (sdhiscocks) - Fix Plotter raising error when no tracks available to plot #675 (sdhiscocks)
- Switch order of track and truth in SIAP metrics measure #671 (sdhiscocks)
- Fix tree data associators to work with particle states #662 (sdhiscocks)
- Fix incorrect arguments in particle predictor #660 (sdhiscocks)
- Fix typo in MultiTargetGroundTruthSimulator #658 (ekhunter123)
- Fix bugs when dealing with Gaussian mixtures #648 (ekhunter123)
Documentation updates:
- Move additional filter tutorials to subsection and fix binder post build script #704 (sdhiscocks)
- Tutorial 3 graph legend fix #701 (nperree-dstl)
- Update Metrics.py #698 (jswright-dstl)
- Update install instructions to make compatible with zsh #697 (DomonkosCs)
- Fix layout of documentation galleries #692 (sdhiscocks)
- Reset NumPy random state when running Sphinx-Gallery examples #685 (sdhiscocks)
- Update references and documentation of Updater classes #683 (ekhunter123)
- Fix plotting of track state in moving platform example #672 (sdhiscocks)
- Add Image Readers to documentation #670 (sdhiscocks)
- Add Information Filter Tutorial #667 (jwragg-dstl)
- Add example of track-to-track fusion #666 (ekhunter123)
- Add optimized sensor management tutorial #665 (nperree-dstl)
- Use latest Python version on read the docs #663 (sdhiscocks)
- Add Sensor Management Tutorials #659 (nperree-dstl)
- Correct spelling mistakes, typos and links. #654 (jswright-dstl)
- Update final plot of tutorial 10 to use Plotter class. #653 (jswright-dstl)
- ADS-B Tracking Demo Fixes #650 (hpritchett-dstl)
- Move contract reference from LICENSE file to documentation #643 (sdhiscocks)
- Fix plotting for Multi Sensor Moving Platform Simulator #640 (sdhiscocks)
- Create MTT 3D Platform example #638 (PACarniglia)
Other changes: - Change 2d assignment implementation to SciPy version #717 (sdhiscocks) - Directly set arguments when instantiating a class #713 (sdhiscocks) - Migrate from setup.py to pyproject.toml based build #708 (sdhiscocks) - Drop # -*- coding: utf-8 -*-and # coding: utf-8 from files #687 (jonasdlindner) - test_ess_inequality fails sometimes #674 (jmbarr)
- Python
Published by sdhiscocks over 3 years ago
stone-soup - v0.1b9 Release
Breaking changes:
- Make measurement model optional in measurement-based initiators #589 (ekhunter123)
- The argument order has changed for instantiating a
MultiMeasurementInitiator. The change has no impact if using keywords.
- The argument order has changed for instantiating a
- Add nonlinear constant turn models. Update transition model class hierarchy #506 (DaveKirkland)
- The linear model
ConstantTurnhas been renamed toKnownTurnRate, with a fixed turn rate as before. A new non-linear model calledConstantTurnhas been added, which operates with a turn rate defined as part of the state space.
- The linear model
- Trackers are Iterables instead of Generators #415 (gawebb-dstl)
- Trackers are no longer generators, and do not restart the tracking process if you stop and restart iterating over them.
- The previously optionally used
tracks_gen()method has been removed from trackers. If using this method, simply iterating over the tracker instead: ```diff- for time, tracks in tracker.tracks_gen():
- for time, tracks in tracker: ```
Implemented enhancements:
- Add sensor suite type #621 (oharrald-Dstl)
- Add Composite Tracking Modules #618 (oharrald-Dstl)
- Add a RandomState parameter to the clutter model #587 (ekhunter123)
- Added 3D Plotting Functionality to plotter.py #584 (PACarniglia)
- Added CFAR and CCL feeders #494 (sgjkang4)
Fixed bugs:
- Prevent track from birth component w/o detection #628 (ekhunter123)
- Cast correction term to float in LCCUpdater #627 (ekhunter123)
- Fix time steps based deleter #623 (hpritchett-dstl)
- Fix use of global random state in simulators #622 (sdhiscocks)
- Fix SIAP ID Correctness Division Error #619 (oharrald-Dstl)
- Enable Kalman Smoother to work with multi-hypothesis states #586 (sdhiscocks)
Documentation updates:
- Fix video processing tutorial #635 (sglvladi)
- Fix breadcrumbs in documentation #632 (sdhiscocks)
- Fix typo, and remove broken link (DOI URL can still be used) #614 (kinow)
- Minor doc typo fixes on non linear measurement models #606 (sdhiscocks)
- Fix a bug in Tutorial 09 #596 (orosoman-dstl)
- Fix Tracking ADS-B Data Demo #590 (hpritchett-dstl)
- Fix a minor mistake with generating clutter in tutorial 11 #583 (orosoman-dstl)
- Add diagrams to JPDA tutorial #353 (orosoman-dstl)
Other changes:
- Update CircleCI artifacts redirector #626 (sdhiscocks)
- Include full Python version in cache key for CircleCI builds #616 (sdhiscocks)
- Fix linear measurement model tests #600 (sdhiscocks)
- Python
Published by sdhiscocks almost 4 years ago
stone-soup - v0.1b8 Release
Breaking changes:
- Return metrics in a dictionary #570 (orosoman-dstl)
- Metrics are no longer returned as a set. Instead, to retrieve a particular metric, you should pass the metric title as key to the returned metrics dictionary.
- If you need to iterate through metrics, use
.values().
- Drop Python 3.6 support #569 (sdhiscocks)
- Recommend upgrading to Python 3.7 or greater
Implemented enhancements:
- PCRB Metric #566 (sglvladi)
- Introduce resampler that checks if resampling required #563 (orosoman-dstl)
- Improve readability and limit size of repr output #549 (orosoman-dstl)
- Add constant jerk model simulation for platforms #544 (oharrald-Dstl)
- Add method to copy prior state properties of a platform across to a new state #543 (oharrald-Dstl)
- Add Clutter Model that can be used with radar Sensors #535 (ekhunter123)
- Create Orbital class for OrbitalState to inherit from #522 (nperree-dstl)
- Add SIAP alternative generator #505 (oharrald-Dstl)
- Add hidden Markov model implementation for classification #504 (oharrald-Dstl)
- Refactor YAML serialiser as ruamel.yaml plugin #484 (sdhiscocks)
Fixed bugs:
- Fix probability hypothesis equality check #573 (oharrald-Dstl)
- Add metadatas limit to StatesLengthLimiter #541 (oharrald-Dstl)
- Correct bug when dealing with duplicate tags #498 (ekhunter123)
Documentation updates:
- Fix typo in documentation for ESSResampler #567 (orosoman-dstl)
- Fix IDSIAP docstring bullet list error #565 (oharrald-Dstl)
Other changes:
- Update year. #574 (jswright-dstl)
- Add cache version environment variable to CircleCI config #542 (sdhiscocks)
- Pass 1d-arrays to scipy.distance #534 (sdhiscocks)
- Update pip in CircleCI build #533 (sdhiscocks)
- Add Python 3.10 to CircleCI builds #532 (sdhiscocks)
- Python
Published by oharrald-Dstl about 4 years ago
stone-soup - v0.1b7 Release
Implemented enhancements:
- Add jacobian() to Linear model and add kwarg handling to jacobian(). #497 (DaveKirkland)
- Add a mean uncertainty metric #496 (sdhiscocks)
- Added SingleImageFileReader #492 (sgjkang4)
- Vectorise Jacobian calculation #491 (sdhiscocks)
- Information filter #467 (jmbarr)
Fixed bugs:
- Remove unnecessary additional noise in radar fov check #483 (hpritchett-dstl)
- Fix multi-transition platform loop #482 (oharrald-Dstl)
- set dwell_center.timestamp equal to incoming timestamp if dwell_cente… #475 (alexiad1)
- Fix plotter metric so it doesn't fail when there are no tracks #464 (nperree-dstl)
- Fix deterministic use of random seed #461 (joldf)
- Fix figure size/scale for metrics tables #459 (sdhiscocks)
- CombinedNonlinearGaussianTransitionModel now inherits from NonLinearModel #452 (idorrington-dstl)
- Fixed an error in the angle calculations in smooth transition model maker #449 (idorrington-dstl)
- Handle OSError if libspatialindex fails to load for rtree dependency #448 (sdhiscocks)
Documentation Updates:
- Update project logo #501 (sdhiscocks)
- Fix the GMPHD Tutorial to include the birth component #489 (ekhunter123)
- Add OpenSky demo #488 (hpritchett-dstl)
- Ensures all tracks plotted in tutorial 9 #466 (sflorence-dstl)
- Minor correction to video processing demo #463 (sglvladi)
- Add tutorial on the GMPHD filter in Stone Soup #455 (ekhunter123)
- Updating dependencies in README #451 (idorrington-dstl)
- Add note about using mixture tracker for (J)PDA in final tutorial #450 (sdhiscocks)
- Python
Published by sdhiscocks over 4 years ago
stone-soup - v0.1b6 Release
Breaking changes:
- Refactor platforms and sensors to remove weakrefs #427 (etfrogers-dstl)
- The way platforms and sensors are linked have changed. Properties like
rotation_offsetandmounting_offsetare now part of the sensor, rather than being provided when adding the sensor to a platform.
- The way platforms and sensors are linked have changed. Properties like
Implemented enhancements:
- Multimap measures #445 (idorrington-dstl)
- User random seeds #444 (idorrington-dstl)
- Speed up track to truth associator by avoiding searching of all times #431 (sdhiscocks)
- Plotter group measurements/clutter into single plot call #430 (sdhiscocks)
- Alpha-Beta updater #398 (jmbarr)
- Add tree data structures for gating #145 (sdhiscocks)
- Create OpenSky Network REST API Reader #120 (sdhiscocks)
Fixed bugs:
- Fix Weighted Gaussian Prediction to inherit from correct parent #447 (sdhiscocks)
- Fixing timestamps for the video reader #437 (idorrington-dstl)
- Add mapping to Combined Measurement Model #429 (sdhiscocks)
Documentation updates:
- Fix documentation build caused by type hints #442 (sdhiscocks)
- Fix missing thumbnails in sphinx gallery examples #440 (sdhiscocks)
- Fix UAV demonstration sensor parameters #439 (sdhiscocks)
- Add DOI badge to README #434 (sdhiscocks)
- Python
Published by sdhiscocks over 4 years ago
stone-soup - v0.1b5 Release
Breaking changes:
- Add option to delete posterior predictions from deleted tracks #417 (oharrald-Dstl)
- This change may cause issues with optional arguments on deleters, requiring that keyword is included in initialisation arguments.
- Include timestamp with Initiator and allow predictions with multi measurement initiator #406 (sdhiscocks)
- Any custom initiators or calls to existing initiators should be updated to include a timestamp argument.
Implemented enhancements:
- Add mapping to CovarianceBasedDeleter #416 (oharrald-Dstl)
- Modify AssociationSet types to have a set-like interface #405 (oharrald-Dstl)
Fixed bugs:
- Fix gm_reduce_single. #426 (DaveKirkland)
- Match colours of ellipses, and fix mappings with track uncertainty in Plotter #422 (sdhiscocks)
- Ensure registered subclasses are in parent subclasses list #407 (sdhiscocks)
Documentation updates:
- Add type annotations to base classes, and shorten type hints in documentation #413 (sdhiscocks)
- Add type hints and update documentation on Models #412 (sdhiscocks)
- Add deleter and initiator base class type hints and minor doc changes #410 (sdhiscocks)
- Add DataAssociator and Hypothesiser type hints, and passthrough kwargs #409 (sdhiscocks)
- Sensor and platform minor documentation changes #408 (sdhiscocks)
- Add conda installation instructions and PyPI/Conda-Forge badges #402 (sdhiscocks)
- Update copyright/license year. #395 (jswright-dstl)
Other changes:
- Python
Published by sdhiscocks almost 5 years ago
stone-soup - Release v0.1b4
NOTE (for developers)
Post this release, the master branch will be renamed main. Please see these instructions about renaming your local branch and updating the upstream branch name.
Breaking changes:
- Kalman smoother #378 (jmbarr)
- The Smoother classes have been changed completly, to have similar structure to predictors/updaters. The existing Kalman based smoother
stonesoup.smoother.lineargaussian.Backwardhas been replaced bystonesoup.smoother.kalman.KalmanSmoother, and two new Kalman based smoothers,ExtendedKalmanSmootherandUnscentedKalmanSmoother, have been added.
- The Smoother classes have been changed completly, to have similar structure to predictors/updaters. The existing Kalman based smoother
- Data Associator Class modifications #368 (sdhiscocks)
- Renamed argument
timetotimestamponDataAssociator.associate()methods.
- Renamed argument
- Vectorise particle filter #365 (idorrington-dstl)
- Models have changed to support vectorised calculations. Future models should support vectorised calculations. This can be as simple as iterating of the individual particles, and joining the end result, but this will have a performance penalty.
- The
ParticleState.particlesattribute is now aParticlesinstance.Particlesis list like, so shouldn't break existing code expecting a list ofParticleobjects.
- AESA Radar and Beam Shape beam power method argument changes #361 (sdhiscocks)
beam_widthis no longer a property ofBeamShape, but an argument toBeamShape.beam_power()method.
Implemented enhancements:
- Fix plotter metric so it uses Stone Soup Plotter class #382 (nperree-dstl)
- Add support for plugins #375 (svidal-dstl)
- Adding link to TransitionModel in the Prediction #374 (jmbarr)
- Add ID based associator #366 (nperree-dstl)
- Orbitalstate #278 (jmbarr)
- Add Gromov Particle Flow Updater #132 (sdhiscocks)
Fixed bugs:
- Fix CartesianToBearingRange inverse_function for 3D state space. #393 (svidal-dstl)
- Fix Measures to work with tuple mapping type #391 (sdhiscocks)
- Various test fixes for print statements, floating point errors and divide by zero warnings #383 (sdhiscocks)
Documentation updates:
- Fix Particle Flow example due to metric name change #385 (sdhiscocks)
- Change time-based SIAP titles #384 (oharrald-Dstl)
- SIAP text #381 (rjgreen-dstl)
- Fix Edit on GitHub links on documentation. #380 (sdhiscocks)
- Fix animation control layout in Sphinx-Gallery examples #373 (sdhiscocks)
- Minor edits for 01 Tutorial #372 (bradh)
- Update Contributing documentation #370 (sdhiscocks)
Other changes:
- Prevent StateMutableSequence from swallowing custom errors #392 (etfrogers-dstl)
- Handle warning raised on 2D plotter metric test #390 (sdhiscocks)
- Increase tolerance on particle updater test #389 (sdhiscocks)
- Update StateMutableSequence error handling #386 (etfrogers-dstl)
- Add GitHub related files for reviewers and actions #376 (sdhiscocks)
- Move functions and orbital functions to sub-module #367 (sdhiscocks)
- Python
Published by sdhiscocks almost 5 years ago
stone-soup - Release v0.1b3
Breaking changes:
- Modify metric manager add_data method to have separate kwargs #342 (oharrald-Dstl)
SimpleManager.add_data()now expects groundtruth paths, tracks and detections as explicit arguments rather than single containerinput_objectswith sub containers.
Implemented enhancements:
- Add Uncertainty Metric #355 (nperree-dstl)
- Modify ID SIAPs to consider track metadata at timestamps #352 (oharrald-Dstl)
- Add plotting class and update tutorials #338 (nperree-dstl)
- Add TensorNets based detector and modify FFmpeg Reader #331 (sdhiscocks)
- Modify tracks to store metadata history #328 (oharrald-Dstl)
- Add closed continuous (real) interval type #318 (oharrald-Dstl)
- Range velocity binning #246 (jjosborne-dstl)
Fixed bugs:
- Add abstractmethod decorator to Radar Beam Pattern/Shape #360 (sdhiscocks)
- Fix issue with version, effecting pip install with Read The Docs #348 (sdhiscocks)
- Modify gaussian models to raise errors with None covariances #346 (oharrald-Dstl)
Documentation updates:
- Close figures when finished processing file in Sphinx Gallery #362 (sdhiscocks)
- Add Binder support for notebooks hosted on Read the Docs #357 (sdhiscocks)
- Remove tutorial pyplot imports and fix flake8 errors #350 (oharrald-Dstl)
- Python
Published by sdhiscocks about 5 years ago
stone-soup - Release v0.1b2
Breaking changes: This latest release has numerous breaking changes from the previous beta release. Going forward, new beta releases will include notes on breaking changes.
Implemented enhancements:
- Add handling of various prior types predictors/updater #329 (sdhiscocks)
- Modify sensors to return sets of TrueDetection types #322 (oharrald-Dstl)
- Add Additional SIAPs #321 (oharrald-Dstl)
- Add GaussianState initialization to WeightedGaussianState. #320 (DaveKirkland)
- Add CombinedNonlinearGaussianTransitionModel #292 (oharrald-Dstl)
- Add smooth transition model maker #289 (oharrald-Dstl)
- Iterated Kalman updater #288 (jmbarr)
- TensorFlow Detector Update #284 (sglvladi)
- Sensor-Measurement model consistency change #253 (rjgreen-dstl)
- Modify sensors to measure sets of ground truth states #240 (oharrald-Dstl)
- Add bearing-only measurement model #234 (oharrald-Dstl)
- Sqrt kalma filter #223 (jmbarr)
- Modify Angle type average to use numpy.sum() #222 (sdhiscocks)
- Platform state mutable #220 (rjgreen-dstl)
- Cast array type of StateVector when slicing #219 (sdhiscocks)
- Added MultiTransitionMovingPlatform class #218 (oharrald-Dstl)
- Add Gater classes #216 (sglvladi)
- Change Property to use type hints and drop Python 3.5 support #212 (sdhiscocks)
- Range rate radar extension #208 (rjgreen-dstl)
- Add StateVectors type and modify array handling #204 (sdhiscocks)
- Allowed for generic data input to appropriate detection feeders #203 (oharrald-Dstl)
- Simplify SimplePDA #202 (sglvladi)
- Added multi-deleter methods #200 (oharrald-Dstl)
- Add support for numpy int and float types to serialise #190 (sdhiscocks)
- Added StatesLengthLimiter #189 (sjablett-dstl)
- Modify detection and ground truth CSV readers #188 (sdhiscocks)
- Change StateVector indexing #187 (etfrogers-dstl)
- Add TensorFlow detector #184 (sglvladi)
- Added platform detection simulators. #182 (oharrald-Dstl)
- Add reader video dependencies to mock imports for documentation #181 (sdhiscocks)
- Update to platform to allow it to control the positions of its sensors #177 (etfrogers-dstl)
- Add ID to Ground Truth Paths #174 (sdhiscocks)
- Updated models so function does not add noise by default #173 (oharrald-Dstl)
- Enable smoother to extract estimates from track #172 (sdhiscocks)
- Speed up GNNWith2DAssignment #169 (sglvladi)
- Added Longitude and Latitude types #168 (sglvladi)
- Property extensions #167 (etfrogers-dstl)
- Increase allowed line length #166 (etfrogers-dstl)
- Modify SinglePointInitiator to work with non-linear models #163 (sdhiscocks)
- Avoid calculating measurement prediction for missed detections #162 (sdhiscocks)
- Add Multi-detector Feeder class #151 (sdhiscocks)
- Video processing classes #150 (sglvladi)
- Passive sensor #147 (rjgreen-dstl)
- Add a combined non-linear Gaussian measurement model #146 (sdhiscocks)
- Add multi-dimension delta to Jacobian function #143 (sdhiscocks)
- Move all rvs and pdf methods to GaussianModel class #141 (sdhiscocks)
- SIAP metric output table with red and green visual #139 (lflaherty-dstl)
- Update components to use buffered generator #137 (sdhiscocks)
- Constant turn sandwich #136 (snaylor20)
- Ground truth reader #135 (lflaherty-dstl)
- Adds a variety of switching simulators. #134 (snaylor20)
- Nth Derivative Decay #133 (snaylor20)
- add multi meas initiator & non linear w tests #128 (lflaherty-dstl)
- Add 2d assignment alg + new gnn #126 (lflaherty-dstl)
- Add inverse bearing function &reverse method names #125 (lflaherty-dstl)
- Track metadata handling update #121 (sglvladi)
- Feeder Modifications #117 (sdhiscocks)
- Buffered generator #116 (dcrew-dstl)
- Expand csv reader #115 (dcrew-dstl)
- DistanceHypothesiser gate out hypotheses greater than missed distance #114 (sdhiscocks)
- Nth Derivative model #112 (snaylor20)
- Detection Feeders #108 (sglvladi)
- Update StateVector and Array classes. Add convenience handling for StateVector #104 (DaveKirkland)
- Add Ornstein-Uhlenbeck transition model #100 (sglvladi)
- Gaussian Mixture Probability Hypothesis Density Filter #88 (Campbell101)
Fixed bugs:
- Fix SIAP metric component nuj #345 (oharrald-Dstl)
- Fix Prediction/Update from_state being called with StateMutableSequence #337 (sdhiscocks)
- Fix rotating radar to handle measuring empty sets #335 (oharrald-Dstl)
- Fix YAML dump_all method #319 (sdhiscocks)
- Modify custom models to take state deep-copies #317 (oharrald-Dstl)
- Modify MultiTransitionMovingPlatform to append state only after full transition #315 (oharrald-Dstl)
- Change 'Ambiguity' metric to return 1 when there are no tracks/truths #314 (oharrald-Dstl)
- Change Property getters and setters #311 (etfrogers-dstl)
- Fix nonlinear models to give correct elevation #310 (etfrogers-dstl)
- Fix rotating radar test #308 (oharrald-Dstl)
- Fix issue with properties being reinstated from ancestors #307 (sdhiscocks)
- Correct property name in specification error #304 (oharrald-Dstl)
- Refactor to avoid nested models #298 (etfrogers-dstl)
- Fix leftover open file handles. #296 (DaveKirkland)
- Add correct error for simple measurement initiator #291 (oharrald-Dstl)
- Fix rotating radar dwell centre calculation #290 (oharrald-Dstl)
- Fix Hellinger distance. #287 (jswright-dstl)
- Fix mapped dimensions in simple measurement initiator #286 (oharrald-Dstl)
- Fix rounding error issues for int-based state vectors in gauss2sigma #279 (sglvladi)
- fix to platform orientation issue #274 (rjgreen-dstl)
- Fix (G)OSPA Metrics #273 (sdhiscocks)
- Fix caching issue with states/mutable-sequences with predictor #272 (sdhiscocks)
- Override StateVector.flatten() and StateVector.ravel() functions #270 (sglvladi)
- Change 2D sensor/platform orientations to 3D shape #269 (oharrald-Dstl)
- Fix initiator covariance issue. #266 (DaveKirkland)
- Fix issues with copying platforms #263 (etfrogers-dstl)
- Fix issue with YAML requiring deep construct #230 (sdhiscocks)
- Fix StateVectors average method with custom types #227 (sdhiscocks)
- Fix flake8 errors introduced with recent flake8 update #225 (sdhiscocks)
- Fix divide by zero in SIAP Metrics when no truth/tracks #215 (sdhiscocks)
- Fix orientation setter in sensors with internal platforms. #206 (etfrogers-dstl)
- Fix issue with logpdf not handling custom types (e.g. Angle) #205 (sdhiscocks)
- Fix gauss2sigma raising error when state vector has integers #198 (sdhiscocks)
- Add support for array/number types and parser type in YAML #194 (sdhiscocks)
- JPDA and SystematicResampler Fixes (updated) #193 (sglvladi)
- corrected rotx roty rotz for n x theta array. Now returns 3 x 3 x n a… #192 (dcherrie-dstl)
- Update AESARadar to avoid mutating measurement model #191 (etfrogers-dstl)
- Change YAMLReader to return same path/track, updating the states #180 (sdhiscocks)
- Fix for KalmanFilter when using multiple models #148 (sdhiscocks)
- JPDA Modifications #113 (sdhiscocks)
- fix-ConstantAcceleration transition model #109 (Valar001)
- Fixed bug in gm_reduce_single #101 (paulhorridge)
Documentation updates:
- Add metric managers to documentation #340 (sdhiscocks)
- Correct spelling in tracktotrack test comment #332 (oharrald-Dstl)
- Correct SIAP acronym #306 (oharrald-Dstl)
- Various fixes/update for Sphinx Gallery generated documentation/notebooks #302 (sdhiscocks)
- Correct simple.py typo #299 (jswright-dstl)
- Minor documentation fixes #275 (jmbarr)
- Documentation Updates #261 (sdhiscocks)
- review comments for sensor platform simulation #260 (rjgreen-dstl)
- Multi-sensor platform Simulation Example #258 (rjgreen-dstl)
- Tutorial Mods #256 (jmbarr)
- Single sensor platform example #252 (rjgreen-dstl)
- Tweaks to the single target tutorials. #250 (jmbarr)
- Fix Sphinx-Gallery scraper animations #249 (sdhiscocks)
- Data assoc tutorial mods1 #248 (jmbarr)
- UAV Tutorial_V2 #247 (DaveKirkland)
- Add download link to AIS data in AIS demo #245 (sdhiscocks)
- Changed the Kalman Filter tutorial. #243 (jmbarr)
- Add (J)PDA Tutorial and Diagrams #239 (oharrald-Dstl)
- Add Initiators & Deleters tutorial #238 (sdhiscocks)
- Add Data Association Tutorials #236 (oharrald-Dstl)
- Metrics example and changes #235 (sdhiscocks)
- Documentation design and other updates #232 (sdhiscocks)
- Add demonstrations section with updated AIS Solent Tracker demo #229 (sdhiscocks)
- Documentation updates #228 (sdhiscocks)
- Added sphinx-gallery in to documentation #224 (oharrald-Dstl)
- Modify non-linear doc strings for Range Rate methods #221 (rjgreen-dstl)
- Update doc extensions for richer type definitions #183 (etfrogers-dstl)
- Adds some documentation #140 (snaylor20)
- Fix double "https://" in README link to utm Lib #119 (GSORF)
- Issue 106. Add link to original article #107 (IanMayo)
Other changes: - Use setuptools_scm for versioning #336 (sdhiscocks) - Fix warnings raised for NumPy NEP34 and sensor reassignment #282 (sdhiscocks) - Add coverage and codecov upload to documentation build #233 (sdhiscocks) - Loosen tolerances on Swerling tests, to reduce chance of random failure #175 (etfrogers-dstl) - Fix platform tests #165 (etfrogers-dstl) - Resolve issue with simulator tests sometimes failing #158 (sdhiscocks) - Fix deprecated warning for pytest, Sphinx and SciPy #153 (sdhiscocks)
- Python
Published by sdhiscocks about 5 years ago
stone-soup - Beta Release
The initial beta release for Stone Soup.
- Python
Published by sdhiscocks almost 7 years ago
stone-soup - Stone Soup Initial Alpha Release
Initial Stone Soup alpha release for demonstrating and testing the framework interfaces.
Components
Data and Simulation
- Simple single and multi target ground truth simulator utilising transition model
- Simple detection simulator utilising measurement model (fed by real or simulated ground truth)
- Generic CSV detection reader
Data Association and Hypothesis
- Nearest Neighbour (NN) and Global NN (non-optimised) data associators
- Mahalanobis distance hypothesiser
Models
- n-dimension linear measurement model
- Constant Velocity, Acceleration and Turn; Singer and generic matrix transition models (including combinations for n-dimensions).
Track Initiation and Deletion
- Covariance Based Deleter
- Single Point Initiator (both Gaussian state and particle state distributions)
Predictors and Updaters
- Kalman and Extended Kalman predictors and updaters
- Particle predictor and updater
Trackers and Smoothers
- Linear Gaussian smoother
- Single and Multi target tracker
- Python
Published by sdhiscocks over 7 years ago