@@ -38,7 +38,7 @@ def __init__(self, *args, **kwargs):
3838
3939 FOOOF .__init__ (self , * args , ** kwargs )
4040
41- self .power_spectra = np .array ([])
41+ self .power_spectra = None # np.array([])
4242
4343 self ._reset_group_results ()
4444
@@ -59,6 +59,26 @@ def __getitem__(self, index):
5959 return self .group_results [index ]
6060
6161
62+ def _reset_data_results (self , clear_freqs = True , clear_spectrum = True , clear_results = True , clear_spectra = True ):
63+ """Set (or reset) data & results attributes to empty.
64+
65+ Parameters
66+ ----------
67+ clear_freqs : bool, optional, default: True
68+ Whether to clear frequency attributes.
69+ clear_power_spectrum : bool, optional, default: True
70+ Whether to clear power spectrum attribute.
71+ clear_results : bool, optional, default: True
72+ Whether to clear model results attributes.
73+ clear_spectra : bool, optional, default: True
74+ Whether to clear power spectra attribute.
75+ """
76+
77+ super ()._reset_data_results (clear_freqs , clear_spectrum , clear_results )
78+ if clear_spectra :
79+ self .power_spectra = None
80+
81+
6282 def _reset_group_results (self , length = 0 ):
6383 """Set (or reset) results to be empty.
6484
@@ -164,7 +184,7 @@ def fit(self, freqs=None, power_spectra=None, freq_range=None, n_jobs=1):
164184 self .power_spectra ),
165185 self .verbose , len (self .power_spectra )))
166186
167- self ._reset_data_results (clear_freqs = False )
187+ self ._reset_data_results (clear_freqs = False , clear_spectra = False )
168188
169189
170190 def get_results (self ):
@@ -290,16 +310,15 @@ def get_fooof(self, ind, regenerate=False):
290310 """
291311
292312 # Initialize a FOOOF object, with same settings as current FOOOFGroup
293- fm = FOOOF (self .peak_width_limits , self .max_n_peaks , self .min_peak_amplitude ,
294- self .peak_threshold , self .aperiodic_mode , self .verbose )
313+ fm = FOOOF (* self .get_settings (), verbose = self .verbose )
295314
296315 # Add data for specified single power spectrum, if available
297316 # The power spectrum is inverted back to linear, as it's re-logged when added to FOOOF
298317 if np .any (self .power_spectra ):
299318 fm .add_data (self .freqs , np .power (10 , self .power_spectra [ind ]))
300- # If no power spectrum data available, copy over frequency information
319+ # If no power spectrum data available, copy over data information & regenerate freqs
301320 else :
302- fm ._add_from_dict ({ 'freq_range' : self .freq_range , 'freq_res' : self . freq_res } )
321+ fm .add_data_info ( self .get_data_info )
303322
304323 # Add results for specified power spectrum, regenerating full fit if requested
305324 fm .add_results (self .group_results [ind ])
0 commit comments