Hey, I've been working on pysindy and realized that the Kutz/Brunton lab is associated with two packages for "numerical differentiation of noisy time-series data", citing the same Chartrand paper. Currently, pysindy utilizes the derivative, which I've been contributing to occasionally over the past year. I wanted to ask what the authors (@florisvb @luckystarufo, @andgoldschmidt ) opinions are as to whether it's worth combining the packages, especially since these were both projects supervised under the same advisors? From the perspective of the python ecosystem, I think it would be better; less maintenance cost, and zen number 13
"There should be one-- and preferably only one --obvious way to do it."
Obviously everyone's welcome to their own packages, however.
At first blush, here's the comparison:
pysindy depends upon derivative
- 163 gihtub repos have a pyproject.toml|setup.py|requirements.txt for
derivative (excluding self) vs 0 for pynumdiff (cursory search). EDIT: found motiontrackerbeta
pynumdiff has 84 stars whereas derivative has 37.
pynumdiff has a JOSS paper.
derivative has more smoothing/derivative methods than pynumdiff (e.g. spectral, spline...)
pynumdiff appears to have more advanced/complex implementations of TV and Kalman.
pynumdiff has more fragile dependencies to satisfy (e.g. numpy vs cvxpy and pychebfun, which hasn't been updated since 2017)
derivative has around 650 daily downloads, whereas pynumdiff only has 15-20 (many of these are likely because derivative is required by pysindy.)
derivative is older by about a year (2019?)
I'll be working in the pysindy & differentiation over the next (and hopefully last) year of my PhD and contributing code in a variety of repos. Obviously, both packages have MIT licenses. But I want to poll the authors' feelings on merging code and, long-term, deprecating one of the packages, especially if I begin to add issues like "hey I'm trying to copy your code, why does foo() call bar()?".
Hey, I've been working on
pysindyand realized that the Kutz/Brunton lab is associated with two packages for "numerical differentiation of noisy time-series data", citing the same Chartrand paper. Currently, pysindy utilizes thederivative, which I've been contributing to occasionally over the past year. I wanted to ask what the authors (@florisvb @luckystarufo, @andgoldschmidt ) opinions are as to whether it's worth combining the packages, especially since these were both projects supervised under the same advisors? From the perspective of the python ecosystem, I think it would be better; less maintenance cost, and zen number 13Obviously everyone's welcome to their own packages, however.
At first blush, here's the comparison:
pysindydepends uponderivativederivative(excluding self) vs 0 forpynumdiff(cursory search). EDIT: found motiontrackerbetapynumdiffhas 84 stars whereasderivativehas 37.pynumdiffhas a JOSS paper.derivativehas more smoothing/derivative methods thanpynumdiff(e.g. spectral, spline...)pynumdiffappears to have more advanced/complex implementations of TV and Kalman.pynumdiffhas more fragile dependencies to satisfy (e.g.numpyvscvxpyandpychebfun, which hasn't been updated since 2017)derivativehas around 650 daily downloads, whereaspynumdiffonly has 15-20 (many of these are likely becausederivativeis required bypysindy.)derivativeis older by about a year (2019?)I'll be working in the pysindy & differentiation over the next (and hopefully last) year of my PhD and contributing code in a variety of repos. Obviously, both packages have MIT licenses. But I want to poll the authors' feelings on merging code and, long-term, deprecating one of the packages, especially if I begin to add issues like "hey I'm trying to copy your code, why does
foo()callbar()?".