Git Product home page Git Product logo

radis-examples's Introduction

RADIS Examples

This project includes:

  • Interactive examples to calculate infrared spectra of molecules with RADIS, a convenient way to have access to HITRAN online without any installation.
  • Static examples of fitting algorithm built around RADIS

A full online environment for advanced spectrum processing and comparison with experimental data

radis-lab-wip-02-01-21

Start on radis.github.io/radis-lab/

https://notebooks.gesis.org/binder/v2/gh/radis/radis-lab/main?urlpath=lab/tree/welcome.ipynb

Interactive Examples

Run RADIS interactively directly from the browser. No installation needed!

Manipulate a Spectrum object:

https://mybinder.org/v2/gh/radis/radis-examples/master?filepath=spectrum.ipynb

Calculate CO equilibrium and nonequilibrium spectra:

https://mybinder.org/v2/gh/radis/radis-examples/master?filepath=first_example.ipynb

3. online_fitting.ipynb (JupyterLab)

Import experimental spectra in an online JupyterLab instance and start fitting them!

https://mybinder.org/v2/gh/radis/radis-examples/master?urlpath=lab/tree/online_fitting/online_fitting.ipynb

Start a bare RADIS online session:

https://mybinder.org/v2/gh/radis/radis-examples/master?filepath=radis_online.ipynb

Static Examples

Install RADIS then run these examples locally.

1. Multi Temperature Fit

A 3 temperature fitting example reproducing the validation case of Klarenaar 2017 [1], who calculated a transmittance spectrum from the initial data of Dang 1973 [2], with a 1 rotational temperature + 3 vibrational temperature (Treanor distributions) model

docs/multi-temperature-fit.gif

CO2 Energies are calculated from Dunham developments in an uncoupled harmonic oscillator - rigid rotor model. The example is based on one of RADIS validation cases. It makes use of the RADIS Spectrum class and the associated compare and load functions

[1]Klarenaar et al 2017, "Time evolution of vibrational temperatures in a CO2 glow discharge measured with infrared absorption spectroscopy" doi/10.1088/1361-6595/aa902e
[2]Dang et al 1982, "Detailed vibrational population distributions in a CO2 laser discharge as measured with a tunable diode laser" doi/10.1007/BF00694640

Code is available in the fit_klarenaar_validation_case.py file

2. Radiative forcing of CO2

An example where we use RADIS to calculate the upward-radiation of the Earth for different CO2 mole fractions in the atmosphere, based on the simple Standard Atmosphere Model. The difference evidences the radiative forcing of CO2.

ex_radiative_forcing_co2/out/atmosphere_co2_column.png

Code is available in the radiative_forcing_co2.py file

3. HITRAN spectra

The absorption coefficient of all HITRAN species is calculated in plot_all_hitran_spectra.py at 300 K, 1 atm for the first isotope.

For instance:

  • Water (H2O) absorption coefficient at 300 K :

Water H2O infrared absorption coefficient

  • Carbon dioxide (CO2) absorption coefficient at 300 K :

Carbon Dioxide CO2 infrared absorption coefficient

  • Methane (CH4) absorption coefficient at 300 K :

Methane CH4 infrared absorption coefficient

All other species can be found on the RADIS website

Links

radis-examples's People

Contributors

erwanp avatar maillardj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

radis-examples's Issues

exp overflow in radiative_forcing_co2.py

Hi All,

I'm seeing exp overflow errors in radiative_forcing_co2.py presumably due to extreme values of absorbance in eq_spectrum and some other functions at certain slabs in the middle of the atmosphere.

Any ideas on how to workaround this? Happy to submit a PR if it's an easy fix

HAPI version: 1.1.2.0
To get the most up-to-date version please check http://hitran.org/hapi
ATTENTION: Python versions of partition sums from TIPS-2017 are now available in HAPI code

           It is free to use HAPI. If you use HAPI in your research or software development,
           please cite it using the following reference:
           R.V. Kochanov, I.E. Gordon, L.S. Rothman, P. Wcislo, C. Hill, J.S. Wilzewski,
           HITRAN Application Programming Interface (HAPI): A comprehensive approach
           to working with spectroscopic data, J. Quant. Spectrosc. Radiat. Transfer 177, 15-30 (2016)
           DOI: 10.1016/j.jqsrt.2016.03.005
Calculating Atmosphere layers
(58s)   39.1%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(60s)   40.2%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(62s)   41.4%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(64s)   42.5%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(65s)   43.7%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(67s)   44.8%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(69s)   46.0%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(71s)   47.1%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(73s)   48.3%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(75s)   49.4%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\lbl\factory.py:798: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
(168s)  100.0%
Solving radiative transfer equation
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:250: RuntimeWarning: overflow encountered in multiply
  quantities["radiance_noslit"] = (w, I * Tn + In)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:254: RuntimeWarning: invalid value encountered in multiply
  quantities["transmittance_noslit"] = (w, Tn * T)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:314: UserWarning: Nans detected in Spectrum object for multi-slab operation. Results may be wrong!
  warn(
Calculating Reference Atmosphere
(1s)    42.5%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\spectrum\rescale.py:721: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\spectrum\rescale.py:730: RuntimeWarning: invalid value encountered in true_divide
  radiance_noslit[~b] / (1 - transmittance_noslit[~b]) * abscoeff[~b]
(1s)    43.7%C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\spectrum\rescale.py:721: RuntimeWarning: overflow encountered in exp
  transmittance_noslit = exp(-absorbance)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\spectrum\rescale.py:730: RuntimeWarning: invalid value encountered in true_divide
  radiance_noslit[~b] / (1 - transmittance_noslit[~b]) * abscoeff[~b]
(3s)    100.0%
Solving radiative transfer equation
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:250: RuntimeWarning: overflow encountered in multiply
  quantities["radiance_noslit"] = (w, I * Tn + In)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:254: RuntimeWarning: invalid value encountered in multiply
  quantities["transmittance_noslit"] = (w, Tn * T)
C:\Users\anjum\Miniconda3\envs\zeus\lib\site-packages\radis\los\slabs.py:314: UserWarning: Nans detected in Spectrum object for multi-slab operation. Results may be wrong!
  warn(
Upward radiation @278 ppm: nan W/m2
Upward radiation @400 ppm: nan W/m2

More examples

We're looking for more examples, for instance of Radis being used to fit experimental spectra. If you have any idea file a Pull Request !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.