from SpectralParameters import SpectralParams class FModel: def __init__(self, freq_bins, spectral_parameters: SpectralParams): self.freq = freq_bins self.sp_par = spectral_parameters def fmodel(self): """Function return given model""" return class FBrune(FModel): """ Generate Brune's model source spectrum. """ def __init__(self, freq_bins, spectral_parameters: SpectralParams): super().__init__(freq_bins, spectral_parameters) def fmodel(self): return self.sp_par.mo / (1 + (self.freq / self.sp_par.fo) ** 2) class FBoatwright(FModel): """ Generate Boatwright's model source spectrum. """ def __init__(self, freq_bins, spectral_parameters: SpectralParams): super().__init__(freq_bins, spectral_parameters) def fmodel(self): return self.sp_par.mo / (1 + (self.freq / self.sp_par.fo) ** 4) ** 0.5