hippke / tls

Transit Least Squares: An optimized transit-fitting algorithm to search for periodic transits of small planets
MIT License
48 stars 25 forks source link
algorithm exoplanet exoplanets least periodic planet python squares tls transit

Logo

An optimized transit-fitting algorithm to search for periodic transits of small planets

Image Image Image Image Image Image

Motivation

We present a new method to detect planetary transits from time-series photometry, the Transit Least Squares (TLS) algorithm. While the commonly used Box Least Squares (BLS, Kovács et al. 2002) algorithm searches for rectangular signals in stellar light curves, TLS searches for transit-like features with stellar limb-darkening and including the effects of planetary ingress and egress. Moreover, TLS analyses the entire, unbinned data of the phase-folded light curve. These improvements yield a ~10 % higher detection efficiency (and similar false alarm rates) compared to BLS. The higher detection efficiency of our freely available Python implementation comes at the cost of higher computational load, which we partly compensate by applying an optimized period sampling and transit duration sampling, constrained to the physically plausible range. A typical Kepler K2 light curve, worth of 90 d of observations at a cadence of 30 min, can be searched with TLS in 10 seconds real time on a standard laptop computer, just as with BLS.

image

Installation

TLS can be installed conveniently using: pip install transitleastsquares

If you have multiple versions of Python and pip on your machine, try: pip3 install transitleastsquares

The latest version can be pulled from github::

git clone https://github.com/hippke/tls.git
cd tls
python setup.py install

If the command python does not point to Python 3 on your machine, you can try to replace the last line with python3 setup.py install. If you don't have git on your machine, you can find installation instructions here. TLS also runs on Python 2, but without multi-threading.

Dependencies: Python 3, NumPy, numba, batman-package, tqdm, optional: argparse (for the command line version), astroquery (for LD and stellar density priors from Kepler K1, K2, and TESS).

If you have trouble installing, please open an issue.

Getting started

Here is a short animation of a real search for planets in Kepler K2 data. For more examples, have a look at the tutorials and the documentation.

image

Attribution

Please cite Hippke & Heller (2019, A&A 623, A39) if you find this code useful in your research. The BibTeX entry for the paper is:

@ARTICLE{2019A&A...623A..39H,
       author = {{Hippke}, Michael and {Heller}, Ren{\'e}},
        title = "{Optimized transit detection algorithm to search for periodic transits of small planets}",
      journal = {\aap},
         year = "2019",
        month = "Mar",
       volume = {623},
          eid = {A39},
        pages = {A39},
          doi = {10.1051/0004-6361/201834672},
archivePrefix = {arXiv},
       eprint = {1901.02015},
 primaryClass = {astro-ph.EP},
       adsurl = {https://ui.adsabs.harvard.edu/\#abs/2019A&A...623A..39H},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

Contributing Code, Bugfixes, or Feedback

We welcome and encourage contributions. If you have any trouble, open an issue.

Copyright 2019 Michael Hippke & René Heller.