Calculate non-LTE spectra of carbon-monoxide¶
Compute a CO spectrum with the temperature of the vibrational mode different from the temperature of the rotational mode.
This example uses the calc_spectrum() function,
the [HITRAN-2016] line database to derive the line positions
and intensities, and the default RADIS spectroscopic
constants to compute nonequilibrium energies and populations,
but it can be extended to other line databases and other sets
of spectroscopic constants.

--------------------------------------------------------------------------------
CO - HITRAN - Downloading database
--------------------------------------------------------------------------------
Download:
- All files already downloaded.
Caching to HDF5/H5 format:
- All files already cached.
Calculating energy levels with Dunham expansion for CO(X1Σ+)(iso1)
Database generated up to v=48, J=238
Calculating energy levels with Dunham expansion for CO(X1Σ+)(iso2)
Database generated up to v=48, J=243
Calculating energy levels with Dunham expansion for CO(X1Σ+)(iso3)
Database generated up to v=48, J=243
0.50s - Loaded database
Calculating Non-Equilibrium Spectrum
Physical Conditions
----------------------------------------
Tgas 300.0 K
Trot 300.0 K
Tvib 700.0 K
isotope 1,2,3
medium air
mole_fraction 0.1
path_length 1.0 cm
pressure 1.01325 bar
rot_distribution boltzmann
self_absorption True
species CO
state X
vib_distribution boltzmann
wavenum_max 2300.0000 cm-1
wavenum_min 1900.0000 cm-1
Computation Parameters
----------------------------------------
Tref 296 K
add_at_used
broadening_method voigt_poly
cutoff 1e-27 cm-1/(#.cm-2)
dbformat hitran
dbpath /home/docs/.radisdb/hitran/CO.h5
diluent air
folding_thresh 1e-06
include_neighbouring_lines True
isatom False
isneutral None
lbfunc None
memory_mapping_engine auto
neighbour_lines 0 cm-1
optimization simple
parsum_mode full summation
pfsource default
potential_lowering None
pseudo_continuum_threshold 0
sparse_ldm auto
truncation 50 cm-1
waveunit cm-1
wstep 0.01 cm-1
zero_padding -1
----------------------------------------
Fetching Evib & Erot.
/home/docs/checkouts/readthedocs.org/user_builds/radis/checkouts/latest/radis/misc/warning.py:434: NegativeEnergiesWarning: There are negative rotational energies in the database
warnings.warn(WarningType(message))
/home/docs/checkouts/readthedocs.org/user_builds/radis/checkouts/latest/radis/misc/warning.py:434: PerformanceWarning: 'gu' was recomputed although 'gp' already in DataFrame. All values are equal
warnings.warn(WarningType(message))
... sorting lines by vibrational bands
... lines sorted in 0.0s
0.14s - Spectrum calculated
<matplotlib.lines.Line2D object at 0x73c594a45940>
from astropy import units as u
from radis import calc_spectrum
s2 = calc_spectrum(
1900 / u.cm,
2300 / u.cm,
molecule="CO",
isotope="1,2,3",
pressure=1.01325 * u.bar,
Tvib=700 * u.K,
Trot=300 * u.K,
mole_fraction=0.1,
path_length=1 * u.cm,
databank="hitran", # or use 'hitemp'
)
s2.plot("radiance_noslit")
# Apply a (large) instrumental slit function :
s2.apply_slit(10, "nm")
s2.plot("radiance", nfig="same", lw=2) # compare with previous
Total running time of the script: (0 minutes 1.067 seconds)