def gen_background(xs, background_params, background_mode=None): """Generate background values, from parameter definition. Parameters ---------- xs : 1d array Frequency vector to create background from. background_params : list of float Paramters that define the background process. background_mode : {'fixed', 'knee'}, optional Which kind of background to generate power spectra with. If not provided, is infered from the parameters. Returns ------- 1d array Generated background values """ if not background_mode: background_mode = infer_bg_func(background_params) bg_func = get_bg_func(background_mode) return bg_func(xs, *background_params)
def _gen_power_vals(xs, bg_params, gauss_params, nlv): """Generate power values for a power spectrum. Parameters ---------- xs : 1d array Frequency vector to create power values from. background_params : list of float Parameters to create the background of power spectrum. gauss_params : list of float Parameters to create peaks. Length of n_peaks * 3. nlv : float Noise level to add to generated power spectrum. Returns ------- ys : 1d vector Power values (linear). """ background = gen_background(xs, bg_params, infer_bg_func(bg_params)) peaks = gen_peaks(xs, gauss_params) noise = np.random.normal(0, nlv, len(xs)) ys = np.power(10, background + peaks + noise) return ys
def _check_loaded_settings(self, data): """Check if settings added, and update the object as needed. Parameters ---------- data : dict The dictionary of data that has been added to the object. """ # If settings not loaded from file, clear from object, so that default # settings, which are potentially wrong for loaded data, aren't kept if not set(get_obj_desc()['settings']).issubset(set(data.keys())): # Reset all public settings to None for setting in get_obj_desc()['settings']: setattr(self, setting, None) # Infer whether knee fitting was used, if background params have been loaded if np.all(self.background_params_): self.background_mode = infer_bg_func(self.background_params_) # Reset internal settings so that they are consistent with what was loaded # Note that this will set internal settings to None, if public settings unavailable self._reset_internal_settings()