About Exo_k

Exo_k is a Python 3 based library to handle radiative opacities from various sources for atmospheric applications. It now comes with a full-fledged 1D atmospheric evolution model.

It enables you to:

  • Interpolate efficiently and easily in correlated-k and cross section tables.

  • Convert easily correlated-k and cross section tables from one format to another (hdf5, LMDZ GCM, Exomol, Nemesis, PetitCode, TauREx, ExoREM, ARCIS, etc.).

  • Adapt precomputed correlated-k tables to your needs by changing:

    • the spectral and quadrature (g) grids,

    • the pressure/temperature grid.

  • Create tables for a mix of gases using tables for individual gases.

  • Create your own tables from high-resolution spectra (for example from K-spectrum, Helios-K, etc.).

  • Use your data in an integrated radiative transfer framework to simulate planetary atmospheres.

  • Compute the physical state of planetary atmospheres in radiative-convective equilibrium.

On this website, you’ll find a Getting Started section that will show you how to deal with radiative data with concrete examples that you can run on your own machine through the tutorial jupyter notebook provided in the repository. Many important concepts and options are presented along the way.

The atmospheric modeling module is presented in the Practical guide to atmospheric modeling section that is also based on a tutorial jupyter notebook

The API reference section also lists systematically all the classes and methods available in the library and details the necessary inputs and available options for each of them. This documentation is searchable with the search bar in the top left corner.

If you find this library useful in your reasearch, please acknowledge it by citing Leconte (2021):

  • Spectral binning of precomputed correlated-k coefficients. Astronomy and Astrophysics 645. Leconte, J. 2021.



Jeremy Leconte.

Recent releases

v1.2.2 (September 2023): Improvement have been made on the development side. We added a conda environment allowing to easily contribute to Exo_k. Dependencies have been updated.

v1.2.1 (June 2023): Fixes some minor bugs in the atmospheric evolution module. Addition of a contribution function in the atmospheric radiative transfer module. See the atmosphere tutorial for an example.

v1.2.0 (July 2022): The model for atmospheric evolution is finally stable and documented. The atm module has also seen several note worthy additions: surface albedo, oceans. We also added a framework for an automatic test suite. In particular, we can test several python versions. Additional tests should rapidly come along. Rosseland and Planck mean opacities can now be computed from radiative tables.

v1.1.0 (August 2021): New scheme for the computation of atmospheric emission/transmission to ensure an improved numerical accuracy. The variable names to instantiate atm objects have changed accordingly (see tutorial).

v1.0.2 (June 2021): Adds a few missing dependencies. Enables computation of thermal emission spectra with scattering through the two-stream method (full documentation pending). Enables creating Xtables for a mix of gases (CIA can be added as well). Solves some issues with the 2018 Hitran CIA format.

v1.0.1 (Jan 2021): Solves a binary/string conversion issue introduced by version 3 of h5py. Enables linear interpolation in pressure (default is log). Enables creation of empty tables to be filled later and extension of the spectral range of existing tables.

v1.0.0 (Dec 2020): Finally our first official version. Creation of a ‘Neat examples’ section with fully worked out use cases for Exo_k.

v0.0.5 (Oct 2020): Ensures compatibility with latest Exomol correlated-k and cross-section tables (Chubb et al. 2020).

Doc Contents


This project has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement n° 679030/WHIPLASH).

The framework for this documentation has been developed by Aurelien Falco using Sphinx. The Framework for automatic testing has been developed by Alexandre Mechineau.