Skip to content

Latest commit

 

History

History
289 lines (180 loc) · 19.7 KB

CHANGELOG.md

File metadata and controls

289 lines (180 loc) · 19.7 KB

Tobac Changelog

Version 1.5.5:

Bug fixes

  • Including of annotations import for python versions before 3.10 #468
  • Fix bulk statistics calculation when provided a dask array #474

Internal Enhancements

  • Fix matrix testing to use the specified python versions #468

Version 1.5.4:

Enhancements for Users

  • Added the ability to use the Minimum Euclidean Spanning Tree merge/split method on data with periodic boundaries #372
  • Added the ability to calculate online bulk statistics during feature detection on the raw (i.e., unsmoothed) data #449

Bug fixes

  • Fixes to calculations of bulk statistics #437
  • Fixes to handling of PBC feature points on the PBC wraparound border #434
  • Fixed an error that allows non-matching features to be used in the offline bulk statistics calculation #448
  • Fixed a bug that prevented using minimum distance filtering with varying vertical coordinates #452

Documentation

  • Add thumbnails to the new example gallery #428
  • Added documentation for developers #281
  • Updated documentation for the n_min_threshold function in feature detection #432
  • Added documentation for dealing with big datasets #408
  • Updated documentation to note that the tobac v1.5.0 paper in GMD is in its final form #450

Internal Enhancements

  • PBC Distance Function handling improved for tracking and other portions of the library that uses it #386
  • Added tests to tobac.utils.get_spacings #429
  • Added matrix testing for Python 3.12 #451
  • Resolved issues around updating dependencies in black formatting checks and Zenodo JSON checks #457

Version 1.5.3:

Enhancements for Users

  • Update calculate_area to allow the calculation of the projected 2D area of 3D objects, and enhance bulk statistics to allow calculation of statistics on the projected footprint on 2D fields #378

Bug fixes

  • Fix a bug in get_spacing that would return a negative value if one coordinate was in ascending order and the other in descending order, and fix other bugs where the wrong coordinate was referenced #400

Documentation

  • Re-integration of notebooks from the tobac-tutorials repo #334
  • Add example gallery to readthedocs page #411

Internal Enhancements

  • Add ability to save whether iris to xarray conversion ocurred and update decorators to allow keyword parameters #380
  • Reorganisation of analysis tools into analysis package #378

Version 1.5.2:

Enhancements for Users

  • Let users optionally derive bulk statistics of the data points belonging to each feature. Bulk statistics can be calulcated during feature detection, segmentation or afterwards by applying one of more functions to each feature #293
  • Wrapped functions now show the correct docstring #359

Bug fixes

  • Fixed an out-of-bounds error that could occur when performing segmentation with PBCs #350
  • Path to data in example notebooks fixed after changes to zenodo #357
  • Bulk statistics updated to use multiple fields correctly and perform numpy-style broadcasting #368
  • PBCs now work when using predictive tracking #376
  • Fixed error with PBC distance calculation using numba if all of min_h1, max_h1, min_h2, max_h2 were not specified, even if not calculating PBCs over one of the dimensions #384

Documentation

  • Documentation on use of time_cell_min in tracking added #361
  • Documentation on how thresholding is applied in segmentation update #365
  • References to tobac papers updated #365

Internal Enhancements

  • Type hints added for feature detection #337
  • Reorganisation and addition of type hints to interal utils #241
  • Type hints added for segmentation #351

Repository Enhancements

  • Matrix CI testing added for multiple python versions on Linux, MacOS and Windows #353
  • Issue templates with checklists added #358
  • Black reformatting updated to say what is wrong #362
  • Pylint CI workflow added to assess code quality and compare to base branch #373

Version 1.5.1:

Bug fixes

  • The strict_thresholding option in feature detection now works correctly for detecting minima, and produces the same results as without strict thresholding if the n_min_threshold is a scalar value #316
  • utils.general.standardize_track_dataset was added back after being inadvertently removed in version 1.5.0 #330
  • All Numba import errors are now caught with the exception of KeyboardInterrupts. #335

Documentation

  • Fix to readthedocs building after system packages no longer imported #336

Repository Enhancements

  • Fix to Jupyter Notebook CI that was timing out due to installing packages with conda, switched to mamba to resolve. #340

Version 1.5.0:

Enhancements for Users

  • Feature detection and tracking in three dimensions is now supported #209
  • Feature detection, segmentation, and tracking across periodic boundaries is now supported #259
  • Transformation of feature detection points to allow segmentation on a new grid is now supported #242
  • n_min_threshold in feature detection can now be set for each threshold level instead of uniformly for all thresholds #208
  • Feature detection now has the option to only detect a feature if all previous thresholds have been met #283
  • Unsegmented points can now have their marker value selected #285
  • Minimum distance filtering is now substantially faster #249
  • combine_feature_dataframes now allows the retention of feature numbers #300
  • scikit-learn is now a required dependency; pytables and cf-units are no longer direct dependencies of tobac #204

Bug fixes

  • An error is now raised if none of the search range parameters (v_max, d_max, d_min) are set in linking_trackpy #223
  • Minimum distance filtering in feature detection (set through min_distance in feature_detection_multithreshold, run through filter_min_distance) has been fixed to properly work when target=minimum. #244
  • Interpolated numeric coordinates now preserve their datatypes (i.e., floats stay floats) in feature detection #250
  • Fixes to the internal find_axis_from_coord utility to allow for non-dimensional coordinates to be correctly dealt with #255
  • Jupyter notebooks changed to use string paths to work around an Iris bug #294
  • Minimum distance filtering updated to produce consistent results #249

Documentation

  • Enhancements to the documentation of how tobac links features together 210
  • Fixes to the API documentation generation when using type hints #305

Internal Enhancements

  • New converting decorators (xarray_to_iris, iris_to_xarray, xarray_to_irispandas, irispandas_to_xarray) have been added for internal use that will allow the upcoming transition to xarray throughout tobac to occur more smoothly. #179
  • The utils module has been broken up from a single utils.py file to multiple files inside a utils folder, allowing for ease of maintenance and fewer long code files. #191
  • scipy.interpolate.interp2d in add_coordinates and add_coordinates_3D has been replaced with scipy.interpolate.interpn as interp2d has been deprecated. #279
  • setup.py updated to draw its required packages from requirements.txt #288

Repository Enhancements

  • New CI was added to automatically check the example and documentation Jupyter notebooks #258, #290
  • The check_formatting CI action has been revised to install dependencies through conda #288
  • Repository authors updated #289
  • CI added to check author list formatting for Zenodo #292

Deprecations

  • All functions in centerofgravity.py (calculate_cog, calculate_cog_untracked, center_of_gravity) have been deprecated and will be removed or significantly changed in v2.0. #200
  • plot_mask_cell_track_follow, plot_mask_cell_individual_follow, plot_mask_cell_track_static, plot_mask_cell_individual_static, plot_mask_cell_track_2D3Dstatic, plot_mask_cell_track_3Dstatic, plot_mask_cell_individual_3Dstatic, and plot_mask_cell_track_static_timeseries in plotting.py have been deprecated and will be removed or significantly changed in v2.0. #200
  • The wrapper functions in wrapper.py (tracking_wrapper and maketrack) have been deprecated and will be removed in v2.0. #200
  • cell_statistics_all, cell_statistics, and cog_cell in the analysis module have been deprecated and will be removed or significantly changed in v2.0. #207
  • tobac.utils.combine_tobac_feats has been renamed to tobac.utils.combine_feature_dataframes, and the original name has been deprecated and will be removed in a future release. #300

Version 1.4.2:

Bug fixes

  • Fixed a bug in the segmentation procedure that assigned the wrong grid cell areas to features in data frame #246

  • Fixed a bug in feature_detection.filter_min_distance() that always selected the feature with the largest threshold, even if the feature detection is targeting minima. The target is now an optional input parameter for the distance filtering #251

  • Fixed an issue in the 2D coordinate interpolation that produced object dtypes in feature detection and made the feature input data frame incompatible with the merge and split function #251

Version 1.4.1:

Bug fixes

  • Fixed a bug with predictive tracking that would duplicate column names if the input dataset has coordinates x and/or y #217
  • Set extrapolate parameter to 0 in example notebooks to prevent not implemented error #217

Documentation

  • Regenerated example notebooks so that they are up to date for the present version #233

Version 1.4.0:

Enhancements

  • Added the ability to detect feature mergers and splits (#136)
  • Added spectral filtering of input data to feature detection (#137)
  • Substantial improvements to documentation (#138, #150, #155, #173, #189, #195, #197)
  • Added a new function to combine feature dataframes when feature detection is run in parallel (#186)

Bug fixes

  • Reset the adaptive search parameters back to default when using adaptive trackpy tracking (#168)
  • Added checks to make sure that both adaptive_step and adaptive_stop are set when using adaptive tracking (#168)
  • Added error raising when trying to use the not yet implemented extrapolation feature (#177)
  • Fixed a bug where min_distance did not work in feature detection (#187)
  • Fixed a bug where feature detection output different feature locations depending on the order that thresholds are passed in (#199)

Documentation

  • Updated docstrings to NumPy format (#138, #155, #173)
  • Enabled API documentation generation (#150)
  • Enhanced documentation of feature detection and segmentation parameters (#150)
  • Added contributors to zenodo (#139)
  • Added __version__ as a parameter (#175)
  • Updated the feature detection docstrings to add clarification around units (#189)
  • Added documentation on why sometimes no features are segmented (#195)
  • Added updates to README file, including linking the google groups (#162, #197)

Repository enhancements

  • Specified the version of black to use for validating formatting during CI (#161)
  • Lowered threshold before code coverage CI fails on pull requests (#159)

Deprecations

  • Support for Python 3.6 and earlier is now deprecated and will be removed in v1.5.0 (#193)

Version 1.3.3:

Bug fixes

  • Added a workaround to a bug in trackpy that fixes predictive tracking #170

Version 1.3.2:

Bug fixes

  • Fixed a bug with Feature Detection that caused it to fail when using weighted_abs position #148
  • Fixed a bug where adaptive_search within linking_trackpy was not working correctly #140

Repository enhancements

  • Added automatic code coverage reports #124
  • Added automatic building of readthedocs documentation on pull requests

Version 1.3.1:

Enhancements

  • Added auto-downloading of files in the example notebooks if data isn't already present #113

Bug fixes

  • Fixed a bug with map_tracks that had it plot untracked cells caused by the switch to -1 for untracked cells #130

Repository enhancements

  • New pull request template for the repository, including a checklist to be completed for each pull request #120

Version 1.3:

Enhancements

  • Significant performance improvements for tracking #89
  • Significant performance improvements for feature detection and segmentation #90
  • Performance improvement for calculate_area #93
  • Added ability to set a user defined stub cell value instead of np.nan. Default value is -1 and stub cell values are now integers instead of floats by default #74
  • Added deprecation warnings for parameters min_num in feature detection and d_min in tracking, and added exceptions when multiple, incompatible parameters are given (e.g. d_max and v_max) #107

Bug fixes

  • Fixed level parameter in segmentation, as this previously had no effect #92
  • Remove is comparisons for string literals #99
  • Added missing raise for exception in get_spacings #105
  • Remove automatic setting of matplotlib backend to agg on import #100
  • Fix deprecation warnings for changed import paths in dependencies #110

Documentation

  • Added recommended python style #72
  • Updated author list and email addresses #109

Repository enhancements

  • Black formatting of all python code and formatting check in actions #78
  • Pre-commit hook for black formatting #96