Skip to content

Rrocketter/TCN-TTV

Repository files navigation

Temporal Convolutional Networks for Exoplanet Transit Timing Variations

Objective

Develop a machine learning approach using Temporal Convolutional Networks (TCNs) to detect and analyze transit timing variations (TTVs) in multi-planet systems. This method aims to reveal hidden planets or provide deeper insights into planetary dynamics.

Table of Contents

  1. Installation
  2. Data Collection
  3. Data Preprocessing
  4. Running the Model

Installation

Clone the Repository

To get started, clone the repository to your local machine using the following command:

git clone https://github.com/your-username/your-repository.git

Navigate into the project directory:

cd your-repository

Create a Virtual Environment

Create a virtual environment to manage dependencies:

python -m venv env

Activate the virtual environment:

  • On Windows:

    .\env\Scripts\activate
  • On macOS and Linux:

    source env/bin/activate

Install Dependencies

Install the required dependencies using pip.

Requirements for data + data preprocessing

pip install -r requirements/data-requirements.txt

Requirements for ml model

pip install -r requirements/model-requirements.txt

Data Collection

Use the already provided csv files from the missions and run the respective python scripts to download the data.

cd data_collection

Kepler

Use the Kepler Objects of Interest 2024-07-23.csv to download the data from the Kepler mission.

To download the Kepler data, run the following command:

python3  kepler.py 

K2

Use the K2 Planets July 23.csv to download the data from the K2 mission.

To download the Kepler data, run the following command:

python3  k2.py 

TESS

Use the TESS Project Candidates 2024-07-23.csv to download the data from the K2 mission.

To download the Kepler data, run the following command:

python3  tess.py 

Data Preprocessing

Cleaning the light curve and taking only information that we need. This includes cleaning, transforming, and splitting the data.

cd preprocessing

Step 1

Run the general data preprocessing script:

python preprocess.py

Step 2

Run the script to prepare the data to be feed into the ml model:

python preprocess_ml.py

Download Link

Download the preprocessed data (Around 5.5 GB)

Running the Model

Run the custom TCN model to detect TTVs in the light curves.

cd ml

Train + Evaluate the Model

Change the location of the data in the actual_model.py file to where the data is stored.

data = np.load("../ml_data/ttv-dataset/ttv_detection_data.npz") 

Run the TCN model

python actual_model.py

Research Papers

  1. "Transit Timing Variations as a Method for Detecting Exoplanets":

    • Holman, M. J., & Murray, N. W. (2005). Science, 307(5713), 1288-1291.
    • This foundational paper discusses the TTV method and its potential for detecting exoplanets.
  2. "Application of Convolutional Neural Networks to Exoplanet Detection in Light Curves":

    • Shallue, C. J., & Vanderburg, A. (2018). The Astronomical Journal, 155(2), 94.
    • Explores the use of convolutional neural networks for detecting exoplanets, providing a basis for adapting CNN techniques to TCNs for TTV analysis.
  3. "Neural Network Approaches to TTV Detection":

    • Pearson, K. A., Palafox, L., & Griffith, C. A. (2018). Monthly Notices of the Royal Astronomical Society, 474(4), 4782-4796.
    • Investigates the application of neural networks for transit timing variation detection.
  4. "Machine Learning for Exoplanet Detection and Characterization":

    • Armstrong, D. J., Pollacco, D., & Santerne, A. (2017). Monthly Notices of the Royal Astronomical Society, 465(3), 2634-2654.
    • Reviews various machine learning methods used in exoplanet detection, including TTV analysis.