Skip to content

Latest commit

 

History

History
316 lines (245 loc) · 12.4 KB

changelog.rst

File metadata and controls

316 lines (245 loc) · 12.4 KB

Changelog

Version 1.14.0

Released on: 09/07/2021

  • Added :pypylops.optimization.solver.lsqr solver
  • Added utility routine :pypylops.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). :pypylops.basicoperators.Real, :pypylops.basicoperators.Imag, and :pypylops.basicoperators.Conj
  • Added possibility to run operators :pypylops.basicoperators.HStack, :pypylops.basicoperators.VStack, :pypylops.basicoperators.Block :pypylops.basicoperators.BlockDiag, and :pypylops.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 :pypylops.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 :pypylops.optimization.solver.cg and :pypylops.optimization.solver.cgls to be L2 norms of residuals
  • Fixed :pypylops.utils.dottest.dottest for imaginary vectors and to ensure u and v vectors are of same dtype of the operator

Version 1.13.0

Released on: 26/03/2021

  • Added :pypylops.signalprocessing.Sliding1D and :pypylops.signalprocessing.Patch2D operators
  • Added :pypylops.basicoperators.MemoizeOperator operator
  • Added decay and analysis option in :pypylops.optimization.sparsity.ISTA and :pypylops.optimization.sparsity.FISTA solvers
  • Added toreal and toimag methods to :pypylops.LinearOperator
  • Make nr and nc optional in :pypylops.utils.dottest.dottest
  • Fixed complex check in :pypylops.basicoperators.MatrixMult when working with complex-valued cupy arrays
  • Fixed bug in data reshaping in check in :pypylops.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 and solver submodules to :pypylops.optimization
  • Added deps and backend submodules to :pypylops.utils
  • Fixed bug in :pypylops.signalprocessing.Convolve2D. and :pypylops.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`pylops.signalprocessing.ChirpRadon3D

Version 1.11.0

Released on: 24/10/2020

  • Added :pypylops.signalprocessing.ChirpRadon2D and :pypylops.signalprocessing.ChirpRadon3D operators.
  • Fixed bug in the inferred dimensions for regularization data creation in :pypylops.optimization.leastsquares.NormalEquationsInversion, :pypylops.optimization.leastsquares.RegularizedInversion, and :pypylops.optimization.sparsity.SplitBregman.
  • Changed dtype of :pypylops.HStack to allow automatic inference from dtypes of input operator.
  • Modified dtype of :pypylops.waveeqprocessing.Marchenko operator to ensure that outputs of forward and adjoint are real arrays.
  • Reverted to previous complex-friendly implementation of :pypylops.optimization.sparsity._softthreshold to avoid division by 0.

Version 1.10.0

Released on: 13/08/2020

  • Added tosparse method to :pypylops.LinearOperator.
  • Added kind=linear in :pypylops.signalprocessing.Seislet operator.
  • Added kind to :pypylops.FirstDerivative. operator to perform forward and backward (as well as centered) derivatives.
  • Added kind to :pypylops.optimization.sparsity.IRLS solver to choose between data or model sparsity.
  • Added possibility to use :pyscipy.sparse.linalg.lobpcg in :pypylops.LinearOperator.eigs and pylops.LinearOperator.cond
  • Added possibility to use :pyscipy.signal.oaconvolve in :pypylops.signalprocessing.Convolve1D.
  • Added NRegs to :pypylops.optimization.leastsquares.NormalEquationsInversion to allow providing regularization terms directly in the form of H^T H.

Version 1.9.1

Released on: 25/05/2020

  • Changed internal behaviour of :pypylops.sparsity.OMP when niter_inner=0. Automatically reverts to Matching Pursuit algorithm.
  • Changed handling of dtype in :pypylops.signalprocessing.FFT and :pypylops.signalprocessing.FFT2D to ensure that the type of the input vector is retained when applying forward and adjoint.
  • Added dtype parameter to the FFT calls in the definition of the :pypylops.waveeqprocessing.MDD operation. This ensure that the type of the real part of G input is enforced to the output vectors of the forward and adjoint operations.

Version 1.9.0

Released on: 13/04/2020

  • Added :pypylops.waveeqprocessing.Deghosting and :pypylops.signalprocessing.Seislet operators
  • Added hard and half thresholds in :pypylops.optimization.sparsity.ISTA and :pypylops.optimization.sparsity.FISTA solvers
  • Added prescaled input parameter to :pypylops.waveeqprocessing.MDC and :pypylops.waveeqprocessing.Marchenko
  • Added sinc interpolation to :pypylops.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 :pypylops.LinearOperator.asoperator method to :pypylops.LinearOperator
  • Added :pypylops.utils.signalprocessing.slope_estimate function
  • Fix bug in :pypylops.signalprocessing.Radon2D and :pypylops.signalprocessing.Radon3D when onthefly=True returning the same result as when onthefly=False

Version 1.8.0

Released on: 12/01/2020

  • Added :pypylops.LinearOperator.todense method to :pypylops.LinearOperator
  • Added :pypylops.signalprocessing.Bilinear, :pypylops.signalprocessing.DWT, and :pypylops.signalprocessing.DWT2 operators
  • Added :pypylops.waveeqprocessing.PressureToVelocity, :pypylops.waveeqprocessing.UpDownComposition3Doperator, and :pypylops.waveeqprocessing.PhaseShift operators
  • Fix bug in :pypylops.basicoperators.Kronecker (see Issue #125)

Version 1.7.0

Released on: 10/11/2019

  • Added :pypylops.Gradient, :pypylops.Sum, :pypylops.FirstDirectionalDerivative, and :pypylops.SecondDirectionalDerivative operators
  • Added :pypylops.LinearOperator._ColumnLinearOperator private operator
  • Added possibility to directly mix Linear operators and numpy/scipy 2d arrays in :pypylops.VStack and :pypylops.HStack and :pypylops.BlockDiag operators
  • Added :pypylops.optimization.sparsity.OMP solver

Version 1.6.0

Released on: 10/08/2019

  • Added :pypylops.signalprocessing.ConvolveND operator
  • Added :pypylops.utils.signalprocessing.nonstationary_convmtx to create matrix for non-stationary convolution
  • Added possibility to perform seismic modelling (and inversion) with non-stationary wavelet in :pypylops.avo.poststack.PoststackLinearModelling
  • Create private methods for :pypylops.Block, :pypylops.avo.poststack.PoststackLinearModelling, :pypylops.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 to :pypylops.LinearOperator
  • Added :pypylops.Kronecker, :pypylops.Roll, and :pypylops.Transpose operators
  • Added :pypylops.signalprocessing.Fredholm1 operator
  • Added :pypylops.optimization.sparsity.SPGL1 and :pypylops.optimization.sparsity.SplitBregman solvers
  • Sped up :pypylops.signalprocessing.Convolve1D using :pyscipy.signal.fftconvolve for multi-dimensional signals
  • Changes in implementation of :pypylops.waveeqprocessing.MDC and :pypylops.waveeqprocessing.Marchenko to take advantage of primitives operators
  • Added epsRL1 option to :pypylops.avo.poststack.PoststackInversion and :pypylops.avo.prestack.PrestackInversion to include TV-regularization terms by means of :pypylops.optimization.sparsity.SplitBregman solver

Version 1.4.0

Released on: 01/05/2019

  • Added numba engine to :pypylops.Spread and :pypylops.signalprocessing.Radon2D operators
  • Added :pypylops.signalprocessing.Radon3D operator
  • Added :pypylops.signalprocessing.Sliding2D and :pypylops.signalprocessing.Sliding3D operators
  • Added :pypylops.signalprocessing.FFTND operator
  • Added :pypylops.signalprocessing.Radon3D operator
  • Added niter option to :pypylops.LinearOperator.eigs method
  • Added show option to :pypylops.optimization.sparsity.ISTA and :pypylops.optimization.sparsity.FISTA solvers
  • Added :pypylops.waveeqprocessing.seismicinterpolation, :pypylops.waveeqprocessing.waveeqdecomposition and :pypylops.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 to :pypylops.signalprocessing.FFT operator
  • Added :pypylops.optimization.sparsity.ISTA and :pypylops.optimization.sparsity.FISTA sparse solvers
  • Added possibility to broadcast (handle multi-dimensional arrays) to :pypylops.Diagonal and :pypylops..Restriction operators
  • Added :pypylops.signalprocessing.Interp operator
  • Added :pypylops.Spread operator
  • Added :pypylops.signalprocessing.Radon2D operator

Version 1.2.0

Released on: 13/01/2019

  • Added :pypylops.LinearOperator.eigs and :pypylops.LinearOperator.cond methods to estimate estimate eigenvalues and conditioning number using scipy wrapping of ARPACK
  • Modified default dtype for all operators to be float64 (or complex128) to be consistent with default dtypes used by numpy (and scipy) for real and complex floating point numbers.
  • Added :pypylops.Flip operator
  • Added :pypylops.Symmetrize operator
  • Added :pypylops.Block operator
  • Added :pypylops.Regression operator performing polynomial regression and modified :pypylops.LinearRegression to be a simple wrapper of :pypylops.Regression when order=1
  • Modified :pypylops.MatrixMult operator to work with both numpy ndarrays and scipy sparse matrices
  • Added :pypylops.avo.prestack.PrestackInversion routine
  • Added possibility to have a data weight via Weight input parameter to :pypylops.optimization.leastsquares.NormalEquationsInversion and :pypylops.optimization.leastsquares.RegularizedInversion solvers
  • Added :pypylops.optimization.sparsity.IRLS solver

Version 1.1.0

Released on: 13/12/2018

  • Added :pypylops.CausalIntegration operator

Version 1.0.1

Released on: 09/12/2018

  • Changed module from lops to pylops for consistency with library name (and pip install).
  • Removed quickplots from utilities and matplotlib from requirements of PyLops.

Version 1.0.0

Released on: 04/12/2018

  • First official release.