A modular Python-based pipeline for modeling exoplanetary atmospheres and surfaces, generating synthetic spectra, and comparing outputs with observational contrast data. The system integrates with a Julia-based radiative transfer model (AGNI) to simulate and analyze a variety of atmospheric and surface conditions.
AGNI: nichollsh.github.io/AGNI/
This project allows the user to:
- Generate and configure planetary models using stellar and planetary data.
- Create synthetic spectra from both blackbody and radiative transfer simulations.
- Fit planetary surface temperatures to observational contrast data.
- Plot spectral flux and planet-star contrast for model comparison.
- Explore effects of varying atmospheric compositions, surface materials, and instellation levels.
VAYU/
│
├── AGNI/ # Julia-based AGNI radiative transfer engine
├── res/
│ ├── atmospheres/ # Basic atmosphere composition TOMLs
│ ├── config/ # Generated AGNI configuration TOMLs
│ ├── planetary_data/ # Basic planet data, and observational contrasts
│ ├── stellar_spectra/ # Stellar spectra files (.txt)
│ └── surfaces/ # Surface albedo files (.dat)
│
├── out/ # Model results and plots saved here (per planet)
├── src/
│ ├── atmosphere_labels.py # Labels for atmosphere keys
│ ├── chi2_table.py # Creates chi-2 summary table
│ ├── config_gen.py # Generates AGNI config TOMLs
│ ├── constants.py # Physical and astronomical constants
│ ├── dataloader.py # Loads data
│ ├── emission_miri.py # Simulates observed emission with JWST Miri filters
│ ├── pipeline.py # Main orchestration script
│ ├── plots.py # Plotting utilities
│ ├── stat.py # Statistical functions
│ ├── temperature_fit.py # Fit temperature to observational data
│ ├── throughput.py # Calculate JWST Miri filter throughput for simulated emission
│ └── utils.py # Math + I/O helpers (Planck, contrast, etc.)
│
├── agni_config.toml # Paths to directories
├── atmos_list.toml # Optional list of atmospheres to loop over
└── README.md # This file
-
Clone the repository
git clone https://github.com/stuitje/VAYU.git cd VAYU -
Set up Python environment
Make sure you have the required dependencies installed:
pip install -r requirements.txt
Required packages include:
numpy,pandas,matplotlib,scipy,toml,tomlkit,netCDF4
-
Install AGNI
Follow the AGNI installation instructions as explained in: https://nichollsh.github.io/AGNI/dev/setup/. AGNI must be placed inside the root directory (
VAYU/). From the root directory, you can test AGNI using: .julia AGNI/test/runtests.jl
-
Configure paths
If needed, update
agni_config.tomlto reflect your machine's paths. Default:# Base AGNI directory (used to access the model engine) agni_dir = "AGNI" # Input files and directories planet_csv = "res/planetary_data/exoplanetarchive.csv" obs_data_dir = "res/planetary_data" atmosphere_dir = "res/atmospheres" surface_dir = "res/surfaces" stellar_spectra_dir = "res/stellar_spectra" # AGNI input files spectral_file = "AGNI/res/spectral_files/Honeyside/256/Honeyside.sf" spectral_file_O2 = "AGNI/res/spectral_files/Reach/318/Reach.sf" # Outputs output_dir = "out" config_dir = "res/config"