Skip to content

Releases: PyLops/pylops

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

v1.15.0

23 Oct 13:47
38f5e76
Compare
Choose a tag to compare
  • Added pylops.signalprocessing.Shift operator.
  • Added option to choose derivative kind in
    pylops.avo.poststack.PoststackInversion and
    pylops.avo.prestack.PrestackInversion
  • Improved efficiency of adjoint of
    pylops.signalprocessing.Fredholm1 by applying complex conjugation
    to the vectors.
  • Added vsvp to pylops.avo.prestack.PrestackInversion allowing
    to use user defined VS/VP ratio.
  • Added kind to pylops.basicoperators.CausalIntegration allowing
    full, half, or trapezoidal integration
  • Fixed _hardthreshold_percentile in
    pylops.optimization.sparsity - Issue #249.
  • Fixed r2norm in pylops.optimization.solver.cgls

v1.14.0

09 Jul 13:58
862110e
Compare
Choose a tag to compare
  • Added pylops.optimization.solver.lsqr solver
  • Added utility routine pylops.utils.scalability_test for scalability
    tests when using multiprocessing
  • Added pylops.avo.avo.ps AVO modelling option and restructured
    pylops.avo.prestack.PrestackLinearModelling to allow passing any
    function handle that can perform AVO modelling apart from those directly
    available
  • Added R-linear operators (when setting the property clinear=False of a
    linear operator). pylops.basicoperators.Real,
    pylops.basicoperators.Imag, and pylops.basicoperators.Conj
  • Added possibility to run operators pylops.basicoperators.HStack,
    pylops.basicoperators.VStack, pylops.basicoperators.Block
    pylops.basicoperators.BlockDiag,
    and pylops.signalprocessing.Sliding3D using multiprocessing
  • Added dtype to vector X when using scipy.sparse.linalg.lobpcg in
    eigs method of pylops.LinearOperator
  • Use kind=forward fot FirstDerivative in
    pylops.avo.poststack.PoststackInversion inversion when dealing
    with L1 regularized inversion as it makes the inverse problem more stable
    (no ringing in solution)
  • Changed cost in pylops.optimization.solver.cg
    and pylops.optimization.solver.cgls to be L2 norms of residuals
  • Fixed pylops.utils.dottest.dottest for imaginary vectors and to
    ensure u and v vectors are of same dtype of the operator