Skip to content

Commit 062f469

Browse files
authored
Merge pull request #196 from spice-herald/psd_amp
Add function in of base to check if signal updated
2 parents c730ed2 + e13e2e7 commit 062f469

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

qetpy/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# special file for defining the current version of the package
2-
__version__ = "1.8.0"
2+
__version__ = "1.8.1"

qetpy/core/_of_base.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,35 @@ def icovf(self, channels):
413413
return None
414414

415415

416+
def is_signal_stored(self, channels):
417+
"""
418+
Check if signals have been stored for a specific
419+
channel (or multiple channels)
420+
421+
Parameters
422+
----------
423+
channel : str or array-like
424+
single channel: channel name
425+
multi channels: array-like or "|" separated string
426+
such as "channel1|channel2"
427+
428+
Return
429+
------
430+
is_stored : boolean
431+
if all signals stored return True
432+
"""
433+
434+
if self._nbins is None:
435+
return False
436+
437+
channel_list = convert_channel_name_to_list(channels)
438+
439+
for ichan, chan in enumerate(channel_list):
440+
if chan not in self._signals:
441+
return False
442+
443+
return True
444+
416445
def signal(self, channels, squeeze_array=False):
417446
"""
418447
Get signal trace(s) in time domain
@@ -1297,7 +1326,9 @@ def update_signal(self, channels, signals,
12971326
raise ValueError(f'ERROR: number of channels ({nchans}) '
12981327
f'does not match signal array ({nchans_array})')
12991328

1300-
if (nbins_array != self._nbins):
1329+
if self._nbins is None:
1330+
self._nbins = nbins_array
1331+
elif (nbins_array != self._nbins):
13011332
raise ValueError(f'ERROR:Inconsistent number of samples '
13021333
f'between signal ({nbins_array}) '
13031334
f'and template/psd ({ self._nbins})')
@@ -1327,8 +1358,14 @@ def update_signal(self, channels, signals,
13271358
if calc_fft:
13281359
f, signal_fft = fft(signal, self._fs, axis=-1)
13291360
self._signals_fft[chan] = signal_fft/self._nbins
1361+
1362+
if self._fft_freqs is None:
1363+
self._fft_freqs = f
1364+
elif (not np.array_equal(self._fft_freqs,f)):
1365+
raise ValueError(f'ERROR:Inconsistent frequency array '
1366+
f'between signal and template/psd')
1367+
13301368

1331-
13321369
def calc_phi(self, channels, template_tag=None,
13331370
calc_weight=True):
13341371
"""

0 commit comments

Comments
 (0)