Bayesian Atmospheric Radiative Transfer fitting code
PLSQL Python
Switch branches/tags
Nothing to show
Clone or download
rychallener Merge pull request #65 from exosports/makefile
Added top-level makefile. Added commands to compile the user manual.
Latest commit d50b593 Jul 6, 2018


Bayesian Atmospheric Radiative Transfer fitting code

This code implements a Bayesian, Monte Carlo-driven, radiative-transfer scheme for extracting parameters from spectra of planetary atmospheres.

Table of Contents:

Team Members:

With support from:

  • Thomas J. Loredo (Cornell)
  • Jonathan Fortney (UCSC)
  • Nikku Madhusudhan (Yale)

Getting Started:

You can find the BART User Manual here. If you run into trouble while using BART, please feel free to use our BART User Mailing List. You'll have to sign up to post (for spam reasons), but we encourage you to join. If you're a developer interested in contributing to BART, you may also be interested in our BART Developer Mailing List (see CONTRIBUTING for more information).

Install and Compile:

Download the latest stable version from the BART releases page (TBD). Alternatively, clone the repository to your local machine with the following terminal commands. First create a working directory to place the code:

mkdir BART_demo/
cd BART_demo/

Clone the repository with all its submodules:

git clone --recursive BART/

Compile the transit module programs:

cd $topdir/BART/modules/transit/

Compile the MCcubed routines:

cd $topdir/BART/modules/MCcubed/

To remove the program binaries, execute (in the respective directories):

make clean

Quick Example:

The following script lets you quickly fit a methane emission spectrum model to a set of 10 filters between 2 and 4 um. These instructions are meant to be executed from the shell terminal. To begin, follow the instructions in the previous Section to install and compile the code. Now, create a working directory in your top directory to place the files and execute the programs:

cd $topdir
mkdir run/
cd run/

Download the methane line-transition database from the HITRAN server:

wget --user=HITRAN --password=getdata -N  

Copy the pylineread configuration file and run pylineread to make the transition-line-information (TLI) file:

cp $topdir/BART/examples/demo/pyline_demo.cfg .  
$topdir/BART/modules/transit/pylineread/src/ -c pyline_demo.cfg

Copy the transit configuration file and run it to make a table of opacities:

cp $topdir/BART/examples/demo/transit_demo.cfg .  
$topdir/BART/modules/transit/transit/transit -c transit_demo.cfg --justOpacity

Copy and run the BART configuration file for eclipse geometry:

cp $topdir/BART/examples/demo/BART_eclipse.cfg .
$topdir/BART/ -c BART_eclipse.cfg

Copy and run the BART configuration file for transit geometry:

cp $topdir/BART/examples/demo/BART_transit.cfg .
$topdir/BART/ -c BART_transit.cfg

Be Kind:

A number of graduate and undergraduate-student dreams and hopes have been sacrificed on the making of this project. Please, be kind and aknowledge their effort by citing the articles asociated to this project:

Cubillos et al. 2016: The Bayesian Atmospheric Radiative-Transifer Code for Exoplanet Modeling, in preparation.
Blecic et al. 2016: The Bayesian Atmospheric Radiative-Transifer Code for Exoplanet Modeling, in preparation.
Harrington et al. 2016: The Bayesian Atmospheric Radiative-Transifer Code for Exoplanet Modeling, in preparation.


Bayesian Atmospheric Radiative Transfer (BART), a code to infer properties of planetary atmospheres based on observed spectroscopic information.

This project was completed with the support of the NASA Planetary Atmospheres Program, grant NNX12AI69G, held by Principal Investigator Joseph Harrington. Principal developers included graduate students Patricio E. Cubillos and Jasmina Blecic, programmer Madison Stemm, and undergraduates M. Oliver Bowman and Andrew S. D. Foster. The included 'transit' radiative transfer code is based on an earlier program of the same name written by Patricio Rojo (Univ. de Chile, Santiago) when he was a graduate student at Cornell University under Joseph Harrington. Statistical advice came from Thomas J. Loredo and Nate B. Lust.

Copyright (C) 2015-2016 University of Central Florida. All rights reserved.

This is a test version only, and may not be redistributed to any third party. Please refer such requests to us. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Our intent is to release this software under an open-source, reproducible-research license, once the code is mature and the first research paper describing the code has been accepted for publication in a peer-reviewed journal. We are committed to development in the open, and have posted this code on so that others can test it and give us feedback. However, until its first publication and first stable release, we do not permit others to redistribute the code in either original or modified form, nor to publish work based in whole or in part on the output of this code. By downloading, running, or modifying this code, you agree to these conditions. We do encourage sharing any modifications with us and discussing them openly.

We welcome your feedback, but do not guarantee support. Please send feedback or inquiries to:
Patricio Cubillos
Jasmina Blecic
Joseph Harrington

or alternatively,
Joseph Harrington, Patricio Cubillos, and Jasmina Blecic
4111 Libra Drive
Orlando, FL 32816-2385

Thank you for testing BART!

BART Development Plan

  1. Fully understand Pato's code (all, esp. Patricio, Jasmina) (DONE!)
  2. Split transit code into initialization and loop (Patricio, Andrew) (DONE!)
  3. Drive loop with arbitrary parameters (Patricio)
  4. Interface transit code with MC driver (Jasmina, Patricio) (READY for testing)
  5. First test: H2O-only, transit, constant abundances, constant T(p) (good enough for NESSF! 15 Jan)
  6. Upgrades required to publish (do in any order): many molecules' line lists (Patricio) eclipse geometry (Jasmina) (READY for tests) CEA initial conditions/constant scaling (Jasmina) (READY for tests) Madhu T(p) (Jasmina)
  7. Validation vs. Madhu (can do science now)
  8. Performance upgrades: correlated-k multiple chains from one node driving single RT code multiple chains from one node driving multiple RT codes multiple chains from multiple nodes driving multiple RT codes
  9. Science upgrades: flux-balanced layers (a la Burrows) constant abundances/T(p) throughout atmosphere line-list-difference tests dayside map phase curve dayside map + phase curve

Test after each upgrade, record output, compare output of next upgrade with upgrade turned off to previous output to make sure we didn't wreck anything.