示例#1
0
    def test_correct_parameters_without_whitenoise(self):
        parest, res = fit_lorentzians(self.ps,
                                      self.nlor,
                                      self.t0[:-1],
                                      fit_whitenoise=False)

        assert len(parest.lpost.model.parameters) / 3 == self.nlor
示例#2
0
    def setup_class(cls):
        np.random.seed(150)
        cls.nlor = 3

        cls.x_0_0 = 0.5
        cls.x_0_1 = 2.0
        cls.x_0_2 = 7.5

        cls.amplitude_0 = 200.0
        cls.amplitude_1 = 100.0
        cls.amplitude_2 = 50.0

        cls.fwhm_0 = 0.1
        cls.fwhm_1 = 1.0
        cls.fwhm_2 = 0.5

        cls.whitenoise = 2.0

        cls.priors = {
            'x_0_0': cls.x_0_0,
            'x_0_1': cls.x_0_1,
            'x_0_2': cls.x_0_2,
            'amplitude_0': cls.amplitude_0,
            'amplitude_1': cls.amplitude_1,
            'amplitude_2': cls.amplitude_2,
            'fwhm_0': cls.fwhm_0,
            'fwhm_1': cls.fwhm_1,
            'fwhm_2': cls.fwhm_2,
            'whitenoise': cls.whitenoise
        }

        cls.model = models.Lorentz1D(cls.amplitude_0, cls.x_0_0, cls.fwhm_0) +\
            models.Lorentz1D(cls.amplitude_1, cls.x_0_1, cls.fwhm_1) + \
            models.Lorentz1D(cls.amplitude_2, cls.x_0_2, cls.fwhm_2) + \
            models.Const1D(cls.whitenoise)

        freq = np.linspace(0.01, 10.0, 1000)
        p = cls.model(freq)
        noise = np.random.exponential(size=len(freq))

        power = p * noise
        cls.ps = Powerspectrum()
        cls.ps.freq = freq
        cls.ps.power = power
        cls.ps.power_err = np.array([0.] * len(power))
        cls.ps.df = cls.ps.freq[1] - cls.ps.freq[0]
        cls.ps.m = 1

        cls.cs = Crossspectrum()
        cls.cs.freq = freq
        cls.cs.power = power
        cls.cs.power_err = np.array([0.] * len(power))
        cls.cs.df = cls.cs.freq[1] - cls.cs.freq[0]
        cls.cs.m = 1

        cls.t0 = np.asarray(
            [200.0, 0.5, 0.1, 100.0, 2.0, 1.0, 50.0, 7.5, 0.5, 2.0])

        cls.parest, cls.res = fit_lorentzians(cls.ps, cls.nlor, cls.t0)
示例#3
0
    def setup_class(cls):
        np.random.seed(150)
        cls.nlor = 3

        cls.x_0_0 = 0.5
        cls.x_0_1 = 2.0
        cls.x_0_2 = 7.5

        cls.amplitude_0 = 200.0
        cls.amplitude_1 = 100.0
        cls.amplitude_2 = 50.0

        cls.fwhm_0 = 0.1
        cls.fwhm_1 = 1.0
        cls.fwhm_2 = 0.5

        cls.whitenoise = 2.0

        cls.priors = {'x_0_0': cls.x_0_0, 'x_0_1': cls.x_0_1,
                      'x_0_2': cls.x_0_2, 'amplitude_0': cls.amplitude_0,
                      'amplitude_1': cls.amplitude_1,
                      'amplitude_2': cls.amplitude_2, 'fwhm_0': cls.fwhm_0,
                      'fwhm_1': cls.fwhm_1, 'fwhm_2': cls.fwhm_2,
                      'whitenoise': cls.whitenoise}

        cls.model = models.Lorentz1D(cls.amplitude_0, cls.x_0_0, cls.fwhm_0) +\
            models.Lorentz1D(cls.amplitude_1, cls.x_0_1, cls.fwhm_1) + \
            models.Lorentz1D(cls.amplitude_2, cls.x_0_2, cls.fwhm_2) + \
            models.Const1D(cls.whitenoise)

        freq = np.linspace(0.01, 10.0, 10.0 / 0.01)
        p = cls.model(freq)
        noise = np.random.exponential(size=len(freq))

        power = p * noise
        cls.ps = Powerspectrum()
        cls.ps.freq = freq
        cls.ps.power = power
        cls.ps.power_err = np.array([0.]*len(power))
        cls.ps.df = cls.ps.freq[1] - cls.ps.freq[0]
        cls.ps.m = 1

        cls.cs = Crossspectrum()
        cls.cs.freq = freq
        cls.cs.power = power
        cls.cs.power_err = np.array([0.]*len(power))
        cls.cs.df = cls.cs.freq[1] - cls.cs.freq[0]
        cls.cs.m = 1

        cls.t0 = np.asarray([200.0, 0.5, 0.1, 100.0, 2.0, 1.0,
                             50.0, 7.5, 0.5, 2.0])

        cls.parest, cls.res = fit_lorentzians(cls.ps, cls.nlor, cls.t0)
示例#4
0
    def setup_class(cls):

        np.random.seed(150)
        cls.nlor = 3

        cls.x_0_0 = 0.5
        cls.x_0_1 = 2.0
        cls.x_0_2 = 7.5

        cls.amplitude_0 = 200.0
        cls.amplitude_1 = 100.0
        cls.amplitude_2 = 50.0

        cls.fwhm_0 = 0.1
        cls.fwhm_1 = 1.0
        cls.fwhm_2 = 0.5

        cls.whitenoise = 2.0

        cls.model = models.Lorentz1D(cls.amplitude_0, cls.x_0_0, cls.fwhm_0) + \
                    models.Lorentz1D(cls.amplitude_1, cls.x_0_1, cls.fwhm_1) + \
                    models.Lorentz1D(cls.amplitude_2, cls.x_0_2, cls.fwhm_2) + \
                    models.Const1D(cls.whitenoise)

        freq = np.linspace(0.01, 10.0, 10.0 / 0.01)
        p = cls.model(freq)
        noise = np.random.exponential(size=len(freq))

        power = p * noise
        cls.ps = Powerspectrum()
        cls.ps.freq = freq
        cls.ps.power = power
        cls.ps.df = cls.ps.freq[1] - cls.ps.freq[0]
        cls.ps.m = 1

        cls.t0 = [200.0, 0.5, 0.1, 100.0, 2.0, 1.0, 50.0, 7.5, 0.5, 2.0]

        cls.parest, cls.res = fit_lorentzians(cls.ps, cls.nlor, cls.t0)
示例#5
0
    def test_correct_parameters_without_whitenoise(self):
        parest, res = fit_lorentzians(self.ps, self.nlor, self.t0[:-1],
                                      fit_whitenoise=False)

        assert len(parest.lpost.model.parameters) / 3 == self.nlor