Skip to content

Releases: PyLops/pylops

v2.3.1

17 Aug 14:44
7c58f0f
Compare
Choose a tag to compare
  • Fixed bug in pylops.utils.backend (see Issue #606)

v2.3.0

16 Aug 20:34
3868bca
Compare
Choose a tag to compare
  • Added pylops.JaxOperator, pylops.signalprocessing.DWTND, and pylops.signalprocessing.DTCWT operators.
  • Added updatesrc method to pylops.waveeqprocessing.AcousticWave2D.
  • Added verb to pylops.signalprocessing.Sliding1D.sliding1d_design, pylops.signalprocessing.Sliding2D.sliding2d_design, pylops.signalprocessing.Sliding3D.sliding3d_design, pylops.signalprocessing.Patch2D.patch2d_design, and pylops.signalprocessing.Patch3D.patch3d_design.
  • Added kwargs_fft to pylops.signalprocessing.FFTND.
  • Added cosinetaper to pylops.utils.tapers.cosinetaper.
  • Added kind to pylops.waveeqprocessing.Deghosting.
  • Modified all methods in pylops.utils.backend to enable jax integration.
  • Modified implementations of pylops.signalprocessing.Sliding1D, pylops.signalprocessing.Sliding2D,
    pylops.signalprocessing.Sliding3D, pylops.signalprocessing.Patch2D, and
    pylops.signalprocessing.Patch3D to being directly implemented instead of relying on other PyLops operators. Added also savetaper parameter and an option to apply the operator Op simultaneously to all windows.
  • Modified pylops.waveeqprocessing.AcousticWave2D._born_oneshot and
    pylops.waveeqprocessing.AcousticWave2D._born_allshots to avoid recreating the devito solver for each shot (and enabling internal caching...)
  • Modified dtype of pylops.signalprocessing.Shift to be that of the input vector.
  • Modified pylops.waveeqprocessing.BlendingContinuous to use matvec/rmatvec instead of @/.H @ for compatibility with pylops solvers.
  • Removed cusignal as optional dependency and cupy's equivalent methods (since the library
    is now unmantained and merged into cupy).
  • Fixed ImportError of optional dependencies when installed but not correctly functioning (see Issue #548)
  • Fixed bug in :py:func:pylops.utils.deps.to_cupy_conditional (see Issue #579)
  • Fixed bug in the definition of nttot in :py:class:pylops.waveeqprocessing.BlendingContinuous
  • Fixed bug in :py:func:pylops.utils.signalprocessing.dip_estimate (see Issue #572)

v2.2.0

11 Nov 17:55
98dc07f
Compare
Choose a tag to compare
  • Added pylops.signalprocessing.NonStationaryConvolve3D operator
  • Added nd-array capabilities to pylops.basicoperators.Identity and pylops.basicoperators.Zero
  • Added second implementation in pylops.waveeqprocessing.BlendingContinuous which is more
    performant when dealing with small number of receivers
  • Added forceflat property to operators with ambiguous rmatvec (pylops.basicoperators.Block,
    pylops.basicoperators.Bilinear, pylops.basicoperators.BlockDiag, pylops.basicoperators.HStack,
    pylops.basicoperators.MatrixMult, pylops.basicoperators.VStack, and pylops.basicoperators.Zero)
  • Improved dynamic mode of pylops.waveeqprocessing.Kirchhoff operator
  • Modified pylops.signalprocessing.Convolve1D to allow both filters that are both shorter and longer of the
    input vector
  • Modified all solvers to use matvec/rmatvec instead of @/.H @ to improve performance

v2.1.0

17 Mar 18:28
73af25c
Compare
Choose a tag to compare
  • Added pylops.signalprocessing.DCT, pylops.signalprocessing.NonStationaryConvolve1D,
    pylops.signalprocessing.NonStationaryConvolve2D, pylops.signalprocessing.NonStationaryFilters1D, and
    pylops.signalprocessing.NonStationaryFilters2D operators
  • Added pylops.waveeqprocessing.BlendingContinuous, pylops.waveeqprocessing.BlendingGroup, and
    pylops.waveeqprocessing.BlendingHalf operators
  • Added kind='datamodel' to pylops.optimization.cls_sparsity.IRLS
  • Improved inner working of pylops.waveeqprocessing.Kirchhoff operator significantly
    reducing the memory usage related to storing traveltime, angle, and amplitude tables.
  • Improved handling of haxes in pylops.signalprocessing.Radon2D and pylops.signalprocessing.Radon3D operators
  • Added possibility to feed ND-arrays to pylops.TorchOperator
  • Removed pylops.LinearOperator inheritance and added __call__ method to pylops.TorchOperator
  • Removed scipy.sparse.linalg.LinearOperator and added abc.ABC inheritance to pylops.LinearOperator
  • All operators are now classes of pylops.LinearOperator type

v2.0.0

12 Oct 10:21
a0b69b8
Compare
Choose a tag to compare

PyLops has undergone significant changes in this release, including new LinearOperators, more features, new examples and bugfixes.
To aid users in navigating the breaking changes, we provide the following document MIGRATION_V1_V2.md.

New Features

Documentation

v1.18.3

30 Jul 13:10
31048ec
Compare
Choose a tag to compare
  • Fixed pylops.optimization.basic.lsqr, pylops.optimization.sparsity.ISTA, and
    pylops.optimization.sparsity.FISTA to work with cupy arrays. This change was required
    by how recent cupy versions handle scalars, which are not converted directly into float types,
    rather kept as cupy arrays.
  • Fixed bug in pylops.waveeqprocessing.Deghosting introduced in
    commit 7e596d4

v1.18.2

29 Apr 12:06
7e1f9ff
Compare
Choose a tag to compare
  • Added NMO example to gallery
  • Extended pylops.basicoperators.Laplacian to N-dimensional arrays
  • Added forward kind to pylops.basicoperators.SecondDerivative and
    pylops.basicoperators.Laplacian
  • Added chirp-sliding kind to pylops.waveeqprocessing.seismicinterpolation.SeismicInterpolation
  • Fixed bug due to the new internal structure of LinearOperator submodule introduced in scipy1.8.0

v1.18.0

19 Feb 12:17
c989a89
Compare
Choose a tag to compare
  • Added NMO example to gallery
  • Extended pylops.basicoperators.Laplacian to N-dimensional arrays
  • Added forward kind to pylops.basicoperators.SecondDerivative and
    pylops.basicoperators.Laplacian
  • Added chirp-sliding kind to pylops.waveeqprocessing.seismicinterpolation.SeismicInterpolation
  • Fixed bug due to the new internal structure of LinearOperator submodule introduced in scipy1.8.0

v1.17.0

29 Jan 09:45
142207c
Compare
Choose a tag to compare
  • Added pylops.utils.describe.describe method
  • Added fftengine to pylops.waveeqprocessing.Marchenko
  • Added ifftshift_before and fftshift_after optional input parameters in
    pylops.signalprocessing.FFT
  • Added norm optional input parameter to pylops.signalprocessing.FFT2D and
    pylops.signalprocessing.FFTND
  • Added scipy backend to pylops.signalprocessing.FFT and
    pylops.signalprocessing.FFT2D and pylops.signalprocessing.FFTND
  • Added eps optional input parameter in
    pylops.utils.signalprocessing.slope_estimate
  • Added pre-commit hooks
  • Improved pre-commit hooks
  • Vectorized pylops.utils.signalprocessing.slope_estimate
  • Handlexd nfft<nt case in pylops.signalprocessing.FFT and
    pylops.signalprocessing.FFT2D and pylops.signalprocessing.FFTND
  • Introduced automatic casting of dtype in `pylops.MatrixMult
  • Improved documentation and definition of optinal parameters
    of pylops.Spread
  • Major clean up of documentation and mathematical formulas
  • Major refractoring of the inner structure of pylops.signalprocessing.FFT and
    pylops.signalprocessing.FFT2D and pylops.signalprocessing.FFTND
  • Reduced warnings in test suite
  • Reduced computational time of test_wavedecomposition in the test suite
  • Fixed bug in pylops.signalprocessing.Sliding1D,
    pylops.signalprocessing.Sliding2D and
    pylops.signalprocessing.Sliding3D where the dtype of the Restriction
    operator is inffered from Op
  • Fixed bug in pylops.signalprocessing.Radon2D and
    pylops.signalprocessing.Radon3D when using centered spatial axes
  • Fixed scaling in pylops.signalprocessing.FFT with real=True to pass the
    dot-test

v1.16.0

11 Dec 17:10
223e103
Compare
Choose a tag to compare
  • Added pylops.utils.estimators module for trace estimation
  • Added x0 in pylops.optimization.sparsity.ISTA and
    pylops.optimization.sparsity.FISTA to handle non-zero initial guess
  • Modified pylops.optimization.sparsity.ISTA and
    pylops.optimization.sparsity.FISTA to handle multiple right hand sides
  • Modified creation of haxis in pylops.signalprocessing.Radon2D and
    pylops.signalprocessing.Radon3D to allow for uncentered spatial axes
  • Fixed _rmatvec for explicit in pylops.LinearOperator._ColumnLinearOperator