https://github.com/waqasbhatti/pyeebls
A fork of Dan Foreman-Mackey's python-bls with only the eebls function.
https://github.com/waqasbhatti/pyeebls
astronomy bls fortran period-finding python
Last synced: 4 months ago
JSON representation
A fork of Dan Foreman-Mackey's python-bls with only the eebls function.
- Host: GitHub
- URL: https://github.com/waqasbhatti/pyeebls
- Owner: waqasbhatti
- License: mit
- Created: 2017-03-07T23:49:48.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-04-17T04:07:07.000Z (over 1 year ago)
- Last Synced: 2025-10-29T22:52:31.437Z (9 months ago)
- Topics: astronomy, bls, fortran, period-finding, python
- Language: Fortran
- Homepage:
- Size: 36.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pyeebls
This is a module that wraps Geza Kovacs' eebls.f. Taken from Daniel
Foreman-Mackey's [python-bls](https://github.com/dfm/python-bls.git)
module and broken out for easier use by other packages. This is used by the
[astrobase.periodbase](https://github.com/waqasbhatti/astrobase/tree/master/astrobase/periodbase) module.
## eebls.f
- Kovacs, Zucker & Mazeh 2002, A&A, Vol. 391, 369
- http://arxiv.org/abs/astro-ph/0206099
- http://www.konkoly.hu/staff/kovacs/eebls.f
## python-bls
- Foreman-Mackey, D., Angus, R., et al. 2012
- https://github.com/dfm/python-bls.git
## pyeebls
- Bhatti, W., et al. 2017
- https://github.com/waqasbhatti/pyeebls
### Installation
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.
```bash
(venv)$ pip install pyeebls
```
If this is not the case, you'll need to have numpy installed, along with a
Fortran compiler:
```bash
(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):
```bash
(venv)$ pip install pyeebls
```
Or download the tarball from PyPI, extract the files, and run setup.py:
```bash
(venv)$ python setup.py install
```
### Documentation
There's only one function to use in this module.
```python
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.
### Parameters
`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.
### Returns
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.
### See Also
- the comments at the top of eebls.f in this package
- the [astrobase.periodbase.kbls](https://github.com/waqasbhatti/astrobase/blob/master/astrobase/periodbase/kbls.py) module for a high-level interface to this module
## License
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.