GitHub – radis/radis: 🌱 A fast line-by-line code for high-resolution infrared molecular spectra
RADIS is a fast line-by-line code for high resolution infrared molecular spectra (emission / absorption,
equilibrium / non-LTE) based on HITRAN/HITEMP/ExoMol.
It includes post-processing tools to compare experimental spectra and spectra calculated
with RADIS or other spectral codes.
User guide, install procedure and examples are available on the RADIS Website:
Mục lục bài viết
Getting Started
Install
Assuming you have Python installed with pip then use this command to install:
pip install radis -v
if you want to install radis through conda then use this command to
conda install radis -c conda-forge
or with mamba:
mamba install radis
That’s it! You can now run your first example below.
If you encounter any issue, or to upgrade the package later, please refer to the
detailed installation procedure .
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 molecule='CO', isotope='1,2,3', pressure=1.01325, # bar Tgas=700, # K mole_fraction=0.1, path_length=1, # cm databank='hitran' # or 'hitemp' ) s.apply_slit(0.5, 'nm') # simulate an experimental slit s.plot('radiance')
Advanced use
The Quick Start examples automatically downloads 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). HITEMP can also be downloaded
automatically, or can be downloaded manually and described in a ~/radis.json
Configuration file.
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.
Compare with experiments
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 spectrum 's' calculated previously
Typical output of plot_diff:
Refer to the Examples section for more examples, and to the
Spectrum page for more post-processing functions.
GPU Acceleration
RADIS supports GPU acceleration for super-fast computation of spectra:
from radis import SpectrumFactory from radis.tools.plot_tools import ParamRange sf = SpectrumFactory( 2100, 2400, # cm-1 molecule="CO2", isotope="1,2,3", wstep=0.002, ) sf.fetch_databank("hitemp") s = sf.eq_spectrum_gpu_interactive( var="radiance", Tgas=ParamRange(300.0, 2500.0, 1100.0), # K pressure=ParamRange(0.1, 2, 1), # bar mole_fraction=ParamRange(0, 1, 0.8), path_length=ParamRange(0, 1, 0.2), # cm slit_FWHM=ParamRange(0, 1.5, 0.24), # cm-1 emulate=False, # runs on GPU plotkwargs={"nfig": "same", "wunit": "nm"}, )
Refer to GPU Spectrum Calculation on RADIS for more details on GPU acceleration.
🌱 Try online (no installation needed!)
A simple web-app for RADIS under development.
See more on GitHub
An online environment for advanced spectrum processing and comparison with experimental data :
- no need to install anything
- use pre-configured line databases (HITEMP)
- upload your data files, download your results !
🌱 Try it : https://radis.github.io/radis-lab/
See more on GitHub
Cite
Articles are available at
For reproducibility, do not forget to cite the line database used, and the spectroscopic constants
if running nonquilibrium calculations. See How to cite?
Developer Guide
Contribute
Want to contribute to RADIS ? Join the Slack community and we’ll help you through the process.
Want to get started immediatly ? Nice. Have a look at the CONTRIBUTING.md guide.
You need to know more about Spectroscopy ? We’re working on Tutorials to
make spectroscopy available to everyone. For the moment, join the
Slack channel .
Architecture
RADIS internals are described in the Developer Guide
### Matlab
Matlab users can seamlessly access Python modules
Here’s what’s you’ll need:
-
[Setup Python ↔ Matlab interface](https://www.scivision.dev/matlab-python-user-module-import/).
-
Install RADIS in Python as at the top of this Readme.
-
From Matlab, verify everything is working by:
`
py.radis.calc_spectrum()
`
License
The code is available on this repository under
GNU LESSER GENERAL PUBLIC LICENSE (v3)
Support
If encountering any problem, first refer to the list of known
Issues on GitHub.
We appreciate your feedback and suggestions!
For any question, please join the discussion channel on Gitter
, Slack
or the Q&A Forum
Finally, you can also suggest or vote for new features below:
References
Links
Other Spectroscopic tools
See awesome-spectra