RADIS is a fast line-by-line code for high resolution infrared molecular spectra (emission / absorption, equilibrium / nonequilibrium).

It also includes post-processing tools to compare experimental spectra and spectra calculated with RADIS, or with other spectral codes.

Getting Started


Assuming you have Python installed with the Anaconda distribution just use:

pip install radis

That’s it! You can now run your first example below. If you encounter any problem or if you need to upgrade, please refer to the detailed installation procedure. If you don’t have a Python environment, try 🌱 RADIS Online first !

Quick Start

Calculate a CO equilibrium spectrum from the HITRAN database, using the calc_spectrum() function. Output is a Spectrum object:

from radis import calc_spectrum
s = calc_spectrum(1900, 2300,         # cm-1
                  pressure=1.01325,   # bar
                  Tgas=700,           # K
                  path_length=1,      # cm
                  databank='hitran',  # or use 'hitemp'
s.apply_slit(0.5, 'nm')       # simulate an experimental slit

Calculate a CO nonequilibrium spectrum from the HITRAN database, with arbitrary units (on your first call, this will compute and store the CO(X) rovibrational energies):

from astropy import units as u
s2 = calc_spectrum(1900 / u.cm, 2300 / u.cm,
                  pressure=1.01325 * u.bar,
                  Tvib=700 * u.K,
                  Trot=300 * u.K,
                  path_length=1 * u.cm,
                  databank='hitran',  # or use 'hitemp'
s2.apply_slit(0.5, 'nm')
s2.plot('radiance', nfig='same')    # compare with previous

Experimental spectra can be loaded using the experimental_spectrum() function and compared with the plot_diff() function. For instance:

from numpy import loadtxt
from radis import experimental_spectrum, plot_diff
w, I = loadtxt('my_file.txt').T    # assuming 2 columns
sexp = experimental_spectrum(w, I, Iunit='mW/cm2/sr/nm')
plot_diff(sexp, s)    # comparing with a spectrum 's' calculated previously

Typical output of plot_diff() (below: a CO2 spectrum at 3400 K calculated with the [HITEMP-2010] and [CDSD-4000] line databases):


Refer to the Spectrum object guide for more post-processing functions (rescale , crop, remove baselines, store, combine along the line-of-sight, identify each line, manipulate multiple spectra at once, etc.)

In the browser (no installation needed!)

Alternatively, you can also run RADIS directly in the browser with the RADIS Interactive Examples project. For instance, run the Quick Start example on the link below:


Or use 🌱 RADIS-lab to start a full online environment for advanced spectrum processing and comparison with experimental data :


More examples

The Quick Start examples above automatically downloaded the line databases from [HITRAN-2016], which is valid for temperatures below 700 K. For high temperature cases, you may need to use other line databases such as [HITEMP-2010] (typically T < 2000 K) or [CDSD-4000] (T < 5000 K). These databases must be described in a ~/.radis Configuration file.


📣 starting from radis==0.9.28 you can also download HITEMP directly. Just use databank='hitemp' in the initial example. This will automatically download, unzip and setup the database files in a ~/.radisdb folder.

More complex examples will require to use the SpectrumFactory class, which is the core of RADIS line-by-line calculations. calc_spectrum() is a wrapper to SpectrumFactory for the simple cases.

Refer to the Examples section for more examples, and to the User Documentation for more details on the code. You can also ask questions on the Q&A Forum or on the community chats on Gitter or Slack

Gitter Slack


  • The Line-by-line (LBL) module

    This is the core of RADIS: it calculates the spectral densities for a homogeneous slab of gas, and returns a Spectrum object. Calculations are performed within the SpectrumFactory class.

  • Line-of-sight (LOS) module

    This module takes several Spectrum objects as input and combines then along the line-of-sight (SerialSlabs()) or at the same spatial position (MergeSlabs()), to reproduce line-of-sight experiments. The module allows combination of Spectra such as:

    s_line_of_sight = (s_plasma_CO2 // s_plasma_CO) > (s_room_absorption)
  • The Spectrum object guide

    This module contains the Spectrum object itself, with several methods that can be applied after the Spectrum was calculated: rescale, apply instrumental slit function, store or retrieve from a Spectrum database, plot or compare with another Spectrum object.

Q&A Forum

PyPI Downloads Article Documentation Status License Contributors Tests Coverage https://mybinder.org/v2/gh/radis/radis-examples/master?filepath=radis_online.ipynb Gitter Slack