Roadmap

This roadmap is aimed at providing an high-level overview on the bug fixes, improvements and new functionality that are planned for the PyLops library.

Any of the fixes/additions mentioned in the roadmap are directly linked to a Github Issue that provides more details onto the reason and initial thoughts for the implementation of such a fix/addition.

Striked tasks have been completed and related github issue closed with more details regarding how this task has been carried out.

Library structure

  • Create a child repository and python library called geolops (just a suggestion) where geoscience-related operators and examples are moved across, keeping the core pylops library very generic and multi-purpose - Issue #22.

Code cleaning

  • Change all np.flatten() into np.ravel() - Issue #24.
  • Fix all if: return ... else: ... statements to enforce a single return with the same number of outputs - Issue #26.
  • Protected attributes and @property attributes in linear operator classes? - Issue #27.

Code optimization

  • Investigate speed-up given by decorating _matvec and _rmatvec methods with numba @jit and @stencil decorators - Issue #23.
  • Replace np.fft.* routines used in several submodules with double engine, numpy and pyFFTW - Issue #20.

Modules

avo

basicoperators

  • Create Kronecker operator - Issue #28.
  • Deal with edges in FirstDerivative and SecondDerivative operators - Issue #34.

optimization

signalprocessing

  • Compare performance in FTT operator of performing np.swap+np.fft.fft(…, axis=-1) versus np.fft.fft(…, axis=chosen) - Issue #33.
  • Add Wavelet operator performing the wavelet transform - Issue #21.
  • Fredholm1 operator applying Fredholm integrals of first kind - Issue #31.
  • Fredholm2 operators applying Fredholm integrals of second kind - Issue #31.

utils

Nothing so far

waveeqprocessing

  • numpy.matmul as a way to speed up integral computation (i.e., inner for loop) in MDC operator - Issue #32.
  • NMO operator performing NMO modelling - Issue #29.
  • WavefieldDecomposition operator performing acoustic wavefield separation by inversion - Issue #30.