Skip to content

Commit fea92f4

Browse files
committed
DOC: update release notes for v1.1 [ci skip]
1 parent ed5e03c commit fea92f4

File tree

1 file changed

+116
-7
lines changed

1 file changed

+116
-7
lines changed

doc/release/1.1.0-notes.rst

Lines changed: 116 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,66 @@ PyWavelets 1.1.0 Release Notes
66

77
We are very pleased to announce the release of PyWavelets 1.1.
88

9-
This release requires Python >=3.5 and has dropped Python 2.7 support.
9+
This release includes enhanced functionality for both the stationary wavelet
10+
transforms (``swt``, ``swt2``, ``swtn``) as well as the continuous wavelet
11+
transform (``cwt``). In addition, there are a handful of bug fixes as
12+
described in more detail below.
13+
14+
This release has dropped Python 2.7 support and now requires Python >=3.5.
15+
16+
In addition to these changes to the software itself, a paper describing
17+
PyWavelets was recently published in The Journal of Open Source Software:
18+
https://joss.theoj.org/papers/10.21105/joss.01237
19+
1020

1121
New features
1222
============
1323

14-
Deprecated features
15-
===================
24+
- All ``swt`` functions now have a new ``trim_approx`` option that can be used
25+
to exclude the approximation coefficients from all but the final level of
26+
decomposition. This mode makes the output of these functions consistent with
27+
the format of the output from the corresponding ``wavedec`` functions.
28+
29+
- All ``swt`` functions also now have a new ``norm`` option that, when set to
30+
``True`` and used in combination with ``trim_approx=True``, gives a partition
31+
of variance across the transform coefficients. In other words, the sum of
32+
the variances of all coefficients is equal to the variance of the original
33+
data. This partitioning of variance makes the ``swt`` transform more similar
34+
to the multiple-overlap DWT (MODWT) described in Percival and Walden's book,
35+
"Wavelet Methods for Time Series Analysis". (#476)
36+
37+
A demo of this new ``swt`` functionality is available at
38+
https://github.com/PyWavelets/pywt/blob/master/demo/swt_variance.py
39+
40+
- The contiuous wavelet transform (``cwt``) now offers an FFT-based
41+
implementation in addition to the previous convolution based one. The new
42+
``method`` argument can be set to either ``'conv'`` or ``'fft'`` to select
43+
between these two implementations. (#490).
44+
45+
- The ``cwt`` now also has ``axis`` support so that cwts can be applied in
46+
batch along any axis of an n-dimensional array. This enables faster batch
47+
transformation of signals. (#509)
48+
1649

1750
Backwards incompatible changes
1851
==============================
1952

20-
When using complex-valued wavelets with the ``cwt``, the output will now be
53+
- When the input to ``cwt`` is single precision, the computations are now
54+
performed in single precision. This was done both for efficiency and to make
55+
``cwt`` handle dtypes consistently with the discrete transforms in
56+
PyWavelets. This is a change from the prior behaviour of always performing
57+
the ``cwt`` in double precision. (#507)
58+
59+
- When using complex-valued wavelets with the ``cwt``, the output will now be
2160
the complex conjugate of the result that was produced by PyWavelets 1.0.x.
2261
This was done to account for a bug described below. The magnitude of the
23-
``cwt`` coefficients will still match those from previous releases.
62+
``cwt`` coefficients will still match those from previous releases. (#439)
63+
2464

2565
Bugs Fixed
2666
==========
2767

28-
For a ``cwt`` with complex wavelets, the results in PyWavelets 1.0.x releases
68+
- For a ``cwt`` with complex wavelets, the results in PyWavelets 1.0.x releases
2969
matched the output of Matlab R2012a's ``cwt``. Howveer, older Matlab releases
3070
like R2012a had a phase that was of opposite sign to that given in textbook
3171
definitions of the CWT (Eq. 2 of Torrence and Compo's review article, "A
@@ -34,16 +74,85 @@ were the complex conjugates of the expected result. This was validated by
3474
comparing the results of a transform using ``cmor1.0-1.0`` as compared to the
3575
``cwt`` implementation available in Matlab R2017b as well as the function
3676
``wt.m`` from the Lancaster University Physics department's
37-
`MODA toolbox <https://github.com/luphysics/MODA>`_
77+
`MODA toolbox <https://github.com/luphysics/MODA>`_. (#439)
78+
79+
- For some boundary modes and data sizes, round-trip ``dwt``/``idwt`` can
80+
result in an output that has one additional coefficient. Prior to this
81+
relese, this could cause a failure during ``WaveletPacket`` or
82+
``WaveletPacket2D`` reconstruction. These wavelet packet transforms have now
83+
been fixed and round-trip wavelet packet transforms always preserve the
84+
original data shape. (#448)
85+
86+
- All inverse transforms now handle mixed precision coefficients consistently.
87+
Prior to this release some inverse transform raised an error upon
88+
encountering mixed precision dtypes in the wavelet subbands. In release 1.1,
89+
when the user-provided coefficients are a mixture of single and double
90+
precision, all coefficients will be promoted to double precision. (#450)
91+
92+
- A bug that caused a failure for ``iswtn`` when using user-provided ``axes``
93+
with non-uniform shape along the transformed axes has been fixed. (#462)
3894

3995
Other changes
4096
=============
4197

98+
- The PyWavelet test suite now uses ``pytest`` rather than ``nose``. (#477)
99+
100+
- Cython code has been updated to use ``language_level=3``. (#435)
101+
102+
- PyWavelets has adopted the Scipy Code of Conduct. (#521)
103+
42104
Authors
43105
=======
44106

107+
* Pavle Boškoski +
108+
* Luke M Craig +
109+
* Corey Goldberg
110+
* Ralf Gommers
111+
* Gregory R. Lee
112+
* Pavle Boškoski +
113+
* Lokesh Ravindranathan
114+
* Alexandre Sauve +
115+
* Arfon Smith +
116+
* Valentin Valls +
117+
118+
A total of 10 people contributed to this release.
119+
People with a "+" by their names contributed a patch for the first time.
120+
This list of names is automatically generated, and may not be fully complete.
121+
45122
Issues closed for v1.1.0
46123
------------------------
47124

125+
- `#389 <https://github.com/PyWavelets/pywt/issues/389>`__: Change test suite from nose to pytest
126+
- `#445 <https://github.com/PyWavelets/pywt/issues/445>`__: Batch load for pywt.cwt
127+
- `#449 <https://github.com/PyWavelets/pywt/issues/449>`__: Coefficients arrays must have the same dtype error in iswt function
128+
129+
48130
Pull requests for v1.1.0
49131
------------------------
132+
133+
- `#434 <https://github.com/PyWavelets/pywt/pull/434>`__: Drop Python 2.7 testing on CI and update docs for Python 3.5+...
134+
- `#435 <https://github.com/PyWavelets/pywt/pull/435>`__: set language_level=3 for Cython
135+
- `#436 <https://github.com/PyWavelets/pywt/pull/436>`__: Fix deprecated import for Iterable
136+
- `#438 <https://github.com/PyWavelets/pywt/pull/438>`__: Fix spelling of "Garrote"
137+
- `#439 <https://github.com/PyWavelets/pywt/pull/439>`__: fix the phase of CWT when using complex mother wavelets
138+
- `#442 <https://github.com/PyWavelets/pywt/pull/442>`__: document the numpy.pad equivalent of 'antireflect'
139+
- `#446 <https://github.com/PyWavelets/pywt/pull/446>`__: Spelling correction
140+
- `#448 <https://github.com/PyWavelets/pywt/pull/448>`__: Properly trim wavelet packet node coefficients during reconstruction
141+
- `#450 <https://github.com/PyWavelets/pywt/pull/450>`__: handle mixed dtype cofficients correctly across inverse transforms
142+
- `#462 <https://github.com/PyWavelets/pywt/pull/462>`__: fix bug in iswtn for data of arbitrary shape when using user-specified...
143+
- `#463 <https://github.com/PyWavelets/pywt/pull/463>`__: TST: fix misc. doctest failures (test_doc.py)
144+
- `#471 <https://github.com/PyWavelets/pywt/pull/471>`__: user-friendly error messages about multilevel DWT format
145+
- `#476 <https://github.com/PyWavelets/pywt/pull/476>`__: swt normalization and option to trim the approximation coefficients
146+
- `#477 <https://github.com/PyWavelets/pywt/pull/477>`__: MAINT/TST: update tests to use pytest
147+
- `#490 <https://github.com/PyWavelets/pywt/pull/490>`__: cwt with fft convolution support
148+
- `#495 <https://github.com/PyWavelets/pywt/pull/495>`__: BLD: add missing import of warnings module to setup.py
149+
- `#499 <https://github.com/PyWavelets/pywt/pull/499>`__: register markers for pytest 4.5 compatibility
150+
- `#502 <https://github.com/PyWavelets/pywt/pull/502>`__: fix docstring's scale2frequency parameter order
151+
- `#506 <https://github.com/PyWavelets/pywt/pull/506>`__: Guard against trying to transform along size 0 axes
152+
- `#507 <https://github.com/PyWavelets/pywt/pull/507>`__: preserve single precision in CWT
153+
- `#509 <https://github.com/PyWavelets/pywt/pull/509>`__: add axis support to cwt
154+
- `#510 <https://github.com/PyWavelets/pywt/pull/510>`__: add demo using swt with norm=True to analyze variance across...
155+
- `#511 <https://github.com/PyWavelets/pywt/pull/511>`__: MAINT: split bundled licenses into a separate file
156+
- `#514 <https://github.com/PyWavelets/pywt/pull/514>`__: Small typo in the doc
157+
- `#516 <https://github.com/PyWavelets/pywt/pull/516>`__: Fix docstrings to avoid sphinx warnings
158+
- `#521 <https://github.com/PyWavelets/pywt/pull/521>`__: DOC: adopt the SciPy Code of Conduct

0 commit comments

Comments
 (0)