Skip to main content

Exo_k

Stable Version Python Versions uv Taskfile

Author: Jeremy Leconte (CNRS/LAB/Univ. Bordeaux)

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.

For a complete online documentation, checkout: https://lab.pages.in2p3.fr/whiplash-public/exo_k

In this repository, you'll find a tutorial jupyter notebook that will show you how to do all that with concrete examples that you can run on your own machine. Many important concepts and options are presented along the way.

Enjoy!

J. Leconte

Acknowledgements

If you use this library in your research, please acknowledge it by citing Leconte (2021):

  • Spectral binning of precomputed correlated-k coefficients. Astronomy and Astrophysics 645. Leconte, J. 2021. doi: 10.1051/0004-6361/202039040

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.

last release (see past releases below)

v1.3.2 (September 2026): Allow to specify the albedo as an array depending on the wavenumber.

Installation

Exo_k can be installed using pip (without cloning the repository; dependencies should be downloaded automatically):

pip install exo_k

Usage

To learn how to use exo_k, we provide notebooks that teach you what you can do with exo_k. Start by cloning the repository:

git clone https://gitlab.in2p3.fr/LAB/whiplash-public/exo_k.git
cd exo_k

You can get started by opening tutorial-exo_k.ipynb. (On your machine: tutorials/tutorial-exo_k.ipynb)

To run this notebook, you will need to install a proper virtual environment. We recommend that you use uv to get started quickly.

See: https://docs.astral.sh/uv/getting-started/installation/

From the cloned repository, uv will create a virtual environment .venv and install all dependencies for you:

uv sync

You can now select the virtual environment with your editor, such as VS Code.

Have fun!

Links

past releases

v1.3.1 (May 2026): Allow specifying an albedo for the collimated incoming stellar light, as a follow-up to the previous work. Improved how the albedo is defined and passed to Atm. Replaced Poetry with uv. Migrated to IN2P3's forge.

v1.3.0 (September 2024): Now possible to specify the direction of incoming stellar light in Atmospheric radiative transfer calculations.

v1.2.3 (April 2024): Implements diffusion of potential temperature in the atmospheric evolution model and other features. Inclusion of Helios-binary, Atmo-netcdf and Cia tabular data formats.

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 'examples' notebook with fully worked out use cases for the Exo_k.

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

Release files for exo-k 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for exo-k 1.3.2
File Interpreter ABI Platform
exo_k-1.3.2-py3-none-any.whl Python 3 none any Details

Release files / exo_k-1.3.2-py3-none-any.whl

Download URL exo_k-1.3.2-py3-none-any.whl
Size 194.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78ef4ee30a209ab5c462bff2dd0dd79a1d61a9ad3cbc23687ed4485e5fa51f1f
BLAKE2b-256 checksum
How to use checksums
1a42c10eb47f21b687d651326b9e2e59d3ec0ba456ef96504aa235ac2ab3ffeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.3.2 This release

1 release file

1.3.1

1 release file

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page