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

Out:

Generating cache file /home/docs/.astropy/cache/astroquery/Hitran/tempfile_CO_1_1900.00_2300.00.h5 with metadata :
{'molecule': 'CO', 'isotope': 1, 'wmin': 1900.0, 'wmax': 2300.0}
/home/docs/checkouts/readthedocs.org/user_builds/radis/envs/latest/lib/python3.8/site-packages/pandas/core/generic.py:2703: PerformanceWarning:


your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->bytes,key->block3_values] [items->Index(['globu', 'globl', 'locu', 'locl', 'lmix'], dtype='object')]


Generating cache file /home/docs/.astropy/cache/astroquery/Hitran/tempfile_CO_2_1900.00_2300.00.h5 with metadata :
{'molecule': 'CO', 'isotope': 2, 'wmin': 1900.0, 'wmax': 2300.0}
/home/docs/checkouts/readthedocs.org/user_builds/radis/envs/latest/lib/python3.8/site-packages/pandas/core/generic.py:2703: PerformanceWarning:


your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->bytes,key->block3_values] [items->Index(['globu', 'globl', 'locu', 'locl', 'lmix'], dtype='object')]


Generating cache file /home/docs/.astropy/cache/astroquery/Hitran/tempfile_CO_3_1900.00_2300.00.h5 with metadata :
{'molecule': 'CO', 'isotope': 3, 'wmin': 1900.0, 'wmax': 2300.0}
/home/docs/checkouts/readthedocs.org/user_builds/radis/envs/latest/lib/python3.8/site-packages/pandas/core/generic.py:2703: PerformanceWarning:


your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types [inferred_type->bytes,key->block3_values] [items->Index(['globu', 'globl', 'locu', 'locl', 'lmix'], dtype='object')]


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          None
   broadening_method    voigt
   cutoff               1e-27 cm-1/(#.cm-2)
   dbformat             hitran
   dbpath               fetched from hitran
   dlm_log_pG           0.1375350788016573
   dlm_log_pL           0.20180288881201608
   export_rovib_fraction  True
   folding_thresh       1e-06
   hdf5_engine          pytables
   include_neighbouring_lines  True
   levelsfmt            radis
   neighbour_lines      0 cm-1
   optimization         min-RMS
   parfuncfmt           hapi
   parfuncpath          None
   parsum_mode          full summation
   pseudo_continuum_threshold  0
   truncation           50 cm-1
   wavenum_max_calc     2300.0000 cm-1
   wavenum_min_calc     1900.0000 cm-1
   waveunit             cm-1
   wstep                0.01 cm-1
   zero_padding         -1
Information
----------------------------------------
   chunksize            None
   db_use_cached        True
   export_lines         False
   export_populations   None
   load_energies        True
   lvl_use_cached       True
   total_lines          742
   warning_broadening_threshold  0.01
   warning_linestrength_cutoff  0.01
----------------------------------------
Fetching Evib & Erot.
/home/docs/checkouts/readthedocs.org/user_builds/radis/envs/latest/lib/python3.8/site-packages/radis/misc/warning.py:350: NegativeEnergiesWarning:

There are negative rotational energies in the database

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

<matplotlib.lines.Line2D object at 0x7f822de37d30>

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

Gallery generated by Sphinx-Gallery