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.
- Patricio Cubillos (UCF, IWF) [email protected]
- Jasmina Blecic (UCF)
- Joseph Harrington (UCF)
- Patricio Rojo (U. de Chile)
- Nate Lust (UCF)
- Oliver Bowman (UCF)
- Madison Stemm (UCF)
- Andrew Foster (UCF)
- Ryan Challener (UCF)
- Michael D. Himes (UCF)
With support from:
- Thomas J. Loredo (Cornell)
- Jonathan Fortney (UCSC)
- Nikku Madhusudhan (Yale)
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).
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/
topdir=`pwd`
Clone the repository with all its submodules:
git clone --recursive https://github.com/exosports/BART $topdir/BART/
Enter the BART directory and build the conda environment:
cd $topdir/BART/
conda env create -f environment.yml
conda activate bart
Compile the transit module programs:
cd $topdir/BART/modules/transit/
make
Compile the MCcubed routines:
cd $topdir/BART/modules/MCcubed/
make
To remove the program binaries, execute (in the respective directories):
make clean
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 HITRAN 2012 methane line-transition database at https://hitran.org/lbl/. Extract it:
unzip 06_hit12.zip
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/pylineread.py -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/BART.py -c BART_eclipse.cfg
Copy and run the BART configuration file for transit geometry:
cp $topdir/BART/examples/demo/BART_transit.cfg .
$topdir/BART/BART.py -c BART_transit.cfg
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:
Thanks!
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 github.com 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 [email protected]
Jasmina Blecic [email protected]
Joseph Harrington [email protected]
or alternatively,
Joseph Harrington, Patricio Cubillos, and Jasmina Blecic
UCF PSB 441
4111 Libra Drive
Orlando, FL 32816-2385
USA
Thank you for testing BART!
- Fully understand Pato's code (all, esp. Patricio, Jasmina) (DONE!)
- Split transit code into initialization and loop (Patricio, Andrew) (DONE!)
- Drive loop with arbitrary parameters (Patricio)
- Interface transit code with MC driver (Jasmina, Patricio) (READY for testing)
- First test: H2O-only, transit, constant abundances, constant T(p) (good enough for NESSF! 15 Jan)
- 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)
- Validation vs. Madhu (can do science now)
- 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
- 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.