Skip to content

An implementation of the Bayesian Generalized Lomb Scargle periodogram as described by Mortier et al. 2015

License

Notifications You must be signed in to change notification settings

jvines/BayesianGLS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BayesianGLS

An implementation of the Bayesian Generalized Lomb Scargle periodogram as described by Mortier et al. 2015

Installation

Just clone the repository and then install using setup.py

$ cd BayesianGLS
$ python setup.py install

Usage

To use, simply import bayesian_generalized_lomb_scargle from bgls

import scipy as sp
from scipy.stats import norm, uniform
import numpy as np

from bgls import bayesian_generalized_lomb_scargle

np.random.seed(42)
a = 5
p = 5.67
f = 1 / p
errs = abs(norm(loc=0, scale=1).rvs(size=250))
t = uniform.rvs(size=250, loc=2, scale=100)
t.sort()
fun = a * sp.sin(2 * sp.pi * f * t) + norm.rvs(size=250, scale=1)

PP = sp.linspace(sp.diff(t).mean(), 2 * 26, 100000)
FF = 1 / PP
lnp = bayesian_generalized_lomb_scargle(fun, t, errs, FF)

plt.errorbar(x=t, y=fun, yerr=errs, marker='o', ls='')
plt.xlabel('time')
plt.ylabel('rv')
plt.savefig('synthetic_data.pdf', bbox_inches='tight')
plt.clf()

plt.semilogx(PP, lnp)
period = PP[sp.argmax(lnp)]
lab = '{:.4f}'.format(period)
plt.axvline(PP[sp.argmax(lnp)], lw=5, alpha=.3, c='g', label=lab)
plt.legend(loc=0)
plt.title('BGLS')
plt.xlabel('period')
plt.ylabel('normalized loglikelihood')
plt.savefig('BGLS.pdf', bbox_inches='tight')
plt.clf()

The results look like this:

alt text

alt text

Uninstallation

If you wish to remove BGLS, just go to the terminal and type pip uninstall bgls

This code is based of Mortier et al. 2015

About

An implementation of the Bayesian Generalized Lomb Scargle periodogram as described by Mortier et al. 2015

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages