(self, data, wavelet, mode='smooth', maxlevel=None,
axes=None)
| 959 | axes. |
| 960 | """ |
| 961 | def __init__(self, data, wavelet, mode='smooth', maxlevel=None, |
| 962 | axes=None): |
| 963 | if (data is None) and (axes is None): |
| 964 | # ndim is required to create a NodeND object |
| 965 | raise ValueError("If data is None, axes must be specified") |
| 966 | |
| 967 | # axes determines the number of transform dimensions |
| 968 | if axes is None: |
| 969 | axes = range(data.ndim) |
| 970 | elif np.isscalar(axes): |
| 971 | axes = (axes, ) |
| 972 | axes = tuple(axes) |
| 973 | if len(np.unique(axes)) != len(axes): |
| 974 | raise ValueError("Expected a set of unique axes.") |
| 975 | ndim_transform = len(axes) |
| 976 | |
| 977 | if data is not None: |
| 978 | data = np.asarray(data) |
| 979 | if data.ndim == 0: |
| 980 | raise ValueError("data must be at least 1D") |
| 981 | ndim = data.ndim |
| 982 | else: |
| 983 | ndim = len(axes) |
| 984 | |
| 985 | super().__init__(None, data, "", ndim, |
| 986 | ndim_transform) |
| 987 | if not isinstance(wavelet, Wavelet): |
| 988 | wavelet = Wavelet(wavelet) |
| 989 | self.wavelet = wavelet |
| 990 | self.mode = mode |
| 991 | self.axes = axes |
| 992 | self.ndim_transform = ndim_transform |
| 993 | if data is not None: |
| 994 | if data.ndim < len(axes): |
| 995 | raise ValueError("The number of axes exceeds the number of " |
| 996 | "data dimensions.") |
| 997 | self.data_size = data.shape |
| 998 | transform_size = [data.shape[ax] for ax in self.axes] |
| 999 | if maxlevel is None: |
| 1000 | maxlevel = dwt_max_level(min(transform_size), self.wavelet) |
| 1001 | else: |
| 1002 | self.data_size = None |
| 1003 | self._maxlevel = maxlevel |
| 1004 | |
| 1005 | def reconstruct(self, update=True): |
| 1006 | """ |
nothing calls this directly
no test coverage detected