Skip to content

lib-dlf #106

@prisae

Description

@prisae

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

  • Create the repo, add all existing filters.
  • Write a detailed explanation how anyone can contribute filters to the library.
  • Create functions in empymod so any filter in lib-dlf would automatically be fetched from GitHub and stored locally (potentially with pooch).
  • Create detailed instructions how any other package than empymod could do the same.

Repo specs

  • Sorted by categories (Hankel, Fourier, Laplace, ...).
  • Each filter is a folder in one of these categories.

Filter specs

  • Filter name should be short but descriptive: First author, nr of points, year, at least (e.g. key_201_2009)
  • New folder within category with filter name
  • Each file just contains one column of values, nr of points in total
  • Each filename should be identical to the filter name, ending with its type (e.g., _sin or _j0) followed by .txt.
  • Each filter needs a README
  • Each filter needs a LICENSE

README specs

  • Short description (what was it designed for, what was it used for, hence where can we expect it to work)
  • A DOI (e.g. Zenodo) or a reference, something that can be cited.
  • If possible the instructions how the filter was reproduced; could also be provided as additional file (filtername_create.{py;ipynb;m;f90;c;...})

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions