emsig / empymod

Full 3D electromagnetic modeller for 1D VTI media
https://empymod.emsig.xyz
Apache License 2.0
84 stars 22 forks source link

lib-dlf #106

Closed prisae closed 3 years ago

prisae commented 4 years ago

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 in empymod 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 of empymod 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

Repo specs

Filter specs

README specs

prisae commented 4 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?

prisae commented 4 years ago

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".

prisae commented 4 years ago

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]

leouieda commented 4 years ago

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).

prisae commented 3 years ago

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).