1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
==============================
PyWavelets 0.4.0 Release Notes
==============================
.. contents::
PyWavelets 0.4.0 is the culmination of 6 months of work. In addition to
several new features, some changes and deprecations have been made to streamline
the API.
This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.6.2 or greater.
Highlights of this release include:
- 1D and 2D inverse stationary wavelet transforms
- Substantially faster 2D and nD discrete wavelet transforms
- Complex number support
- nD versions of the multilevel DWT and IDWT
New features
============
1D and 2D inverse stationary wavelet transforms
-----------------------------------------------
1D (``iswt``) and 2D (``iswt2``) inverse stationary wavelet transforms were
added. These currently only support even length inputs.
Faster 2D and nD wavelet transforms
-----------------------------------
The multidimensional DWT and IDWT code was refactored and is now an order of
magnitude faster than in previous releases. The following functions benefit:
``dwt2``, ``idwt2``, ``dwtn``, ``idwtn``.
Complex floating point support
------------------------------
64 and 128-bit complex data types are now supported by all wavelet transforms.
nD implementation of the multilevel DWT and IDWT
------------------------------------------------
The existing 1D and 2D multilevel transforms were supplemented with an nD
implementation.
Wavelet transforms can be applied along a specific axis/axes
------------------------------------------------------------
All wavelet transform functions now support explicit specification of the axis
or axes upon which to perform the transform.
Example Datasets
----------------
Two additional 2D grayscale images were added (`camera`, `ascent`). The
previously existing 1D ECG data (`ecg`) and the 2D aerial image (`aero`)
used in the demos can also now be imported via functions defined in
`pywt.data` (e.g. ``camera = pywt.data.camera()``)
Deprecated features
===================
A number of functions have been renamed, the old names are deprecated and will
be removed in a future release:
- ``intwave``, renamed to ``integrate_wavelet``
- ``centrfrq``, renamed to ``central_frequency``
- ``scal2frq``, renamed to ``scale2frequency``
- ``orthfilt``, renamed to ``orthogonal_filter_bank``
Integration of general signals (i.e. not wavelets) with ``integrate_wavelet``
is deprecated.
The ``MODES`` object and its attributes are deprecated. The new name is
``Modes``, and the attribute names are expanded:
- ``zpd``, renamed to ``zero``
- ``cpd``, renamed to ``constant``
- ``sp1``, renamed to ``smooth``
- ``sym``, renamed to ``symmetric``
- ``ppd``, renamed to ``periodic``
- ``per``, renamed to ``periodization``
Backwards incompatible changes
==============================
``idwt`` no longer takes a ``correct_size`` parameter. As a consequence,
``idwt2`` inputs must match exactly in length. For multilevel transforms, where
arrays differing in size by one element may be produced, use the ``waverec``
functions from the ``multilevel`` module instead.
Bugs Fixed
==========
float32 inputs were not always respected. All transforms now return float32
outputs when called using float32 inputs.
Incorrect detail coefficients were returned by `downcoef` when `level > 1`.
Other changes
=============
Much of the API documentation is now autogenerated from the corresponding
function docstrings. The numpydoc sphinx extension is now needed to build the
documentation.
Authors
=======
* Thomas Arildsen +
* François Boulogne
* Ralf Gommers
* Gregory R. Lee
* Michael Marino +
* Aaron O'Leary +
* Daniele Tricoli +
* Kai Wohlfahrt
A total of 8 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.
Issues closed for v0.4.0
------------------------
- `#46 <https://github.com/PyWavelets/pywt/issues/46>`__: Independent test comparison
- `#95 <https://github.com/PyWavelets/pywt/issues/95>`__: Simplify Matlab tests
- `#97 <https://github.com/PyWavelets/pywt/issues/97>`__: BUG: erroneous detail coefficients returned by downcoef with...
- `#140 <https://github.com/PyWavelets/pywt/issues/140>`__: demo/dwt_signal_decomposition.py : TypeError: object of type...
- `#141 <https://github.com/PyWavelets/pywt/issues/141>`__: Documentation needs update: ImportError: cannot import name 'multilevel'
Pull requests for v0.4.0
------------------------
- `#55 <https://github.com/PyWavelets/pywt/pull/55>`__: [RFC] Api changes
- `#59 <https://github.com/PyWavelets/pywt/pull/59>`__: Refactor convolution.c.src
- `#64 <https://github.com/PyWavelets/pywt/pull/64>`__: MAINT: make LH, HL variable names in idwt2 consistent with dwt2
- `#67 <https://github.com/PyWavelets/pywt/pull/67>`__: ENH: add wavedecn and waverecn functions
- `#68 <https://github.com/PyWavelets/pywt/pull/68>`__: ENH: Faster dwtn and idwtn
- `#88 <https://github.com/PyWavelets/pywt/pull/88>`__: DOC minor edit about possible naming
- `#93 <https://github.com/PyWavelets/pywt/pull/93>`__: Added implementation of iswt and iswt2
- `#98 <https://github.com/PyWavelets/pywt/pull/98>`__: fix downcoef detail coefficients for level > 1
- `#99 <https://github.com/PyWavelets/pywt/pull/99>`__: complex support in all dwt and idwt related functions
- `#100 <https://github.com/PyWavelets/pywt/pull/100>`__: replace mlabwrap with python-matlab-bridge in Matlab tests
- `#102 <https://github.com/PyWavelets/pywt/pull/102>`__: Replace some .src expansion with macros
- `#104 <https://github.com/PyWavelets/pywt/pull/104>`__: Faster idwtn/dwtn
- `#106 <https://github.com/PyWavelets/pywt/pull/106>`__: make sure transforms respect float32 dtype
- `#109 <https://github.com/PyWavelets/pywt/pull/109>`__: DOC: fix broken link in sidebar for html docs.
- `#112 <https://github.com/PyWavelets/pywt/pull/112>`__: Complex fix
- `#113 <https://github.com/PyWavelets/pywt/pull/113>`__: TST: don't build .exe installers on Appveyor anymore, only wheels.
- `#116 <https://github.com/PyWavelets/pywt/pull/116>`__: [RFC] ENH: Add axis argument to dwt
- `#117 <https://github.com/PyWavelets/pywt/pull/117>`__: MAINT: remove deprecated for loop syntax from Cython code
- `#121 <https://github.com/PyWavelets/pywt/pull/121>`__: Fix typo
- `#123 <https://github.com/PyWavelets/pywt/pull/123>`__: MAINT: remove some unused imports
- `#124 <https://github.com/PyWavelets/pywt/pull/124>`__: switch travis from python 3.5-dev to 3.5
- `#130 <https://github.com/PyWavelets/pywt/pull/130>`__: Add axis argument to multidim
- `#138 <https://github.com/PyWavelets/pywt/pull/138>`__: WIP: Documentation updates for v0.4.0
- `#139 <https://github.com/PyWavelets/pywt/pull/139>`__: Autogenerate function API docs
- `#142 <https://github.com/PyWavelets/pywt/pull/142>`__: fix broken docstring examples in _multilevel.py
- `#143 <https://github.com/PyWavelets/pywt/pull/143>`__: handle None properly in waverec
- `#144 <https://github.com/PyWavelets/pywt/pull/144>`__: Add importable images
- `#145 <https://github.com/PyWavelets/pywt/pull/145>`__: DOC: Document MSVC versions
|