Compare NO cross-sections from GEISA and ExoMolΒΆ

Auto-download, calculate, and compare NO spectra from the HITRAN and GEISA databases

import astropy.units as u

from radis import calc_spectrum, plot_diff

conditions = {
    "wmin": 1900 / u.cm,
    "wmax": 2100 / u.cm,
    "molecule": "NO",
    "isotope": "1",
    "pressure": 1.01325,  # bar
    "Tgas": 1000,  # K
    "mole_fraction": 0.1,
    "path_length": 1,  # cm
    "verbose": True,
    "neighbour_lines": 20,  # we account for the effect on neighbour_lines by computing ``20cm-1``
    "wstep": 0.0074,
}

s_geisa = calc_spectrum(**conditions, databank="geisa", name="GEISA")
s_hitran = calc_spectrum(**conditions, databank="hitran", name="HITRAN")

fig, [ax0, ax1] = plot_diff(
    s_geisa,
    s_hitran,
    "xsection",
    yscale="log",
)

# Adjust diff plot to be in linear scale
ax1.set_yscale("linear")
ax0.set_ylim(ymin=1e-24)  # to adjust the range of display

# The two spectra are different near 2000 cm-1. You can still check that the
# overal integrated cross-sections are similar (within 2% in March 2025).
# We verify this :
print(
    f"Ratio of integrated area = {s_geisa.get_integral('xsection')/s_hitran.get_integral('xsection'):.2f}"
)