Algorithm developed to conduct a systematic search for exoplanets orbiting eclipsing binary stars.
Project description
Stanley Pipeline
Stanley is a research pipeline for detecting, modeling, and analyzing eclipsing binaries and potential circumbinary planets (CBPs) in space-based photometric data. It was originally developed for the Kepler CBP sample and has since been extended to large-scale searches in TESS light curves. In circumbinary systems, planetary transits do not occur at regular intervals and transit durations vary significantly due to the orbital motion of both stars around the barycenter. As a result, conventional single-star transit search algorithms perform poorly. Stanley implements methods specifically optimized for the variable-timing and variable-duration transit signatures unique to circumbinary planets.
Core Capabilities
Detrending
- Iterative cosine (COFIAM-like) filtering
- TESS-specific quadratic baseline removal
- Variable-duration biweight filters
- Outlier / flare / kink removal
- Optional ellipsoidal and reflection trend modeling
Binary Modeling & Validation
- Robust eclipse identification
- Multi-stage BLS period and harmonic validation
- Extraction of binary parameters (P, e, omega, eclipse depths and widths)
Secondary Eclipse Vetting
- Geometric feasibility tests
- Inclination / eccentricity constraints
Transit Timing Variation Search
- N-body forward modeling via REBOUND
- Variable-duration transit stacking matched to dynamically predicted timing signatures
Scalable Execution
- Fully HPC-compatible (SLURM)
- Each module (detrending, search, analysis) may run independently or as a unified pipeline
- Interpolative potential for less computational load
Scientific Context
Stanley was first validated on the Kepler circumbinary-planet sample, where it successfully recovered all known CBPs including Kepler-47 b/c/d, searched for additional planets using variable-duration stacked transit detection, and demonstrated sensitivity to planets smaller than roughly three Earth radii in about half the systems. The current version extends the pipeline to TESS, enabling large-scale searches of low-mass eclipsing binaries and supporting demographic studies of small circumbinary planets.
Repository Structure and Data Requirements
This repository contains only the core source code (stanley_cbp/).
All static catalogs needed at runtime are packaged inside:
stanley_cbp/Databases/
Users do not need to download any external data or set a STANLEY_BASE environment variable.
Instead, when running the pipeline (typically from the Tutorials/ folder), Stanley automatically creates and manages a local runtime workspace containing:
- LightCurves/
- PlanetSearchOutput/
- DiagnosticReports/
- UserGeneratedData/
These folders are created in the same directory from which the user runs the notebook or script (e.g.,Tutorials/), and no manual setup is required.
Installation
Install from PyPI (future release): pip install stanley_cbp
Or install from a locally built wheel: pip install dist/stanley_cbp-0.1.X-py3-none-any.whl
Using Stanley in Python
Example workflow:
Import:
from stanley_cbp import runDetrendingModule, Stanley_FindPlanets, runAnalysisModule
Detrending example:
result_det = runDetrendingModule(SystemName="TIC260128333", DetrendingName="DemoDetrend", UseSavedData=0)
Search example:
Stanley_FindPlanets(SearchName="DemoSearch", SystemName="TIC260128333", DetrendingName="DemoDetrend", totalSectors=1, currentSector=1)
Analysis example:
analysis_out = runAnalysisModule(searchName="DemoSearch", systemName="TIC260128333", totalSectors=1)
Tutorials
A Tutorials/ directory is provided with example Jupyter notebooks.
These notebooks assume:
- a local stanley_cbp installation,
- that the directory where the notebook is run will automatically function as the runtime workspace,
- and that Stanley will generate all required folders (
LightCurves/,PlanetSearchOutput/,DiagnosticReports/,UserGeneratedData/) as needed.
The tutorials demonstrate detrending, running the CBP search, interpreting outputs, and generating diagnostic figures.
Licensing
This package is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stanley_cbp-0.1.60.tar.gz.
File metadata
- Download URL: stanley_cbp-0.1.60.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4942ddd91df5373217143ce7115ebcf61f16ceec009c98e16880fd3c603e5776
|
|
| MD5 |
01f287a6899c832c5fe43e1287a49ddc
|
|
| BLAKE2b-256 |
946a6a5d740b5904fba8aa6ee58e5fb402ebbcc7d679f860eba62679c7082ea7
|
File details
Details for the file stanley_cbp-0.1.60-py3-none-any.whl.
File metadata
- Download URL: stanley_cbp-0.1.60-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30115e6e543d753b6220ded28167bc7dd2fb54c279aef5f75e29cf59b32722f1
|
|
| MD5 |
a3d887e55428a73e7ef0928ccac99396
|
|
| BLAKE2b-256 |
c1e945bc2eea5092c54e3f043618e9bb480ee6a1b9c82e16857ac3141b0aeefa
|