Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/radis/radis

🌱 A fast line-by-line code for high-resolution infrared molecular spectra
https://github.com/radis/radis

astrophysics closember combustion exoplanets hitemp hitran infrared plasma plasma-physics radiation spectra spectroscopy

Last synced: 26 days ago
JSON representation

🌱 A fast line-by-line code for high-resolution infrared molecular spectra

Awesome Lists containing this project

README

        

| |badge_pypi| |badge_pypistats| |badge_article1| |badge_article2| |badge_docs| |badge_binder|
| |badge_slack| |badge_contributors| |badge_travis| |badge_coverage| |badge_code_quality| |badge_asv| |badge_license|

*****************************************
`RADIS `__
*****************************************

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 full documentation (advanced install and examples) are available on the `RADIS Website `__.

===============
Getting Started
===============

Install
-------

Assuming you have Python installed with the `Anaconda `_ 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 `__ .

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 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 `__:

.. 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 `__ 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. Refer to `GPU Spectrum Calculation on RADIS `__ for more details on GPU acceleration.::

=======================================
Try online (no installation needed!)
=======================================

🌱 Radis-app
---------

A simple `web-app `__ for RADIS under development - `GitHub `__

.. 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 `__ 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 `__

---------------------------------------------------------------------

====
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? `__

---------------------------------------------------------------------

===============
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 the `Developer Guide `__.

|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 `__ .

RADIS internals are also described in the `full documentation `__

.. .. 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](https://www.scivision.dev/matlab-python-user-module-import/).
.. 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 `__ 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 `__

.. 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 `__

- 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 `__ |badge_examples| |badge_binder|

- `Fitroom `__ (for advanced multidimensional fitting).

Other Spectroscopic tools
-------------------------

See `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
:alt: Article

.. |badge_article2| image:: https://zenodo.org/badge/doi/10.1016/j.jqsrt.2020.107476.svg
:target: https://linkinghub.elsevier.com/retrieve/pii/S0022407320310049
:alt: Spectral Synthesis Algorithm

.. |badge_stars| image:: https://img.shields.io/github/stars/radis/radis.svg?style=social&label=Star
:target: https://github.com/radis/radis/stargazers
:alt: GitHub

.. |badge_contributors| image:: https://img.shields.io/github/contributors/radis/radis.svg
:target: https://github.com/radis/radis/graphs/contributors
:alt: Contributors

.. |badge_license| image:: https://img.shields.io/badge/License-LGPL3-blue.svg
:target: ./License.md
:alt: License

.. |badge_travis| image:: https://app.travis-ci.com/radis/radis.svg?branch=develop
:target: https://app.travis-ci.com/github/radis/radis
:alt: Tests

.. |badge_coverage| image:: https://codecov.io/gh/radis/radis/branch/develop/graph/badge.svg
:target: https://codecov.io/gh/radis/radis
:alt: Coverage

.. |badge_code_quality| image:: https://img.shields.io/lgtm/grade/python/g/radis/radis.svg?logo=lgtm&logoWidth=18)
:target: https://lgtm.com/projects/g/radis/radis/alerts
:alt: Code Quality

.. |badge_asv| image:: http://img.shields.io/badge/benchmarked%20by-asv-blue.svg?style=flat
:target: https://github.com/radis/radis-benchmark
:alt: Benchmarks

.. |badge_pypi| image:: https://img.shields.io/pypi/v/radis.svg
:target: https://pypi.python.org/pypi/radis
:alt: PyPI

.. |badge_pypistats| image:: https://img.shields.io/pypi/dw/radis.svg
:target: https://pypistats.org/packages/radis
:alt: Downloads

.. |badge_examples| image:: https://img.shields.io/github/stars/radis/radis-examples.svg?style=social&label=Star
:target: https://github.com/radis/radis-examples
:alt: Examples

.. |badge_awesome_spectra| image:: https://img.shields.io/github/stars/erwanp/awesome-spectra.svg?style=social&label=Star
:target: https://github.com/erwanp/awesome-spectra
:alt: Examples

.. |badge_binder| image:: https://mybinder.org/badge.svg
:target: https://radis.github.io/radis-lab/
:alt: https://radis.github.io/radis-lab/

.. |badge_gitter| image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/radis-radiation/community
:alt: Gitter

.. |badge_slack| image:: https://img.shields.io/badge/slack-join-green.svg?logo=slack
:target: https://radis.github.io/slack-invite/
:alt: Slack