{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/transit-least-squares-an-optimized-transit","title":"Transit Least Squares: An optimized transit detection algorithm to search for periodic transits of small planets","arxiv_id":"1901.02015","date":"2019-01-07","proceeding":null,"authors":["Michael Hippke","René Heller"],"abstract":"We present a new method to detect planetary transits from time-series photometry, the Transit Least Squares (TLS) algorithm. TLS searches for transit-like features while taking the stellar limb darkening and planetary ingress and egress into account. We have optimized TLS for both signal detection efficiency (SDE) of small planets and computational speed. TLS analyses the entire, unbinned phase-folded light curve. We compensate for the higher computational load by (i.) using algorithms like \"Mergesort\" (for the trial orbital phases) and by (ii.) restricting the trial transit durations to a smaller range that encompasses all known planets, and using stellar density priors where available. A typical K2 light curve, including 80d of observations at a cadence of 30min, can be searched with TLS in ~10s real time on a standard laptop computer, as fast as the widely used Box Least Squares (BLS) algorithm. We perform a transit injection-retrieval experiment of Earth-sized planets around sun-like stars using synthetic light curves with 110ppm white noise per 30min cadence, corresponding to a photometrically quiet KP=12 star observed with Kepler. We determine the SDE thresholds for both BLS and TLS to reach a false positive rate of 1% to be SDE~7 in both cases. The resulting true positive (or recovery) rates are ~93% for TLS and ~76% for BLS, implying more reliable detections with TLS. We also test TLS with the K2 light curve of the TRAPPIST-1 system and find six of seven Earth-sized planets using an iterative search for increasingly lower signal detection efficiency, the phase-folded transit of the seventh planet being affected by a stellar flare. TLS is more reliable than BLS in finding any kind of transiting planet but it is particularly suited for the detection of small planets in long time series from Kepler, TESS, and PLATO. We make our Python implementation of TLS publicly available.","url_abs":"http://arxiv.org/abs/1901.02015v1","url_pdf":"http://arxiv.org/pdf/1901.02015v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"transit-least-squares-an-optimized-transit","repo_url":"https://github.com/hippke/tls","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1901.02015","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.02015"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hippke/tls","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":12},"by_repo_kind":{"official":{"samples":12,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d203948861823901","entry":"catalog_info_EPIC","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/catalog.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/catalog.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d203948861823901"}},{"code_sha256_prefix":"56b9758a2f6351e0","entry":"catalog_info_KIC","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/catalog.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/catalog.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56b9758a2f6351e0"}},{"code_sha256_prefix":"1de64efa31f11620","entry":"catalog_info_TIC","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/catalog.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/catalog.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1de64efa31f11620"}},{"code_sha256_prefix":"5d99da9f9b486302","entry":"cleaned_array","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/helpers.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5d99da9f9b486302"}},{"code_sha256_prefix":"bde3e43fa05e9011","entry":"edge_effect_correction","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/core.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/core.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bde3e43fa05e9011"}},{"code_sha256_prefix":"52c3d1f4ce1655b9","entry":"fold","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/core.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/core.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52c3d1f4ce1655b9"}},{"code_sha256_prefix":"926863e948259e7d","entry":"foldfast","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/core.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/core.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"926863e948259e7d"}},{"code_sha256_prefix":"2cc07f5a00ed1299","entry":"interpolation_search","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/interpolation.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/interpolation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2cc07f5a00ed1299"}},{"code_sha256_prefix":"1fa15722e6c09927","entry":"lerp","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/interpolation.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/interpolation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1fa15722e6c09927"}},{"code_sha256_prefix":"fa0f5b9a94285047","entry":"pink_noise","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/stats.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/stats.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fa0f5b9a94285047"}},{"code_sha256_prefix":"1db54012152e965a","entry":"rp_rs_from_depth","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/stats.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/stats.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1db54012152e965a"}},{"code_sha256_prefix":"60d51828dfc721d9","entry":"transit_mask","repo":"hippke/tls","repo_kind":"official","path":"transitleastsquares/helpers.py","file_url":"https://github.com/hippke/tls/blob/HEAD/transitleastsquares/helpers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60d51828dfc721d9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}