Closed prisae closed 3 years ago
This is an idea I have. Feedback welcome, pinging here a few persons who might be interested: @kerrykey, @sgkang, @agrayver.
Also pinging @leouieda: Pooch could work for that, right? Is pooch OS agnostic?
One thing to think about are licenses. Filters are not really software, they are more like data. So the general open-source licenses (GPL, MIT, Apache) are not really suited for those (until now, Key's licenses are GPL, mine are Apache).
For the filters, licenses like CC0-1.0, CC-BY-4.0, and CC-BY-SA-4.0 are probably more suited.
See, e.g., https://choosealicense.com under "My project isn't software".
Comments from @kerrykey:
[...] think that makes sense and would be happy to do that with my filters. Might be good to make a repository of them on GitHub or wherever, having them in to different formats (txt, tables and subroutines/functions). Maybe along with example standalone FHT, and co(sine) transform codes so that other uses could easily take the filters and codes and use them in their own routines if desired.
[...] If you want to team up on this I would be happy to create a nice "modern" Fortran filter module/class for it too! [in addition to Python/Matlab modules]
Pooch could work for that, right? Is pooch OS agnostic?
Yes it would. Pooch should work anywhere and across Python 3.6-3.8 (we recently dropped 2.7 and 3.5 but older versions of Pooch should work fine here as well).
Closing, library repo created at https://github.com/emsig/libdlf (some dabbling happens currently in the dev
-branch, and it might be quite some time until something usable comes from it though).
Create a repo
lib-dlf
Description
Create a library that stores digital linear filters (DLF). The filters should follow some clear rules (standardized), so it is easy to write functions that can load any of the filters.
Motivation
Since the creation of
fdesign
and accompanying paper there is an increasing number of filters (in the end, there are infinite possible filters even just for one particular application, and there is a huge number of applications). Examples are the 2001 pt filter for GPR data of the fdesign paper, recent short filters for TEM with very resistive materials, filters for Laplace transforms, filters for the Q-kernel, filters for Laplace-to-frequency domain, etc etc. Including them all inempymod
does not make sense. The package could grow huge, filled with numbers that are not used by 99.9% of the users. Already now 4515 lines of code out of 7910 lines of code ofempymod
are from the filter module. Including, e.g., the 2001 pt GPR filter would add another 6003 lines. And as mentioned before, there is an infinite number of filters. A dedicated filter library seems to make more sense.TODO
empymod
so any filter inlib-dlf
would automatically be fetched from GitHub and stored locally (potentially with pooch).empymod
could do the same.Repo specs
Filter specs
key_201_2009
)_sin
or_j0
) followed by.txt
.README specs
filtername_create.{py;ipynb;m;f90;c;...}
)