Changelog¶
Version 1.13.0¶
Released on: 26/03/2020
- Added
pylops.signalprocessing.Sliding1D
andpylops.signalprocessing.Patch2D
operators - Added
pylops.basicoperators.MemoizeOperator
operator - Added decay and analysis option in
pylops.optimization.sparsity.ISTA
andpylops.optimization.sparsity.FISTA
solvers - Added toreal and toimag methods to
pylops.LinearOperator
- Make nr and nc optional in
pylops.utils.dottest.dottest
- Fixed complex check in
pylops.basicoperators.MatrixMult
when working with complex-valued cupy arrays - Fixed bug in data reshaping in check in
pylops.avo.prestack.PrestackInversion
- Fixed loading error when using old cupy and/or cusignal (see Issue #201)
Version 1.12.0¶
Released on: 22/11/2020
- Modified all operators and solvers to work with cupy arrays
- Added
eigs
andsolver
submodules topylops.optimization
- Added
deps
andbackend
submodules topylops.utils
- Fixed bug in
pylops.signalprocessing.Convolve2D
. andpylops.signalprocessing.ConvolveND
. when dealing with filters that have less dimensions than the input vector.
Version 1.11.1¶
Released on: 24/10/2020
- Fixed import of
pyfttw
when not available in :py:class:``pylops.signalprocessing.ChirpRadon3D`
Version 1.11.0¶
Released on: 24/10/2020
- Added
pylops.signalprocessing.ChirpRadon2D
andpylops.signalprocessing.ChirpRadon3D
operators. - Fixed bug in the inferred dimensions for regularization data creation in
pylops.optimization.leastsquares.NormalEquationsInversion
,pylops.optimization.leastsquares.RegularizedInversion
, andpylops.optimization.sparsity.SplitBregman
. - Changed dtype of
pylops.HStack
to allow automatic inference from dtypes of input operator. - Modified dtype of
pylops.waveeqprocessing.Marchenko
operator to ensure that outputs of forward and adjoint are real arrays. - Reverted to previous complex-friendly implementation of
pylops.optimization.sparsity._softthreshold
to avoid division by 0.
Version 1.10.0¶
Released on: 13/08/2020
- Added
tosparse
method topylops.LinearOperator
. - Added
kind=linear
inpylops.signalprocessing.Seislet
operator. - Added
kind
topylops.FirstDerivative
. operator to perform forward and backward (as well as centered) derivatives. - Added
kind
topylops.optimization.sparsity.IRLS
solver to choose between data or model sparsity. - Added possibility to use
scipy.sparse.linalg.lobpcg
inpylops.LinearOperator.eigs
andpylops.LinearOperator.cond
- Added possibility to use
scipy.signal.oaconvolve
inpylops.signalprocessing.Convolve1D
. - Added
NRegs
topylops.optimization.leastsquares.NormalEquationsInversion
to allow providing regularization terms directly in the form ofH^T H
.
Version 1.9.1¶
Released on: 25/05/2020
- Changed internal behaviour of
pylops.sparsity.OMP
whenniter_inner=0
. Automatically reverts to Matching Pursuit algorithm. - Changed handling of
dtype
inpylops.signalprocessing.FFT
andpylops.signalprocessing.FFT2D
to ensure that the type of the input vector is retained when applying forward and adjoint. - Added
dtype
parameter to theFFT
calls in the definition of thepylops.waveeqprocessing.MDD
operation. This ensure that the type of the real part ofG
input is enforced to the output vectors of the forward and adjoint operations.
Version 1.9.0¶
Released on: 13/04/2020
- Added
pylops.waveeqprocessing.Deghosting
andpylops.signalprocessing.Seislet
operators - Added hard and half thresholds in
pylops.optimization.sparsity.ISTA
andpylops.optimization.sparsity.FISTA
solvers - Added
prescaled
input parameter topylops.waveeqprocessing.MDC
andpylops.waveeqprocessing.Marchenko
- Added sinc interpolation to
pylops.signalprocessing.Interp
(kind == 'sinc'
) - Modified
pylops.waveeqprocessing.marchenko.directwave
to to model analytical responses from both sources of volume injection (derivative=False
) and source of volume injection rate (derivative=True
) - Added
pylops.LinearOperator.asoperator
method topylops.LinearOperator
- Added
pylops.utils.signalprocessing.slope_estimate
function - Fix bug in
pylops.signalprocessing.Radon2D
andpylops.signalprocessing.Radon3D
whenonthefly=True
returning the same result as whenonthefly=False
Version 1.8.0¶
Released on: 12/01/2020
- Added
pylops.LinearOperator.todense
method topylops.LinearOperator
- Added
pylops.signalprocessing.Bilinear
,pylops.signalprocessing.DWT
, andpylops.signalprocessing.DWT2
operators - Added
pylops.waveeqprocessing.PressureToVelocity
,pylops.waveeqprocessing.UpDownComposition3Doperator
, andpylops.waveeqprocessing.PhaseShift
operators - Fix bug in
pylops.basicoperators.Kronecker
(see Issue #125)
Version 1.7.0¶
Released on: 10/11/2019
- Added
pylops.Gradient
,pylops.Sum
,pylops.FirstDirectionalDerivative
, andpylops.SecondDirectionalDerivative
operators - Added
pylops.LinearOperator._ColumnLinearOperator
private operator - Added possibility to directly mix Linear operators and numpy/scipy
2d arrays in
pylops.VStack
andpylops.HStack
andpylops.BlockDiag
operators - Added
pylops.optimization.sparsity.OMP
solver
Version 1.6.0¶
Released on: 10/08/2019
- Added
pylops.signalprocessing.ConvolveND
operator - Added
pylops.utils.signalprocessing.nonstationary_convmtx
to create matrix for non-stationary convolution - Added possibility to perform seismic modelling (and inversion) with
non-stationary wavelet in
pylops.avo.poststack.PoststackLinearModelling
- Create private methods for
pylops.Block
,pylops.avo.poststack.PoststackLinearModelling
,pylops.waveeqprocessing.MDC
to allow calling different operators (e.g., from pylops-distributed or pylops-gpu) within the method
Version 1.5.0¶
Released on: 30/06/2019
- Added
conj
method topylops.LinearOperator
- Added
pylops.Kronecker
,pylops.Roll
, andpylops.Transpose
operators - Added
pylops.signalprocessing.Fredholm1
operator - Added
pylops.optimization.sparsity.SPGL1
andpylops.optimization.sparsity.SplitBregman
solvers - Sped up
pylops.signalprocessing.Convolve1D
usingscipy.signal.fftconvolve
for multi-dimensional signals - Changes in implementation of
pylops.waveeqprocessing.MDC
andpylops.waveeqprocessing.Marchenko
to take advantage of primitives operators - Added
epsRL1
option topylops.avo.poststack.PoststackInversion
andpylops.avo.prestack.PrestackInversion
to include TV-regularization terms by means ofpylops.optimization.sparsity.SplitBregman
solver
Version 1.4.0¶
Released on: 01/05/2019
- Added
numba
engine topylops.Spread
andpylops.signalprocessing.Radon2D
operators - Added
pylops.signalprocessing.Radon3D
operator - Added
pylops.signalprocessing.Sliding2D
andpylops.signalprocessing.Sliding3D
operators - Added
pylops.signalprocessing.FFTND
operator - Added
pylops.signalprocessing.Radon3D
operator - Added
niter
option topylops.LinearOperator.eigs
method - Added
show
option topylops.optimization.sparsity.ISTA
andpylops.optimization.sparsity.FISTA
solvers - Added
pylops.waveeqprocessing.seismicinterpolation
,pylops.waveeqprocessing.waveeqdecomposition
andpylops.waveeqprocessing.lsm
submodules - Added tests for
engine
in various operators - Added documentation regarding usage of
pylops
Docker container
Version 1.3.0¶
Released on: 24/02/2019
- Added
fftw
engine topylops.signalprocessing.FFT
operator - Added
pylops.optimization.sparsity.ISTA
andpylops.optimization.sparsity.FISTA
sparse solvers - Added possibility to broadcast (handle multi-dimensional arrays)
to
pylops.Diagonal
andpylops..Restriction
operators - Added
pylops.signalprocessing.Interp
operator - Added
pylops.Spread
operator - Added
pylops.signalprocessing.Radon2D
operator
Version 1.2.0¶
Released on: 13/01/2019
- Added
pylops.LinearOperator.eigs
andpylops.LinearOperator.cond
methods to estimate estimate eigenvalues and conditioning number using scipy wrapping of ARPACK - Modified default
dtype
for all operators to befloat64
(orcomplex128
) to be consistent with default dtypes used by numpy (and scipy) for real and complex floating point numbers. - Added
pylops.Flip
operator - Added
pylops.Symmetrize
operator - Added
pylops.Block
operator - Added
pylops.Regression
operator performing polynomial regression and modifiedpylops.LinearRegression
to be a simple wrapper ofpylops.Regression
whenorder=1
- Modified
pylops.MatrixMult
operator to work with both numpy ndarrays and scipy sparse matrices - Added
pylops.avo.prestack.PrestackInversion
routine - Added possibility to have a data weight via
Weight
input parameter topylops.optimization.leastsquares.NormalEquationsInversion
andpylops.optimization.leastsquares.RegularizedInversion
solvers - Added
pylops.optimization.sparsity.IRLS
solver
Version 1.0.1¶
Released on: 09/12/2018
- Changed module from
lops
topylops
for consistency with library name (and pip install). - Removed quickplots from utilities and
matplotlib
from requirements of PyLops.