Radis
🌱 A fast line-by-line code for high-resolution infrared molecular spectra
Install / Use
/learn @radis/RadisREADME
| |badge_pypi| |badge_pypistats| |badge_article1| |badge_article2| |badge_docs| |badge_binder| | |badge_slack| |badge_contributors| |badge_travis| |badge_coverage| |badge_asv| |badge_license|
RADIS <https://radis.readthedocs.io/>__
RADIS is a fast line-by-line code for high resolution infrared molecular spectra (emission / absorption, equilibrium / non-LTE) based on HITRAN/HITEMP/ExoMol. Atomic spectra from the NIST and Kurucz databases are also available.
RADIS includes post-processing tools to compare experimental spectra and spectra calculated with RADIS or other spectral codes.
Full user documentation (advanced install and examples) are available on the RADIS Website <http://radis.readthedocs.io/>__.
=============== Getting Started
Install
Assuming you have Python installed with the Anaconda <https://www.anaconda.com/download/>_ distribution you can use pip::
pip install radis
or mamba or conda via the conda-forge channel::
conda install radis -c conda-forge
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 <https://radis.readthedocs.io/en/latest/dev/developer.html#label-install>__ .
Quick Start
Calculate a CO equilibrium spectrum from the HITRAN database ::
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')
.. figure:: https://radis.readthedocs.io/en/latest/_images/co_spectrum_700K.png :scale: 60 %
Advanced use
The Quick Start examples automatically download the line databases from HITRAN-2016 <https://radis.readthedocs.io/en/latest/references/references.html#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 <https://radis.readthedocs.io/en/latest/references/references.html#hitemp-2010> (typically T < 2000 K) or CDSD-4000 <https://radis.readthedocs.io/en/latest/references/references.html#cdsd-4000>__ (T < 5000 K). HITEMP can also be downloaded
automatically, or can be downloaded manually and described in a ~/radis.json
Configuration file <https://radis.readthedocs.io/en/latest/lbl/lbl.html#label-lbl-config-file>__.
More complex examples <https://radis.readthedocs.io/en/latest/examples.html#label-examples>__ will require to use the SpectrumFactory <https://radis.readthedocs.io/en/latest/source/radis.lbl.factory.html#radis.lbl.factory.SpectrumFactory>__
class, which is the core of RADIS line-by-line calculations.
calc_spectrum <https://radis.readthedocs.io/en/latest/source/radis.lbl.calc.html#radis.lbl.calc.calc_spectrum>__ is a wrapper to SpectrumFactory <https://radis.readthedocs.io/en/latest/source/radis.lbl.factory.html#radis.lbl.factory.SpectrumFactory>__
for the simple cases.
Compare with experiments
Experimental spectra can be loaded using the experimental_spectrum <https://radis.readthedocs.io/en/latest/source/radis.spectrum.models.html#radis.spectrum.models.experimental_spectrum>__ function
and compared with the plot_diff <https://radis.readthedocs.io/en/latest/source/radis.spectrum.compare.html#radis.spectrum.compare.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 <https://radis.readthedocs.io/en/latest/source/radis.spectrum.compare.html#radis.spectrum.compare.plot_diff>__:
.. image:: docs/spectrum/cdsd4000_vs_hitemp_3409K.svg :scale: 60 % :target: https://radis.readthedocs.io/en/latest/spectrum/spectrum.html#compare-two-spectra :alt: https://radis.readthedocs.io/en/latest/_images/cdsd4000_vs_hitemp_3409K.svg
Refer to the Examples <https://radis.readthedocs.io/en/latest/examples/examples.html>__ section for more examples, and to the
Spectrum page <https://radis.readthedocs.io/en/latest/spectrum/spectrum.html>__ for more post-processing functions.
GPU Acceleration
RADIS supports GPU acceleration for super-fast computation of spectra. Refer to GPU Spectrum Calculation on RADIS <https://radis.readthedocs.io/en/latest/lbl/lbl.html#calculating-spectrum-using-gpu>__ for more details on GPU acceleration.::
======================================= Try online (no installation needed!)
🌱 Radis-app
A simple web-app <https://radis.app/>__ for RADIS under development - GitHub <https://github.com/suzil/radis-app>__
.. image:: https://user-images.githubusercontent.com/16088743/103406077-b2457100-4b59-11eb-82c0-e4de027a91c4.png :target: https://radis.app/ :alt: https://radis.app/
🔬 RADIS-lab
An online environment <https://github.com/radis/radis-lab>__ 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 !
.. image:: https://user-images.githubusercontent.com/16088743/103448773-7d8f0200-4c9e-11eb-8bf1-ce3385519b77.png :target: https://radis.github.io/radis-lab/ :alt: https://radis.github.io/radis-lab/
See more on GitHub <https://github.com/radis/radis-lab>__
==== Cite
Articles are available at |badge_article1| |badge_article2|
For reproducibility, do not forget to cite the line database used, and the spectroscopic constants
if running nonequilibrium calculations. See How to cite? <https://radis.readthedocs.io/en/latest/references/references.html#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 immediately? Nice. Have a look at the the Developer Guide <https://radis.readthedocs.io/en/latest/dev/developer.html>__.
|badge_contributors| |badge_slack|
.. 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 <https://radis-radiation.slack.com/archives/C01N7R9728M>__ .
RADIS internals are also described in the full documentation <https://radis.readthedocs.io/en/latest/index.html>__
.. .. image:: https://radis.readthedocs.io/en/latest/_images/RADIS_flow_chart.svg .. :target: https://radis.readthedocs.io/en/latest/dev/architecture.html#label-dev-architecture .. :alt: https://radis.readthedocs.io/en/latest/_images/RADIS_flow_chart.svg
.. ### Matlab
.. Matlab users can seamlessly access Python modules
.. Here's what's you'll need:
.. 1. Setup Python ↔ Matlab interface. .. 2. Install RADIS in Python as at the top of this Readme. .. 3. 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) <./LICENSE>_ |badge_license|
.. Support .. -------
.. If encountering any problem, first refer to the list of known
.. Issues <https://github.com/radis/radis/issues?utf8=%E2%9C%93&q=is%3Aissue>__ on GitHub.
.. We appreciate your feedback and suggestions!
.. For any question, please join the discussion channel on Gitter |badge_gitter|, Slack |badge_slack|
.. or the Q&A Forum <https://groups.google.com/forum/#!forum/radis-radiation>__
.. Finally, you can also suggest or vote for new features below:
.. .. image:: https://feathub.com/radis/radis?format=svg .. :target: https://feathub.com/radis/radis
========== References
Links
-
Documentation: |badge_docs|
-
Help: |badge_gitter| |badge_slack|
Q&A forum <https://groups.google.com/forum/#!forum/radis-radiation>__ -
Articles: |badge_article1| |badge_article2|
-
Source Code: |badge_stars| |badge_contributors| |badge_license|
-
Test Status: |badge_travis| |badge_coverage| |badge_asv|
-
PyPi Repository: |badge_pypi| |badge_pypistats|
-
Interactive Examples:
radis_examples <https://github.com/radis/radis-examples>__ |badge_examples| |badge_binder| -
Fitroom <https://github.com/radis/fitroom>__ (for advanced multidimensional fitting).
Other Spectroscopic tools
See awesome-spectra <https://github.com/erwanp/awesome-spectra>__ |badge_awesome_spectra|
.. image:: https://github.com/radis/radis/blob/master/docs/radis_ico.png :target: https://radis.readthedocs.io/ :scale: 50 % :alt: RADIS logo
.. |CO2| replace:: CO\ :sub:2
.. |badge_docs| image:: https://readthedocs.org/projects/radis/badge/ :target: https://readthedocs.org/projects/radis/ :alt: Documentation Status
.. |badge_article1| image:: https://zenodo.org/badge/doi/10.1016/j.jqsrt.2018.09.027.svg :target: https://linkinghub.elsevier.com/retrieve/pii/S0022407318305867 :
