finite_differencecontains basic first and second order finite differencing methods. The first order method supports iterative application.kalman_smoothcontains Kalman filtering and smoothing methods, currently constant-derivative methods up to 3rd order (jerk) and a classic linear Kalman Filter based on known dynamics.linear_modelis a bit of a miscellaneous module, containing methods which work linearly:lineardiff,polydiff,savgoldiff, andspectraldiff.optimizecontains code to find best parameter settings for methods, tuned using Nelder-Mead according to the paper "Numerical differentiation of noisy data: A unifying multi-objective optimization framework"smooth_finite_differencecontains methods which do a smoothing step followed by simple finite difference.testscontainspytestunit tests of- all the differentiation methods, checking their results against a suite of known analytic functions (including an ability to plot if the
--plotcommand is passed topytest, seeconftest.py) - the optimizer
- utilities, auxiliary functions used throughout the code
- all the differentiation methods, checking their results against a suite of known analytic functions (including an ability to plot if the
total_variation_regularizationcontains code to take the derivative based on a finite differencing scheme which is regularized by shrinking changes of value in some derivative (1st, 2nd, or 3rd order)utilscontainsutilityfunctions used throughout differentation methods,evaluatefunctions used by the parameter optimizer, andsimulateexamples for demonstrating and testing the methods.