[Python-modules-commits] [pywavelets] 02/07: Import pywavelets_0.5.1.orig.tar.gz
Daniele Tricoli
eriol-guest at moszumanska.debian.org
Tue Dec 13 00:21:19 UTC 2016
This is an automated email from the git hooks/post-receive script.
eriol-guest pushed a commit to branch master
in repository pywavelets.
commit 1b83e07fb82d6896cd7eb63b5fe5a21c23ada0cd
Author: Daniele Tricoli <eriol at mornie.org>
Date: Tue Dec 13 01:16:57 2016 +0100
Import pywavelets_0.5.1.orig.tar.gz
---
CHANGES.txt | 10 +
COPYING.txt | 20 -
MANIFEST.in | 2 +-
PKG-INFO | 11 +-
PKG-INFO => PyWavelets.egg-info/PKG-INFO | 11 +-
PyWavelets.egg-info/SOURCES.txt | 166 +
PyWavelets.egg-info/dependency_links.txt | 1 +
PyWavelets.egg-info/requires.txt | 1 +
PyWavelets.egg-info/top_level.txt | 1 +
README => README.rst | 105 +-
THANKS.txt | 0
cythonize.dat | 1 -
demo/_dwt_decompose.c | 2 +-
demo/batch_processing.py | 101 +
demo/benchmark.py | 2 +-
demo/cwt_analysis.py | 35 +
demo/data/aero.png | Bin 229482 -> 0 bytes
demo/dwt2_dwtn_image.py | 4 +-
demo/dwt_signal_decomposition.py | 7 +-
demo/dwt_swt_show_coeffs.py | 8 +-
demo/image_blender.py | 12 +-
demo/plot_wavelets.py | 0
demo/swt2.py | 7 +-
demo/waveinfo.py | 58 +-
demo/wp_2d.py | 8 +-
demo/wp_scalogram.py | 2 +-
demo/wp_visualize_coeffs_distribution.py | 4 +-
doc/Makefile | 0
doc/doc2html.bat | 0
doc/make.bat | 0
doc/release/0.3.0-notes.rst | 0
doc/release/0.4.0-notes.rst | 166 +
doc/release/0.5.0-notes.rst | 240 +
doc/release/0.5.1-notes.rst | 34 +
doc/source/COPYING.txt | 19 -
doc/source/_static/comments.png | Bin
doc/source/_static/favicon.ico | Bin
doc/source/_static/github.png | Bin
doc/source/_static/page_edit.png | Bin
doc/source/_static/twitter.png | Bin
doc/source/_static/wave.png | Bin
doc/source/_templates/editdocument.html | 6 +-
doc/source/_templates/page.html | 0
doc/source/_templates/quicklinks.html | 5 +-
doc/source/conf.py | 3 +-
doc/source/contents.rst | 0
doc/source/dev/building_extension.rst | 6 +-
doc/source/dev/how_to_release.rst | 113 +
doc/source/dev/index.rst | 3 +-
doc/source/dev/installing_build_dependencies.rst | 23 +-
.../dev/preparing_linux_build_environment.rst | 0
.../dev/preparing_windows_build_environment.rst | 18 +-
doc/source/dev/testing.rst | 10 +-
doc/source/index.rst | 27 +-
doc/source/overview.rst | 0
doc/source/ref/2d-dwt-and-idwt.rst | 144 +-
doc/source/ref/cwt.rst | 19 +
doc/source/ref/dwt-coefficient-handling.rst | 20 +
doc/source/ref/dwt-discrete-wavelet-transform.rst | 153 +-
.../idwt-inverse-discrete-wavelet-transform.rst | 97 +-
doc/source/ref/index.rst | 4 +
.../iswt-inverse-stationary-wavelet-transform.rst | 26 +
doc/source/ref/nd-dwt-and-idwt.rst | 24 +
doc/source/ref/other-functions.rst | 89 +-
doc/source/ref/signal-extension-modes.rst | 60 +-
.../ref/swt-stationary-wavelet-transform.rst | 85 +-
doc/source/ref/thresholding-functions.rst | 61 +-
doc/source/ref/wavelet-packets.rst | 48 +-
doc/source/ref/wavelets.rst | 206 +-
doc/source/regression/dwt-idwt.rst | 87 +-
doc/source/regression/gotchas.rst | 2 +-
doc/source/regression/index.rst | 0
doc/source/regression/modes.rst | 108 +-
doc/source/regression/multilevel.rst | 24 +-
doc/source/regression/wavelet.rst | 72 +-
doc/source/regression/wp.rst | 117 +-
doc/source/regression/wp2d.rst | 122 +-
doc/source/release.0.3.0.rst | 0
doc/source/release.0.4.0.rst | 1 +
doc/source/release.0.5.0.rst | 1 +
doc/source/release.0.5.1.rst | 1 +
doc/source/releasenotes.rst | 3 +
doc/source/resources.rst | 0
doc/source/substitutions.rst | 5 +-
pywt/__init__.py | 25 +-
pywt/_cwt.py | 95 +
pywt/_dwt.py | 343 +
{util => pywt/_extensions}/__init__.py | 0
pywt/_extensions/_cwt.c | 26237 +++++++++++
pywt/_extensions/_cwt.pxd | 6 +
pywt/_extensions/_cwt.pyx | 124 +
pywt/_extensions/_dwt.c | 32430 +++++++++++++
pywt/_extensions/_dwt.pxd | 3 +
pywt/_extensions/_dwt.pyx | 349 +
pywt/_extensions/_pywt.c | 39763 ++++++++++++++++
pywt/_extensions/_pywt.h | 63 +
pywt/_extensions/_pywt.pxd | 26 +
pywt/_extensions/_pywt.pyx | 980 +
pywt/_extensions/_swt.c | 27343 +++++++++++
pywt/_extensions/_swt.pyx | 197 +
pywt/_extensions/c/common.c | 106 +
pywt/{src => _extensions/c}/common.h | 70 +-
pywt/_extensions/c/convolution.c | 15 +
pywt/_extensions/c/convolution.h | 17 +
pywt/_extensions/c/convolution.template.c | 557 +
pywt/_extensions/c/convolution.template.h | 95 +
pywt/_extensions/c/cwt.c | 16 +
pywt/_extensions/c/cwt.h | 21 +
pywt/_extensions/c/cwt.template.c | 227 +
pywt/_extensions/c/cwt.template.h | 43 +
pywt/_extensions/c/templating.h | 4 +
pywt/_extensions/c/wavelets.c | 686 +
pywt/_extensions/c/wavelets.h | 115 +
pywt/_extensions/c/wavelets_coeffs.h | 30 +
pywt/_extensions/c/wavelets_coeffs.template.h | 3061 ++
pywt/_extensions/c/wt.c | 15 +
pywt/_extensions/c/wt.h | 19 +
pywt/_extensions/c/wt.template.c | 512 +
pywt/_extensions/c/wt.template.h | 83 +
pywt/_extensions/c_wt.pxd | 129 +
pywt/_extensions/common.pxd | 42 +
pywt/_extensions/wavelet.pxd | 80 +
pywt/_extensions/wavelets_list.pxi | 186 +
pywt/{functions.py => _functions.py} | 173 +-
pywt/_multidim.py | 286 +
pywt/_multilevel.py | 775 +
pywt/_swt.py | 399 +
pywt/{thresholding.py => _thresholding.py} | 5 +-
pywt/{wavelet_packets.py => _wavelet_packets.py} | 34 +-
pywt/data/__init__.py | 1 +
pywt/data/_readers.py | 185 +
pywt/data/aero.npz | Bin 0 -> 227784 bytes
pywt/data/ascent.npz | Bin 0 -> 170883 bytes
pywt/data/camera.npz | Bin 0 -> 160418 bytes
pywt/data/create_dat.py | 39 +
{demo => pywt}/data/ecg.npy | Bin
pywt/data/sst_nino3.npz | Bin 0 -> 64200 bytes
pywt/multidim.py | 423 -
pywt/multilevel.py | 222 -
pywt/setup.py | 28 -
pywt/src/_pywt.c | 45330 -------------------
pywt/src/_pywt.h | 44 -
pywt/src/_pywt.pyx | 1273 -
pywt/src/c_wt.pxd | 132 -
pywt/src/common.c | 75 -
pywt/src/convolution.c | 1859 -
pywt/src/convolution.c.src | 929 -
pywt/src/convolution.h | 163 -
pywt/src/convolution.h.src | 84 -
pywt/src/wavelets.c | 1357 -
pywt/src/wavelets.c.src | 463 -
pywt/src/wavelets.h | 81 -
pywt/src/wavelets_coeffs.h | 880 -
pywt/src/wavelets_coeffs.h.src | 449 -
pywt/src/wavelets_list.pxi | 98 -
pywt/src/wt.c | 449 -
pywt/src/wt.c.src | 225 -
pywt/src/wt.h | 113 -
pywt/src/wt.h.src | 64 -
pywt/tests/data/cwt_matlabR2015b_result.npz | Bin 0 -> 1819506 bytes
pywt/tests/data/dwt_matlabR2012a_result.npz | Bin 0 -> 2488918 bytes
pywt/tests/data/generate_matlab_data.py | 94 +
pywt/tests/data/generate_matlab_data_cwt.py | 86 +
pywt/tests/test__pywt.py | 116 +-
pywt/tests/test_cwt_wavelets.py | 314 +
pywt/tests/test_data.py | 42 +
pywt/tests/test_deprecations.py | 98 +
pywt/tests/test_doc.py | 0
pywt/tests/test_dwt_idwt.py | 164 +-
pywt/tests/test_functions.py | 18 +-
pywt/tests/test_matlab_compatibility.py | 214 +-
pywt/tests/test_matlab_compatibility_cwt.py | 185 +
pywt/tests/test_modes.py | 89 +-
pywt/tests/test_multidim.py | 273 +-
pywt/tests/test_multilevel.py | 566 +-
pywt/tests/test_perfect_reconstruction.py | 14 +-
pywt/tests/test_swt.py | 266 +
pywt/tests/test_thresholding.py | 14 +-
pywt/tests/test_wavelet.py | 114 +
pywt/tests/test_wp.py | 18 +-
pywt/tests/test_wp2d.py | 18 +-
pywt/version.py | 8 +-
runtests.py | 262 -
setup.cfg | 10 +
setup.py | 215 +-
tox.ini | 4 +-
util/__init__.py | 0
util/appveyor/build.cmd | 21 +
util/appveyor/install.ps1 | 101 -
util/appveyor/run_with_env.cmd | 47 -
util/authors.py | 7 +-
util/cythonize.py | 188 -
util/{appveyor => readthedocs}/requirements.txt | 1 +
util/refguide_check.py | 858 +
util/setenv_build32.bat | 0
util/setenv_build64.bat | 0
util/templating_src.py | 40 -
197 files changed, 141102 insertions(+), 56945 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
old mode 100644
new mode 100755
index 752fb08..56b5507
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,15 @@
Changelog
+unreleased:
+ changes:
+ - most operations now drop the Python GIL to allow efficient threading
+
+0.4.0
+ changes:
+ - idwt no longer takes a 'correct_size' parameter.
+ - Sizes of the arrays passed to all idwt functions must match exactly.
+ - use 'multilevel.wavecrec' for multilevel transforms
+
0.3.0
A major refactoring, providing support for Python 3.x while maintaining
full backwards compatiblity.
diff --git a/COPYING.txt b/COPYING.txt
deleted file mode 100644
index 2208f18..0000000
--- a/COPYING.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2006-2012 Filip Wasilewski <http://en.ig.ma/>
-Copyright (c) 2012-2015 The PyWavelets Developers <https://github.com/PyWavelets/pywt>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/MANIFEST.in b/MANIFEST.in
old mode 100644
new mode 100755
index 7ed911c..d7dd53e
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,4 @@
-include setup.py runtests.py
+include setup.py
include README.rst
include *.txt
include MANIFEST.in
diff --git a/PKG-INFO b/PKG-INFO
old mode 100644
new mode 100755
index 2a6fda3..e4e4286
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: PyWavelets
-Version: 0.3.0
+Version: 0.5.1
Summary: PyWavelets, wavelet transform module
Home-page: https://github.com/PyWavelets/pywt
Author: The PyWavelets Developers
@@ -9,15 +9,16 @@ License: MIT
Download-URL: https://github.com/PyWavelets/pywt/releases
Description: PyWavelets is a Python wavelet transforms module that includes:
- * 1D and 2D Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
- * 1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
+ * nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
+ * 1D and 2D Forward and Inverse Stationary Wavelet Transform (Undecimated Wavelet Transform)
* 1D and 2D Wavelet Packet decomposition and reconstruction
+ * 1D Continuous Wavelet Tranfsorm
* Computing Approximations of wavelet and scaling functions
- * Over seventy built-in wavelet filters and support for custom wavelets
+ * Over 100 built-in wavelet filters and support for custom wavelets
* Single and double precision calculations
* Results compatibility with Matlab Wavelet Toolbox (tm)
-Keywords: wavelets,wavelet transform,DWT,SWT,scientific
+Keywords: wavelets,wavelet transform,DWT,SWT,CWT,scientific
Platform: Windows
Platform: Linux
Platform: Solaris
diff --git a/PKG-INFO b/PyWavelets.egg-info/PKG-INFO
old mode 100644
new mode 100755
similarity index 79%
copy from PKG-INFO
copy to PyWavelets.egg-info/PKG-INFO
index 2a6fda3..e4e4286
--- a/PKG-INFO
+++ b/PyWavelets.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: PyWavelets
-Version: 0.3.0
+Version: 0.5.1
Summary: PyWavelets, wavelet transform module
Home-page: https://github.com/PyWavelets/pywt
Author: The PyWavelets Developers
@@ -9,15 +9,16 @@ License: MIT
Download-URL: https://github.com/PyWavelets/pywt/releases
Description: PyWavelets is a Python wavelet transforms module that includes:
- * 1D and 2D Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
- * 1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform)
+ * nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT)
+ * 1D and 2D Forward and Inverse Stationary Wavelet Transform (Undecimated Wavelet Transform)
* 1D and 2D Wavelet Packet decomposition and reconstruction
+ * 1D Continuous Wavelet Tranfsorm
* Computing Approximations of wavelet and scaling functions
- * Over seventy built-in wavelet filters and support for custom wavelets
+ * Over 100 built-in wavelet filters and support for custom wavelets
* Single and double precision calculations
* Results compatibility with Matlab Wavelet Toolbox (tm)
-Keywords: wavelets,wavelet transform,DWT,SWT,scientific
+Keywords: wavelets,wavelet transform,DWT,SWT,CWT,scientific
Platform: Windows
Platform: Linux
Platform: Solaris
diff --git a/PyWavelets.egg-info/SOURCES.txt b/PyWavelets.egg-info/SOURCES.txt
new file mode 100755
index 0000000..f89c522
--- /dev/null
+++ b/PyWavelets.egg-info/SOURCES.txt
@@ -0,0 +1,166 @@
+CHANGES.txt
+MANIFEST.in
+README.rst
+THANKS.txt
+setup.cfg
+setup.py
+tox.ini
+PyWavelets.egg-info/PKG-INFO
+PyWavelets.egg-info/SOURCES.txt
+PyWavelets.egg-info/dependency_links.txt
+PyWavelets.egg-info/requires.txt
+PyWavelets.egg-info/top_level.txt
+demo/_dwt_decompose.c
+demo/batch_processing.py
+demo/benchmark.py
+demo/cwt_analysis.py
+demo/dwt2_dwtn_image.py
+demo/dwt_signal_decomposition.py
+demo/dwt_swt_show_coeffs.py
+demo/image_blender.py
+demo/plot_wavelets.py
+demo/swt2.py
+demo/waveinfo.py
+demo/wp_2d.py
+demo/wp_scalogram.py
+demo/wp_visualize_coeffs_distribution.py
+doc/Makefile
+doc/doc2html.bat
+doc/make.bat
+doc/release/0.3.0-notes.rst
+doc/release/0.4.0-notes.rst
+doc/release/0.5.0-notes.rst
+doc/release/0.5.1-notes.rst
+doc/source/conf.py
+doc/source/contents.rst
+doc/source/index.rst
+doc/source/overview.rst
+doc/source/release.0.3.0.rst
+doc/source/release.0.4.0.rst
+doc/source/release.0.5.0.rst
+doc/source/release.0.5.1.rst
+doc/source/releasenotes.rst
+doc/source/resources.rst
+doc/source/substitutions.rst
+doc/source/_static/comments.png
+doc/source/_static/favicon.ico
+doc/source/_static/github.png
+doc/source/_static/page_edit.png
+doc/source/_static/twitter.png
+doc/source/_static/wave.png
+doc/source/_templates/editdocument.html
+doc/source/_templates/page.html
+doc/source/_templates/quicklinks.html
+doc/source/dev/building_extension.rst
+doc/source/dev/how_to_release.rst
+doc/source/dev/index.rst
+doc/source/dev/installing_build_dependencies.rst
+doc/source/dev/preparing_linux_build_environment.rst
+doc/source/dev/preparing_windows_build_environment.rst
+doc/source/dev/testing.rst
+doc/source/ref/2d-dwt-and-idwt.rst
+doc/source/ref/cwt.rst
+doc/source/ref/dwt-coefficient-handling.rst
+doc/source/ref/dwt-discrete-wavelet-transform.rst
+doc/source/ref/idwt-inverse-discrete-wavelet-transform.rst
+doc/source/ref/index.rst
+doc/source/ref/iswt-inverse-stationary-wavelet-transform.rst
+doc/source/ref/nd-dwt-and-idwt.rst
+doc/source/ref/other-functions.rst
+doc/source/ref/signal-extension-modes.rst
+doc/source/ref/swt-stationary-wavelet-transform.rst
+doc/source/ref/thresholding-functions.rst
+doc/source/ref/wavelet-packets.rst
+doc/source/ref/wavelets.rst
+doc/source/regression/dwt-idwt.rst
+doc/source/regression/gotchas.rst
+doc/source/regression/index.rst
+doc/source/regression/modes.rst
+doc/source/regression/multilevel.rst
+doc/source/regression/wavelet.rst
+doc/source/regression/wp.rst
+doc/source/regression/wp2d.rst
+pywt/__init__.py
+pywt/_cwt.py
+pywt/_dwt.py
+pywt/_functions.py
+pywt/_multidim.py
+pywt/_multilevel.py
+pywt/_swt.py
+pywt/_thresholding.py
+pywt/_wavelet_packets.py
+pywt/version.py
+pywt/_extensions/__init__.py
+pywt/_extensions/_cwt.c
+pywt/_extensions/_cwt.pxd
+pywt/_extensions/_cwt.pyx
+pywt/_extensions/_dwt.c
+pywt/_extensions/_dwt.pxd
+pywt/_extensions/_dwt.pyx
+pywt/_extensions/_pywt.c
+pywt/_extensions/_pywt.h
+pywt/_extensions/_pywt.pxd
+pywt/_extensions/_pywt.pyx
+pywt/_extensions/_swt.c
+pywt/_extensions/_swt.pyx
+pywt/_extensions/c_wt.pxd
+pywt/_extensions/common.pxd
+pywt/_extensions/wavelet.pxd
+pywt/_extensions/wavelets_list.pxi
+pywt/_extensions/c/common.c
+pywt/_extensions/c/common.h
+pywt/_extensions/c/convolution.c
+pywt/_extensions/c/convolution.h
+pywt/_extensions/c/convolution.template.c
+pywt/_extensions/c/convolution.template.h
+pywt/_extensions/c/cwt.c
+pywt/_extensions/c/cwt.h
+pywt/_extensions/c/cwt.template.c
+pywt/_extensions/c/cwt.template.h
+pywt/_extensions/c/templating.h
+pywt/_extensions/c/wavelets.c
+pywt/_extensions/c/wavelets.h
+pywt/_extensions/c/wavelets_coeffs.h
+pywt/_extensions/c/wavelets_coeffs.template.h
+pywt/_extensions/c/wt.c
+pywt/_extensions/c/wt.h
+pywt/_extensions/c/wt.template.c
+pywt/_extensions/c/wt.template.h
+pywt/data/__init__.py
+pywt/data/_readers.py
+pywt/data/aero.npz
+pywt/data/ascent.npz
+pywt/data/camera.npz
+pywt/data/create_dat.py
+pywt/data/ecg.npy
+pywt/data/sst_nino3.npz
+pywt/tests/test__pywt.py
+pywt/tests/test_cwt_wavelets.py
+pywt/tests/test_data.py
+pywt/tests/test_deprecations.py
+pywt/tests/test_doc.py
+pywt/tests/test_dwt_idwt.py
+pywt/tests/test_functions.py
+pywt/tests/test_matlab_compatibility.py
+pywt/tests/test_matlab_compatibility_cwt.py
+pywt/tests/test_modes.py
+pywt/tests/test_multidim.py
+pywt/tests/test_multilevel.py
+pywt/tests/test_perfect_reconstruction.py
+pywt/tests/test_swt.py
+pywt/tests/test_thresholding.py
+pywt/tests/test_wavelet.py
+pywt/tests/test_wp.py
+pywt/tests/test_wp2d.py
+pywt/tests/data/cwt_matlabR2015b_result.npz
+pywt/tests/data/dwt_matlabR2012a_result.npz
+pywt/tests/data/generate_matlab_data.py
+pywt/tests/data/generate_matlab_data_cwt.py
+util/__init__.py
+util/authors.py
+util/gh_lists.py
+util/refguide_check.py
+util/setenv_build32.bat
+util/setenv_build64.bat
+util/appveyor/build.cmd
+util/readthedocs/requirements.txt
\ No newline at end of file
diff --git a/PyWavelets.egg-info/dependency_links.txt b/PyWavelets.egg-info/dependency_links.txt
new file mode 100755
index 0000000..8b13789
--- /dev/null
+++ b/PyWavelets.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/PyWavelets.egg-info/requires.txt b/PyWavelets.egg-info/requires.txt
new file mode 100755
index 0000000..24ce15a
--- /dev/null
+++ b/PyWavelets.egg-info/requires.txt
@@ -0,0 +1 @@
+numpy
diff --git a/PyWavelets.egg-info/top_level.txt b/PyWavelets.egg-info/top_level.txt
new file mode 100755
index 0000000..ce97754
--- /dev/null
+++ b/PyWavelets.egg-info/top_level.txt
@@ -0,0 +1 @@
+pywt
diff --git a/README b/README.rst
old mode 100644
new mode 100755
similarity index 53%
rename from README
rename to README.rst
index 4464a2b..c5d2912
--- a/README
+++ b/README.rst
@@ -1,22 +1,17 @@
-PyWavelets - Discrete Wavelet Transform in Python
-=================================================
+PyWavelets
+==========
-PyWavelets is a free Open Source wavelet transform software for Python_
-programming language. It is written in Python, Cython and C for a mix of easy
-and powerful high-level interface and the best performance.
+.. contents::
-PyWavelets is very easy to start with and use. Just install the package, open
-the Python interactive shell and type:
+What is PyWavelets
+------------------
- .. sourcecode:: python
-
- >>> import pywt
- >>> cA, cD = pywt.dwt([1, 2, 3, 4], 'db1')
-
-Voilà! Computing wavelet transforms never before has been so simple :)
-
-Main features
--------------
+PyWavelets is a free Open Source library for wavelet transforms in Python.
+Wavelets are mathematical basis functions that are localized in both time and
+frequency. Wavelet transforms are time-frequency transforms employing
+wavelets. They are similar to Fourier transforms, the difference being that
+Fourier transforms are localized only in frequency instead of in time and
+frequency.
The main features of PyWavelets are:
@@ -29,51 +24,43 @@ The main features of PyWavelets are:
* Single and double precision calculations
* Results compatible with Matlab Wavelet Toolbox (TM)
-Requirements
-------------
-
-PyWavelets is a package for the Python programming language. It requires:
-
- - Python_ 2.6, 2.7 or >=3.3
- - Numpy_ >= 1.6.2
-Download
---------
+Documentation
+-------------
-The most recent *development* version can be found on GitHub at
-https://github.com/PyWavelets/pywt.
+Documentation with detailed examples and links to more resources is available
+online at http://pywavelets.readthedocs.org.
-Latest release, including source and binary package for Windows, is available
-for download from the `Python Package Index`_ or on the `Releases Page`_.
+For more usage examples see the `demo`_ directory in the source package.
-Install
--------
-In order to build PyWavelets from source, a working C compiler (GCC or MSVC)
-and a recent version of Cython_ is required.
+Installation
+------------
- - Install PyWavelets with ``pip install PyWavelets``.
+PyWavelets supports `Python`_ 2.6, 2.7 or >=3.3, and is only dependent on `Numpy`_
+(supported versions are currently ``>= 1.9``). To pass all of the tests,
+`Matplotlib`_ is also required.
- - To build and install from source, navigate to downloaded PyWavelets source
- code directory and type ``python setup.py install``.
+Binaries for Windows and OS X (wheels) on PyPi are in the works, however
+currently PyWavelets has to be installed from source. To do so, a working C
+compiler (any common one will work) and a recent version of `Cython`_ is required.
-Prebuilt Windows binaries and source code packages are also
-available from `Python Package Index`_.
+Binary packages for several Linux distributions can be found, but may be out of date.
+Query your Linux package manager tool for `python-pywavelets`,
+`python-wavelets`, `python-pywt` or a similar package name.
-Binary packages for several Linux distributors are maintained by Open Source
-community contributors. Query your Linux package manager tool
-for `python-wavelets`, `python-pywt` or similar package name.
+- Install PyWavelets with ``pip install PyWavelets``.
-.. seealso:: :ref:`Development notes <dev-index>` section contains more
- information on building and installing from source code.
+- To build and install from source, navigate to the PyWavelets source
+ code directory and type ``python setup.py install``.
-Documentation
--------------
+The most recent *development* version can be found on GitHub at
+https://github.com/PyWavelets/pywt.
-Documentation with detailed examples and links to more resources is available
-online at http://pywavelets.readthedocs.org.
+The latest release, including source and binary packages for Windows, is
+available for download from the `Python Package Index`_ or on the
+`Releases Page`_.
-For more usage examples see the `demo`_ directory in the source package.
State of development & Contributing
-----------------------------------
@@ -93,33 +80,18 @@ and documentation improvements are welcome. Moreover, developers with an
interest in PyWavelets are very welcome to join the development team!
-Python 3
---------
-
-Python 3.x is fully supported from release v0.3.0 on.
-
Contact
-------
-Use `GitHub Issues`_ or the `PyWavelets discussions group`_ to post your
+Use `GitHub Issues`_ or the `mailing list`_ to post your
comments or questions.
+
License
-------
PyWavelets is a free Open Source software released under the MIT license.
-Contents
---------
-
-.. toctree::
- :maxdepth: 1
-
- ref/index
- regression/index
- dev/index
- resources
- contents
.. _built-in wavelet filters: http://wavelets.pybytes.com/
@@ -131,5 +103,6 @@ Contents
.. _original developer: http://en.ig.ma
.. _Python: http://python.org/
.. _Python Package Index: http://pypi.python.org/pypi/PyWavelets/
-.. _PyWavelets discussions group: http://groups.google.com/group/pywavelets
+.. _mailing list: http://groups.google.com/group/pywavelets
.. _Releases Page: https://github.com/PyWavelets/pywt/releases
+.. _Matplotlib: http://matplotlib.org
diff --git a/THANKS.txt b/THANKS.txt
old mode 100644
new mode 100755
diff --git a/cythonize.dat b/cythonize.dat
deleted file mode 100644
index 4035611..0000000
--- a/cythonize.dat
+++ /dev/null
@@ -1 +0,0 @@
-pywt/src/_pywt.pyx 33e1d11f905b68c14e38e93ad300686fc289ab2f 852f918fb0ede109a7bdd8a1d1637222bcc73f31
diff --git a/demo/_dwt_decompose.c b/demo/_dwt_decompose.c
old mode 100644
new mode 100755
index e35502d..01a6e1c
--- a/demo/_dwt_decompose.c
+++ b/demo/_dwt_decompose.c
@@ -19,7 +19,7 @@ int main(){
int i;
float input[] = {1,2,3,4,5,6,7,8,9};
float *cA, *cD;
- index_t input_len, output_len;
+ pywt_index_t input_len, output_len;
input_len = sizeof input / sizeof input[0];
output_len = dwt_buffer_length(input_len, w->dec_len, mode);
diff --git a/demo/batch_processing.py b/demo/batch_processing.py
new file mode 100755
index 0000000..d681af9
--- /dev/null
+++ b/demo/batch_processing.py
@@ -0,0 +1,101 @@
+"""
+Demo: Parallel processing accross images
+
+Multithreading can be used to run transforms on a set of images in parallel.
+This will give a net performance benefit if the images to be transformed are
+sufficiently large.
+
+This demo runs a multilevel wavelet decomposition on a list of 32 images,
+each of size (512, 512). Computations are repeated sequentially and in
+parallel and the runtimes compared.
+
+In general, multithreading will be more beneficial for larger images and for
+wavelets with a larger filter size.
+
+One can also change ``ndim`` to 3 in the code below to use a set of 3D volumes
+instead.
+"""
+
+import time
+from functools import partial
+from multiprocessing import cpu_count
+
+try:
+ from concurrent import futures
+except ImportError:
+ raise ImportError(
+ "This demo requires concurrent.futures. It can be installed for "
+ "for python 2.x via: pip install futures")
+
+import numpy as np
+from numpy.testing import assert_array_equal
+
+import pywt
+
+# the test image
+cam = pywt.data.camera().astype(float)
+
+ndim = 2 # dimension of images to transform (2 or 3)
+num_images = 32 # number of images to transform
+max_workers = cpu_count() # max number of available threads
+nrepeat = 5 # averages used in the benchmark
+
+# create a list of num_images images
+if ndim == 2:
+ imgs = [cam, ] * num_images
+ wavelet = 'db8'
+elif ndim == 3:
+ # stack image along 3rd dimension to create a [512 x 512 x 16] 3D volume
+ im3 = np.concatenate([cam[:, :, np.newaxis], ]*16, axis=-1)
+ # create multiple copies of the volume
+ imgs = [im3, ] * num_images
+ wavelet = 'db1'
+else:
+ ValueError("Only 2D and 3D test cases implemented")
+
+# define a function to apply to each image
+wavedecn_func = partial(pywt.wavedecn, wavelet=wavelet, mode='periodization',
+ level=3)
+
+
+def concurrent_transforms(func, imgs, max_workers=None):
+ """Call func on each img in imgs using a ThreadPoolExecutor."""
+ executor = futures.ThreadPoolExecutor
+ if max_workers is None:
+ # default to as many workers as available cpus
+ max_workers = cpu_count()
+ results = []
+ with executor(max_workers=max_workers) as execute:
+ for result in execute.map(func, imgs):
+ results.append(result)
+ return results
+
+
+print("Processing {} images of shape {}".format(len(imgs), imgs[0].shape))
+
+# Sequential computation via a list comprehension
+tstart = time.time()
+for n in range(nrepeat):
+ results = [wavedecn_func(img) for img in imgs]
+t = (time.time()-tstart)/nrepeat
+print("\nSequential Case")
+print("\tElapsed time: {:0.2f} ms".format(1000*t))
+
+
+# Concurrent computation via concurrent.futures
+tstart = time.time()
+for n in range(nrepeat):
+ results_concurrent = concurrent_transforms(wavedecn_func, imgs,
+ max_workers=max_workers)
+t2 = (time.time()-tstart)/nrepeat
+print("\nMultithreaded Case")
+print("\tNumber of concurrent workers: {}".format(max_workers))
+print("\tElapsed time: {:0.2f} ms".format(1000*t2))
+print("\nRelative speedup with concurrent = {}".format(t/t2))
+
+# check a couple of the coefficient arrays to verify matching results for
+# sequential and multithreaded computation
+assert_array_equal(results[-1][0],
+ results_concurrent[-1][0])
+assert_array_equal(results[-1][1]['d' + 'a'*(ndim-1)],
+ results_concurrent[-1][1]['d' + 'a'*(ndim-1)])
diff --git a/demo/benchmark.py b/demo/benchmark.py
old mode 100644
new mode 100755
index 37195af..a1402fb
--- a/demo/benchmark.py
+++ b/demo/benchmark.py
@@ -28,7 +28,7 @@ wavelet_names = ['db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7',
wavelets = [pywt.Wavelet(n) for n in wavelet_names]
-mode = pywt.MODES.zpd
+mode = pywt.Modes.zero
times_dwt = [[] for i in range(len(wavelets))]
times_idwt = [[] for i in range(len(wavelets))]
diff --git a/demo/cwt_analysis.py b/demo/cwt_analysis.py
new file mode 100755
index 0000000..20879db
--- /dev/null
+++ b/demo/cwt_analysis.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import numpy as np
+import matplotlib.pyplot as plt
+
+import pywt
+
+time, sst = pywt.data.nino()
+dt = time[1]-time[0]
+
+# Taken from http://nicolasfauchereau.github.io/climatecode/posts/wavelet-analysis-in-python/
+wavelet = 'cmor'
+scales = np.arange(1,128)
+
+[cfs,frequencies] = pywt.cwt(sst,scales,wavelet,dt)
+power = (abs(cfs)) ** 2
+
+period = 1. / frequencies
+levels = [0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8]
+f, ax = plt.subplots(figsize=(15,10))
+ax.contourf(time, np.log2(period), np.log2(power), np.log2(levels),
+ extend='both')
+
+ax.set_title('%s Wavelet Power Spectrum (%s)' % ('Nino1+2', wavelet))
+ax.set_ylabel('Period (years)')
+Yticks = 2 ** np.arange(np.ceil(np.log2(period.min())),
+ np.ceil(np.log2(period.max())))
+ax.set_yticks(np.log2(Yticks))
+ax.set_yticklabels(Yticks)
+ax.invert_yaxis()
+ylim = ax.get_ylim()
+ax.set_ylim(ylim[0], -1)
+
+plt.show()
diff --git a/demo/data/aero.png b/demo/data/aero.png
deleted file mode 100644
index 03c3f60..0000000
Binary files a/demo/data/aero.png and /dev/null differ
diff --git a/demo/dwt2_dwtn_image.py b/demo/dwt2_dwtn_image.py
old mode 100644
new mode 100755
index cd494e1..8d38145
--- a/demo/dwt2_dwtn_image.py
+++ b/demo/dwt2_dwtn_image.py
@@ -3,13 +3,13 @@
import numpy as np
import matplotlib.pyplot as plt
-from scipy import ndimage
import pywt
+import pywt.data
# Load image
-original = ndimage.imread('data/aero.png', mode='L')
+original = pywt.data.aero()
# Wavelet transform of image, and plot approximation and details
titles = ['Approximation', ' Horizontal detail',
diff --git a/demo/dwt_signal_decomposition.py b/demo/dwt_signal_decomposition.py
old mode 100644
new mode 100755
index e9ec17e..23ca17d
--- a/demo/dwt_signal_decomposition.py
+++ b/demo/dwt_signal_decomposition.py
@@ -1,15 +1,14 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-import os
-
import numpy as np
import matplotlib.pyplot as plt
import pywt
+import pywt.data
-ecg = np.load(os.path.join('data', 'ecg.npy'))
+ecg = pywt.data.ecg()
data1 = np.concatenate((np.arange(1, 400),
np.arange(398, 600),
@@ -17,7 +16,7 @@ data1 = np.concatenate((np.arange(1, 400),
x = np.linspace(0.082, 2.128, num=1024)[::-1]
data2 = np.sin(40 * np.log(x)) * np.sign((np.log(x)))
-mode = pywt.MODES.sp1
+mode = pywt.Modes.smooth
def plot_signal_decomp(data, w, title):
diff --git a/demo/dwt_swt_show_coeffs.py b/demo/dwt_swt_show_coeffs.py
old mode 100644
new mode 100755
index 64a6583..9a3b198
--- a/demo/dwt_swt_show_coeffs.py
+++ b/demo/dwt_swt_show_coeffs.py
@@ -1,22 +1,22 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-import os
-
import numpy as np
import matplotlib.pyplot as plt
import pywt
+import pywt.data
+
+ecg = pywt.data.ecg()
-ecg = np.load(os.path.join('data', 'ecg.npy'))
data1 = np.concatenate((np.arange(1, 400),
np.arange(398, 600),
np.arange(601, 1024)))
x = np.linspace(0.082, 2.128, num=1024)[::-1]
data2 = np.sin(40 * np.log(x)) * np.sign((np.log(x)))
-mode = pywt.MODES.sp1DWT = 1
+mode = pywt.Modes.sp1DWT = 1
def plot_coeffs(data, w, title, use_dwt=True):
diff --git a/demo/image_blender.py b/demo/image_blender.py
old mode 100644
new mode 100755
index f420af4..32c5c60
--- a/demo/image_blender.py
+++ b/demo/image_blender.py
@@ -1,7 +1,8 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
# Copyright (c) 2006-2012 Filip Wasilewski <http://en.ig.ma/>
+# Copyright (c) 2012-2016 The PyWavelets Developers
+# <https://github.com/PyWavelets/pywt>
# See COPYING for license details.
"""
@@ -53,7 +54,7 @@ import pywt
def image2array(image):
"""PIL Image to NumPy array"""
assert image.mode in ('L', 'RGB', 'CMYK')
- arr = numpy.fromstring(image.tostring(), numpy.uint8)
+ arr = numpy.fromstring(image.tobytes(), numpy.uint8)
arr.shape = (image.size[1], image.size[0], len(image.getbands()))
return arr.swapaxes(0, 2).swapaxes(1, 2).astype(numpy.float32)
... 200631 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/pywavelets.git
More information about the Python-modules-commits
mailing list