Skip to content

Commit fdbbb99

Browse files
committed
[ENH] return input data if score is negative on first iter
1 parent 96e91a1 commit fdbbb99

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

meegkit/dss.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ def nan_basic_interp(array):
313313
array[nans] = np.interp(ix(nans), ix(~nans), array[~nans])
314314
return array
315315

316+
data_clean = data.copy()
317+
316318
freq_rn = [fline - win_sz, fline + win_sz]
317319
freq_sp = [fline - spot_sz, fline + spot_sz]
318320
freq, psd = welch(data, fs=sfreq, nfft=nfft, axis=0)
@@ -338,8 +340,8 @@ def nan_basic_interp(array):
338340
aggr_resid = []
339341
iterations = 0
340342
while iterations < n_iter_max:
341-
data, _ = dss_line(data, fline, sfreq, nfft=nfft, nremove=1)
342-
freq, psd = welch(data, fs=sfreq, nfft=nfft, axis=0)
343+
data_clean, _ = dss_line(data_clean, fline, sfreq, nfft=nfft, nremove=1)
344+
freq, psd = welch(data_clean, fs=sfreq, nfft=nfft, axis=0)
343345
if psd.ndim == 3:
344346
mean_psd = np.mean(psd, axis=(1, 2))[freq_rn_ix]
345347
elif psd.ndim == 2:
@@ -396,6 +398,9 @@ def nan_basic_interp(array):
396398
plt.show()
397399

398400
if mean_score <= 0:
401+
# Return original data if score is negative on first iteration
402+
if iterations == 0:
403+
return data, 0
399404
break
400405

401406
iterations += 1
@@ -404,4 +409,4 @@ def nan_basic_interp(array):
404409
raise RuntimeError("Could not converge. Consider increasing the "
405410
"maximum number of iterations")
406411

407-
return data, iterations
412+
return data_clean, iterations

0 commit comments

Comments
 (0)