pywavelet 0.2.3__py3-none-any.whl → 0.2.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pywavelet/_version.py +2 -2
- pywavelet/types/wavelet.py +40 -6
- {pywavelet-0.2.3.dist-info → pywavelet-0.2.4.dist-info}/METADATA +1 -1
- {pywavelet-0.2.3.dist-info → pywavelet-0.2.4.dist-info}/RECORD +6 -6
- {pywavelet-0.2.3.dist-info → pywavelet-0.2.4.dist-info}/WHEEL +0 -0
- {pywavelet-0.2.3.dist-info → pywavelet-0.2.4.dist-info}/top_level.txt +0 -0
pywavelet/_version.py
CHANGED
pywavelet/types/wavelet.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
from typing import List, Tuple
|
2
2
|
|
3
3
|
import matplotlib.pyplot as plt
|
4
|
+
import numpy as np
|
4
5
|
|
5
6
|
from .common import fmt_timerange, is_documented_by, xp
|
6
7
|
from .plotting import plot_wavelet_grid, plot_wavelet_trend
|
@@ -343,14 +344,18 @@ class Wavelet:
|
|
343
344
|
|
344
345
|
def __mul__(self, other):
|
345
346
|
"""Element-wise multiplication of two Wavelet objects."""
|
346
|
-
if isinstance(other,
|
347
|
-
|
348
|
-
|
349
|
-
)
|
347
|
+
if isinstance(other, WaveletMask):
|
348
|
+
data = self.data.copy()
|
349
|
+
data[~other.mask] = np.nan
|
350
|
+
return Wavelet(data=data, time=self.time, freq=self.freq)
|
350
351
|
elif isinstance(other, float):
|
351
352
|
return Wavelet(
|
352
353
|
data=self.data * other, time=self.time, freq=self.freq
|
353
354
|
)
|
355
|
+
elif isinstance(other, WaveletMask):
|
356
|
+
return Wavelet(
|
357
|
+
data=self.data * other.data, time=self.time, freq=self.freq
|
358
|
+
)
|
354
359
|
|
355
360
|
def __truediv__(self, other):
|
356
361
|
"""Element-wise division of two Wavelet objects."""
|
@@ -445,11 +450,40 @@ class WaveletMask(Wavelet):
|
|
445
450
|
return rpr
|
446
451
|
|
447
452
|
@classmethod
|
448
|
-
def
|
449
|
-
cls,
|
453
|
+
def from_restrictions(
|
454
|
+
cls,
|
455
|
+
time_grid: xp.ndarray,
|
456
|
+
freq_grid: xp.ndarray,
|
457
|
+
frange: List[float],
|
458
|
+
tgaps: List[Tuple[float, float]] = [],
|
450
459
|
):
|
460
|
+
"""
|
461
|
+
Create a WaveletMask object from restrictions on time and frequency.
|
462
|
+
|
463
|
+
Parameters
|
464
|
+
----------
|
465
|
+
time_grid : xp.ndarray
|
466
|
+
Array of time points.
|
467
|
+
freq_grid : xp.ndarray
|
468
|
+
Array of corresponding frequency points.
|
469
|
+
frange : List[float]
|
470
|
+
Frequency range to include.
|
471
|
+
tgaps : List[Tuple[float, float]]
|
472
|
+
List of time gaps to exclude.
|
473
|
+
|
474
|
+
Returns
|
475
|
+
-------
|
476
|
+
WaveletMask
|
477
|
+
A WaveletMask object with the specified restrictions.
|
478
|
+
"""
|
451
479
|
self = cls.zeros_from_grid(time_grid, freq_grid)
|
452
480
|
self.data[
|
453
481
|
(freq_grid >= frange[0]) & (freq_grid <= frange[1]), :
|
454
482
|
] = True
|
483
|
+
|
484
|
+
for tgap in tgaps:
|
485
|
+
self.data[
|
486
|
+
:, (time_grid >= tgap[0]) & (time_grid <= tgap[1])
|
487
|
+
] = False
|
488
|
+
self.data = self.data.astype(bool)
|
455
489
|
return self
|
@@ -1,5 +1,5 @@
|
|
1
1
|
pywavelet/__init__.py,sha256=zcK3Qj4wTrGZF1rU3aT6yA9LvliAOD4DVOY7gNfHhCI,53
|
2
|
-
pywavelet/_version.py,sha256=
|
2
|
+
pywavelet/_version.py,sha256=4gL0W4-u58XR5lRLpeoIPrGhcewTk0-527de6uTNmkg,411
|
3
3
|
pywavelet/backend.py,sha256=SmpgIBHvTO1rtIAQQN_zpVB8i6R-x23FNKJG6_JlrNs,666
|
4
4
|
pywavelet/logger.py,sha256=DyKC-pJ_N9GlVeXL00E1D8hUd8GceBg-pnn7g1YPKcM,391
|
5
5
|
pywavelet/utils.py,sha256=l47C643nGlV9q4a0G7wtKzuas0Ou4En2e1FTATCgwlw,1907
|
@@ -27,9 +27,9 @@ pywavelet/types/common.py,sha256=aIcYq-0KOLHnPQjrVbVmw_TQ3Xm5a7xA30rSgwt3rk4,127
|
|
27
27
|
pywavelet/types/frequencyseries.py,sha256=hrtLaIUaRrqXw8l00yFe2tPJwpksDa_4n1z6R8XSPPQ,7531
|
28
28
|
pywavelet/types/plotting.py,sha256=JNDxeP-fB8U09E90J-rVT-h5yCGA_tGRHtctbgINiRo,10625
|
29
29
|
pywavelet/types/timeseries.py,sha256=u35bIqFo3QdlQRBEu6maeWA7DePS11LQ6WMiLjZPcWo,9456
|
30
|
-
pywavelet/types/wavelet.py,sha256=
|
30
|
+
pywavelet/types/wavelet.py,sha256=uHJzTS2ZXTRr7I7NHWv3qNjknSBhQUpcED3jM6ti7UM,13587
|
31
31
|
pywavelet/types/wavelet_bins.py,sha256=GoQGKeZlPc-KbYY7LoxAhB-HI4diHpPcTABBXRfUTLA,1459
|
32
|
-
pywavelet-0.2.
|
33
|
-
pywavelet-0.2.
|
34
|
-
pywavelet-0.2.
|
35
|
-
pywavelet-0.2.
|
32
|
+
pywavelet-0.2.4.dist-info/METADATA,sha256=Thhhz8I2XTKr0mVuf09UpcvjeEGKUnVUX0jxENu6gEQ,2241
|
33
|
+
pywavelet-0.2.4.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
34
|
+
pywavelet-0.2.4.dist-info/top_level.txt,sha256=g0Ezt0Rg0X-nrd-a0pAXKVRkuWNsF2M9Ynsjb9b2UYQ,10
|
35
|
+
pywavelet-0.2.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|