Releases: dstl/Stone-Soup
Releases · dstl/Stone-Soup
v1.5
Breaking changes
- Sensor performance improvement #1084 (sdhiscocks)
- If you have created a custom sensor by sub classing from
SimpleSensor
you will need to addmeasurement_model
argument to theis_detectable
method.
- 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_vector
returning a vector containing custom types used (e.g.Bearing
) and rename your customfunction
method 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
MetricGenerator
interface withgenerator_name
and 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
v1.4
Implemented enhancements
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
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 show_plot_traces 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.plot_ground_truths #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
TimeRange
andCompoundTimeRange
#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 [#...
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
v1.1 Release
Implemented enhancements:
- Bernoulli Particle Filter by @timothy-glover in #815
- New resampling methods and example by @spike-dstl in #817
- Add a SingleTargetMixtureTracker by @A-acuto in #825
- Kafka readers and writers by @sglvladi in #799
- One to one Assignment for Association by @orosoman-dstl in #664
- Add Mapping to plot_sensors. Hide plotting elements in Plotterly by @gawebb-dstl in #836
Fixed bugs:
- Handle case of no tracks with MFA by @sdhiscocks in #814
- Add LRU cache to Updater predict measurement methods by @sdhiscocks in #826
- Fix edge case with mod elevation for 2π by @jmbarr in #828
- Fix recursion error when printing objects by @sglvladi in #832
- Fix bug in BaseRepr.whitespace_remove() walrus expression by @sglvladi in #839
- Fix ellipse plot by @mharris-dstl in #843
- Regulariser amendment and implementation in ParticleUpdater by @timothy-glover in #830
- Fix non linear constant turn transition model by @orosoman-dstl in #844
Documentation updates:
- Plot FOV on Sensor Management tutorials by @nperree-dstl in #816
- Set minimum version for sphinx_rtd_theme by @sdhiscocks in #833
- Change plot in Resampler Tutorial to display correct CDF by @spike-dstl in #834
Other changes:
- Fix issue with failing YAML serialisation tests by @sdhiscocks in #810
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)
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)
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)
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
StateVectors
class,StateVector
objects are now yielded. This is similar to iterating over the transpose ofStateVectors
previously.
- 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=True
when 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
TrackToTrack
associator 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
ParticleState
is now initialised withStateVectors
and an array forweight
, rather than from the intermediate step of have aParticles
object. Theparticles
attribute now returns a list ofParticle
objects. A list of particles can also still be used by passing thestate_vector
asNone
, 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
hasattr
in Measures to avoid callingmean
twice #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](https://github.com/d...
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
ConstantTurn
has been renamed toKnownTurnRate
, with a fixed turn rate as before. A new non-linear model calledConstantTurn
has 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:- 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)