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.




  • Create Kronecker operator - Issue #28.

  • Deal with edges in FirstDerivative and SecondDerivative operators - Issue #34.



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


Nothing so far


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