This is a module that wraps Geza Kovacs' eebls.f. Taken from Daniel Foreman-Mackey's python-bls module and broken out for easier use by other packages. This is used by the astrobase.periodbase module.
- Kovacs, Zucker & Mazeh 2002, A&A, Vol. 391, 369
- http://arxiv.org/abs/astro-ph/0206099
- http://www.konkoly.hu/staff/kovacs/eebls.f
- Foreman-Mackey, D., Angus, R., et al. 2012
- https://github.com/dfm/python-bls.git
- Bhatti, W., et al. 2017
- https://github.com/waqasbhatti/pyeebls
This package is available from PyPI: https://pypi.python.org/pypi/pyeebls. If you're using Python 2.7, 3.4--3.6 on 64-bit Linux or Python 2.7/3.6 on 64-bit Windows or Mac OSX >= 10.12, you should be able to install the binary wheels from PyPI so no Fortran compiler is needed.
(venv)$ pip install pyeebls
If this is not the case, you'll need to have numpy installed, along with a Fortran compiler:
(venv)$ pip install numpy # in a virtualenv
# or use dnf/yum/apt install numpy to install systemwide
## you'll need a Fortran compiler to install pyeebls! ##
## on Linux: dnf/yum/apt install gcc gcc-gfortran ##
## on OSX (using homebrew): brew install gcc && brew link gcc ##
Then, install pyeebls using pip (preferably in a virtualenv or use the --user flag):
(venv)$ pip install pyeebls
Or download the tarball from PyPI, extract the files, and run setup.py:
(venv)$ python setup.py install
There's only one function to use in this module.
def pyeebls.eebls(times, mags, workarr_u, workarr_v,
nfreq, freqmin, stepsize,
nbins, minduration, maxduration):
Calculates the BLS spectrum for the input times and mags arrays.
times
: ndarray :
A numpy array containing the times of the measurements.
mags
: ndarray :
A numpy array containing the mags or fluxes to use as measurements.
workarr_u
, workarr_v
: ndarray :
Numpy arrays that must be the same size as times, used as temp
workspaces by the Fortran function.
nfreq
: int :
The number of frequencies to search for the best period.
freqmin
: float :
The minimum frequency to use.
stepsize
: float :
The stepsize in frequency units to use while searching.
nbins
: int :
The number of bins to use when phasing up the light curve at a
single test period.
minduration
: float :
The minimum transit duration in phase units to consider when testing for
a transit.
maxduration
: float :
The minimum transit duration in phase units to consider when testing for
a transit.
A sequence of results:
(power, bestperiod, bestpower, transdepth,
transduration, transingressbin, transegressbin)
power
: ndarray :
A numpy array containing the values of the BLS spectrum at each tested
frequency.
bestperiod
: float :
The period at the highest peak in the frequency spectrum.
bestpower
: float :
The power at the highest peak in the frequency spectrum.
transdepth
: float :
The depth of the transit at the best period.
transduration
: float :
The length of the transit as a fraction of the phase. This is the
so-called 'q' parameter.
transingressbin
: int :
The phase bin index for the start of the transit.
transegressbin
: int :
The phase bin index for the end of the transit.
- the comments at the top of eebls.f in this package
- the astrobase.periodbase.kbls module for a high-level interface to this module
The license for the Python files is the MIT License. eebls.f is provided by G. Kovacs; it appears to be re-distributable, but please make sure to cite Kovacs, et al. 2002 if you use this implementation.