This repo is a laptop-only exoplanet transit search pipeline built on public NASA TESS data. It uses the Lightkurve Python package to pull light curves from the MAST archive, searches for repeating box-shaped dips with a Box Least Squares (BLS) periodogram, and logs candidate signals into a CSV catalog.
-
Pi Mensae pipeline (Colab notebook)
notebooks/pi_mensae_pipeline.ipynbruns end-to-end on the known TESS planet Pi Mensae c:- Queries TESS sectors via
lk.search_lightcurve. - Downloads, stitches, and flattens the light curve.
- Runs a BLS periodogram to find a repeating transit signal.
- Folds the light curve on the best-fit period to reveal the transit shape.
- Applies secondary-eclipse and odd/even transit checks.
- Estimates planet radius from transit depth and stellar radius.
- Queries TESS sectors via
-
Command-line hunter with logging
src/hunt.pyis a CLI script that:- Takes a star name (e.g.
"Pi Mensae","HD 63433","AU Mic"). - Runs the same Lightkurve + BLS pipeline in Python.
- Prints TIC ID, period, transit depth, and BLS power score.
- Appends results to
results/candidates.csvwith columns:star, tic_id, period_days, depth, power, note.
- Takes a star name (e.g.
-
Batch survey
src/batch_search.pyreads a list of target stars fromdata/targets.txt, runshunt()on each one, and grows theresults/candidates.csvcatalog in a reproducible way. -
Results catalog
results/candidates.csvcurrently includes entries such as:- Pi Mensae (TIC 261136679) with a strong repeating transit signal.
- HD 63433 (TIC 130181866) with a shallow but coherent dip.
- AU Mic (TIC 441420236) with a deeper candidate transit.
- Targets with
note = no_datawhere TESS does not have suitable light curves.
Below is the Streamlit interface running the hunt on Pi Mensae. The app shows the star name, TIC ID, best-fit period, transit depth, BLS power score, and a folded transit plot built from real TESS data.
Instead of a toy simulation, this pipeline works directly on real space telescope data from NASA’s TESS mission. The code structure makes it easy to:
- Re-discover known planets (sanity check against published values).
- Apply the same search and vetting logic to new target stars.
- Build up a quantitative catalog for further scientific or ML analysis.
Create a virtual environment and install dependencies:
python3 -m venv venv
source venv/bin/activate
pip install lightkurve numpy streamlitThen run the hunter on any TESS target whose name resolves via Lightkurve:
python src/hunt.py "Pi Mensae"
python src/hunt.py "HD 63433"
python src/hunt.py "AU Mic"Each run will append a row to results/candidates.csv.
With the same virtual environment activated:
streamlit run app.pyThis will open a local web app where you can enter a star name, run the hunt, see the key numbers (period, depth, power), and view the folded transit plot.
- More vetting helpers as standalone functions (secondary eclipse, odd/even).
- A small report in
docs/methods.mdsummarizing a search over a larger set of stars. - Optional extensions for ML-based classification of candidate signals.
