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.

plot nonequilibrium co spectrum
Using /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO


Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_1
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_1.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_1.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_1.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_1.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_1.header
END DOWNLOAD
                     Lines parsed: 1344
PROCESSED

Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_2
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_2.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_2.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_2.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_2.header
END DOWNLOAD
                     Lines parsed: 1042
PROCESSED

Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_3
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_3.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_3.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_3.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_3.header
END DOWNLOAD
                     Lines parsed: 920
PROCESSED

Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_4
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_4.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_4.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_4.header
END DOWNLOAD
                     Lines parsed: 800
PROCESSED

Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_5
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_5.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_5.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_5.header
END DOWNLOAD
                     Lines parsed: 674
PROCESSED

Data is fetched from http://hitran.org

BEGIN DOWNLOAD: CO_6
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_6.data
  65536 bytes written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_6.data
Header written to /home/docs/.radisdb/hitran/downloads__can_be_deleted/CO/CO_6.header
END DOWNLOAD
                     Lines parsed: 601
PROCESSED
Added HITRAN-CO database in /home/docs/radis.json
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
Calculating Non-Equilibrium Spectrum
Physical Conditions
----------------------------------------
   Tgas                 300.0 K
   Trot                 300.0 K
   Tvib                 700.0 K
   isotope              1,2,3
   mole_fraction        0.1
   molecule             CO
   path_length          1.0 cm
   pressure_mbar        1013.25 mbar
   rot_distribution     boltzmann
   self_absorption      True
   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
   cutoff               1e-27 cm-1/(#.cm-2)
   dbformat             hitran
   dbpath               /home/docs/.radisdb/hitran/CO.hdf5
   folding_thresh       1e-06
   include_neighbouring_lines  True
   memory_mapping_engine  auto
   neighbour_lines      0 cm-1
   optimization         simple
   parfuncfmt           hapi
   parsum_mode          full summation
   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/envs/master/lib/python3.8/site-packages/radis/misc/warning.py:354: NegativeEnergiesWarning:

There are negative rotational energies in the database

/home/docs/checkouts/readthedocs.org/user_builds/radis/envs/master/lib/python3.8/site-packages/radis/misc/warning.py:354: PerformanceWarning:

'gu' was recomputed although 'gp' already in DataFrame. All values are equal

... sorting lines by vibrational bands
... lines sorted in 0.0s
0.19s - Spectrum calculated

<matplotlib.lines.Line2D object at 0x7f848b3bdd30>

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 4.418 seconds)