You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+28-1Lines changed: 28 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,30 @@
1
+
Changelog
2
+
=========
3
+
4
+
# 2.3.0
5
+
6
+
* Added `pylops.JaxOperator`, `pylops.signalprocessing.DWTND`, and `pylops.signalprocessing.DTCWT` operators.
7
+
* Added `updatesrc` method to `pylops.waveeqprocessing.AcousticWave2D`.
8
+
* 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`.
9
+
* Added `kwargs_fft` to `pylops.signalprocessing.FFTND`.
10
+
* Added `cosinetaper` to `pylops.utils.tapers.cosinetaper`.
11
+
* Added `kind` to `pylops.waveeqprocessing.Deghosting`.
12
+
* Modified all methods in `pylops.utils.backend` to enable jax integration.
13
+
* Modified implementations of `pylops.signalprocessing.Sliding1D`, `pylops.signalprocessing.Sliding2D`,
14
+
`pylops.signalprocessing.Sliding3D`, `pylops.signalprocessing.Patch2D`, and
15
+
`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.
16
+
* Modified `pylops.waveeqprocessing.AcousticWave2D._born_oneshot` and
17
+
`pylops.waveeqprocessing.AcousticWave2D._born_allshots` to avoid recreating the devito solver for each shot (and enabling internal caching...)
18
+
* Modified `dtype` of `pylops.signalprocessing.Shift` to be that of the input vector.
19
+
* Modified `pylops.waveeqprocessing.BlendingContinuous` to use `matvec/rmatvec` instead of `@/.H @` for compatibility with pylops solvers.
20
+
* Removed `cusignal` as optional dependency and `cupy`'s equivalent methods (since the library
21
+
is now unmantained and merged into `cupy`).
22
+
* Fixed ImportError of optional dependencies when installed but not correctly functioning (see [Issue #548](https://github.com/PyLops/pylops/issues/548))
23
+
* Fixed bug in :py:func:`pylops.utils.deps.to_cupy_conditional` (see [Issue #579](https://github.com/PyLops/pylops/issues/579))
24
+
* Fixed bug in the definition of `nttot` in :py:class:`pylops.waveeqprocessing.BlendingContinuous`
25
+
* Fixed bug in :py:func:`pylops.utils.signalprocessing.dip_estimate` (see [Issue #572](https://github.com/PyLops/pylops/issues/572))
* Added `kind='datamodel'` to :py:class:`pylops.optimization.cls_sparsity.IRLS`
67
+
* Improved inner working of :py:class:`pylops.waveeqprocessing.Kirchhoff` operator significantly
36
68
reducing the memory usage related to storing traveltime, angle, and amplitude tables.
37
-
* Improved handling of `haxes` in :class:`pylops.signalprocessing.Radon2D` and :class:`pylops.signalprocessing.Radon3D` operators
38
-
* Added possibility to feed ND-arrays to :class:`pylops.TorchOperator`
39
-
* Removed :class:`pylops.LinearOperator` inheritance and added `__call__` method to :class:`pylops.TorchOperator`
40
-
* Removed `scipy.sparse.linalg.LinearOperator` and added :class:`abc.ABC` inheritance to :class:`pylops.LinearOperator`
41
-
* All operators are now classes of `:class:`pylops.LinearOperator` type
69
+
* Improved handling of `haxes` in :py:class:`pylops.signalprocessing.Radon2D` and :py:class:`pylops.signalprocessing.Radon3D` operators
70
+
* Added possibility to feed ND-arrays to :py:class:`pylops.TorchOperator`
71
+
* Removed :py:class:`pylops.LinearOperator` inheritance and added `__call__` method to :py:class:`pylops.TorchOperator`
72
+
* Removed `scipy.sparse.linalg.LinearOperator` and added :py:class:`abc.ABC` inheritance to :py:class:`pylops.LinearOperator`
73
+
* All operators are now classes of `:py:class:`pylops.LinearOperator` type
42
74
43
75
44
76
Version 2.0.0
@@ -56,25 +88,25 @@ To aid users in navigating the breaking changes, we provide the following docume
56
88
Users do not need to use ``.ravel`` and ``.reshape`` as often anymore. See the migration guide for more information.
57
89
* Typing annotations for several submodules (``avo``, ``basicoperators``, ``signalprocessing``, ``utils``, ``optimization``,
58
90
``waveeqprocessing``)
59
-
* New :class:`pylops.TorchOperator` wraps a Pylops operator into a PyTorch function
60
-
* New :class:`pylops.signalprocessing.Patch3D` applies a linear operator repeatedly to patches of the model vector
61
-
* Each of :class:`pylops.signalprocessing.Sliding1D`, :class:`pylops.signalprocessing.Sliding2D`,
62
-
:class:`pylops.signalprocessing.Sliding3D`, :class:`pylops.signalprocessing.Patch2D` and :class:`pylops.signalprocessing.Patch3D`
91
+
* New :py:class:`pylops.TorchOperator` wraps a Pylops operator into a PyTorch function
92
+
* New :py:class:`pylops.signalprocessing.Patch3D` applies a linear operator repeatedly to patches of the model vector
93
+
* Each of :py:class:`pylops.signalprocessing.Sliding1D`, :py:class:`pylops.signalprocessing.Sliding2D`,
94
+
:py:class:`pylops.signalprocessing.Sliding3D`, :py:class:`pylops.signalprocessing.Patch2D` and :py:class:`pylops.signalprocessing.Patch3D`
63
95
have an associated ``slidingXd_design`` or ``patchXd_design`` functions associated with them to aid the user in designing the windows
64
-
* :class:`pylops.FirstDerivative` and :class:`pylops.SecondDerivative`, and therefore other derivative operators which rely on the
65
-
(e.g., :class:`pylops.Gradient`) support higher order stencils
66
-
* :class:`pylops.waveeqprocessing.Kirchhoff` substitutes :class:`pylops.waveeqprocessing.Demigration` and incorporates a variety of
96
+
* :py:class:`pylops.FirstDerivative` and :py:class:`pylops.SecondDerivative`, and therefore other derivative operators which rely on the
97
+
(e.g., :py:class:`pylops.Gradient`) support higher order stencils
98
+
* :py:class:`pylops.waveeqprocessing.Kirchhoff` substitutes :py:class:`pylops.waveeqprocessing.Demigration` and incorporates a variety of
67
99
new functionalities
68
-
* New :class:`pylops.waveeqprocessing.AcousticWave2D` wraps the `Devito <https://www.devitoproject.org/>`_ acoutic wave propagator
100
+
* New :py:class:`pylops.waveeqprocessing.AcousticWave2D` wraps the `Devito <https://www.devitoproject.org/>`_ acoutic wave propagator
69
101
providing a wave-equation based Born modeling operator with a reverse-time migration adjoint
70
-
* Solvers can now be implemented via the :class:`pylops.optimization.basesolver.Solver` class. They can now be used through a
71
-
functional interface with lowercase name (e.g., :func:`pylops.optimization.sparsity.splitbregman`) or via class interface with CamelCase name
72
-
(e.g., :class:`pylops.optimization.cls_sparsity.SplitBregman`. Moreover, solvers now accept callbacks defined by the
73
-
:class:`pylops.optimization.callback.Callbacks` interface (see e.g., :class:`pylops.optimization.callback.MetricsCallback`).
74
-
* Metrics such as :func:`pylops.utils.metrics.mae` and :func:`pylops.utils.metrics.mse` and others
75
-
* New :func:`pylops.utils.signalprocessing.dip_estimate` estimates local dips in an image (measured in radians) in a stabler way than the old :func:`pylops.utils.signalprocessing.dip_estimate` did for slopes.
76
-
* New :func:`pylops.utils.tapers.tapernd` for N-dimensional tapers
77
-
* New wavelets :func:`pylops.utils.wavelets.klauder` and :func:`pylops.utils.wavelets.ormsby`
102
+
* Solvers can now be implemented via the :py:class:`pylops.optimization.basesolver.Solver` class. They can now be used through a
103
+
functional interface with lowercase name (e.g., :py:func:`pylops.optimization.sparsity.splitbregman`) or via class interface with CamelCase name
104
+
(e.g., :py:class:`pylops.optimization.cls_sparsity.SplitBregman`. Moreover, solvers now accept callbacks defined by the
105
+
:py:class:`pylops.optimization.callback.Callbacks` interface (see e.g., :py:class:`pylops.optimization.callback.MetricsCallback`)
106
+
* Metrics such as :py:func:`pylops.utils.metrics.mae` and :py:func:`pylops.utils.metrics.mse` and others
107
+
* New :py:func:`pylops.utils.signalprocessing.dip_estimate` estimates local dips in an image (measured in radians) in a stabler way than the old :py:func:`pylops.utils.signalprocessing.dip_estimate` did for slopes.
108
+
* New :py:func:`pylops.utils.tapers.tapernd` for N-dimensional tapers
109
+
* New wavelets :py:func:`pylops.utils.wavelets.klauder` and :py:func:`pylops.utils.wavelets.ormsby`
78
110
79
111
**Documentation**
80
112
@@ -210,7 +242,7 @@ Version 1.15.0
210
242
``full``, ``half``, or ``trapezoidal`` integration.
0 commit comments