Last major release of 2021 with extreme performance improvements when computing large range spectra. And by large range, we mean full-range, i.e. 0 - 30,000 cm-1 !
_See PR https://github.com/radis/radis/pull/400_
---
Changes since [0.10.3](https://github.com/radis/radis/pull/375) (September 2021) :
🔬 [(Physics) Features](https://github.com/radis/radis/issues?q=label%3Aphysics+milestone%3A0.11.0)
- 394 : ExoMol works for isotopes
- 394 : add isotopic abundance in ExoMol calculations [**Important** ! calculations other than main isotopologue were not valid for ExoMol in 0.10.3 ]
- 394 : add default molar_mass, abundances & full-isotope name for all 85 ExoMol species that are not present in HITRAN
- 394 : when not available abundances of molecules are computed from a simple model based on isotopic terrestrial abundance of elements (scripts are available in test_molecule_lists)
- 398 re-add broadening for ExoMol molecules
⚙️[User-interface](https://github.com/radis/radis/issues?q=label%3Ainterface+milestone%3A0.11.0)
- 394 : auto-fetch the full molecule & isotopes list from ExoMol website
- 394 simplify calc_spectrum waverange input : default is now to use `wmin, wmax` (unit-aware), instead of `wavenum_min, wavenum_max` or `wavelength_min, wavelength_max` (old parameters still work)
- 399 bridge to/from [Specutils](https://specutils.readthedocs.io/)
python
spectrum = s.to_specutils()
...
from radis import Spectrum
Spectrum.from_specutils(spectrum)
- 399 option to return SpectrumFactory used in a calc_spectrum computation
python
s, sf = calc_spectrum(.... ,return_factory=True
sf.df1 lines used
- 398 add fetch_hitran() which downloads all lines/isotopes of HITRAN database (Vaex compatible). It is included in `calc_spectrum` and `SpectrumFactory.fetch_databank` by default.
python
calc_spectrum(..., databank=("hitran", "full")) predownload full database & isotopes (once for all)
calc_spectrum(..., databank=("hitran", "range")) download only the required the range & isotope
- 396
- 395 s = s/s2.max() works with units
- 378 write/load Spectrum in HDF5 (the fastest way) with metadata
python
s.to_hdf5()
Spectrum.from_hdf5()
- 378 Spectrum to pandas
python
s.to_pandas()
- 369 new get_baseline functions
python
sb = s_exp.get_baseline(algorithm="als")
s_exp.plot()
sb.plot(nfig="same", lw=3)
![image](https://user-images.githubusercontent.com/16088743/141698640-8b8c795b-20c4-42ad-9815-934a281930b4.png)
- 254
🏃 [Performance improvement](https://github.com/radis/radis/issues?q=label%3Aperformance+milestone%3A0.11.0)
- ⭐ 398 make **vaex the default memory-mapping-engine** for radis (Spyder IDE-users: you may want to deactivate this until https://github.com/spyder-ide/spyder/issues/16183 is fixed. There is a new key in the config file for that!)
- ⭐ 398 **only load required columns** by default (makes it 8-20x faster to load databases)
> Example : full HITEMP-CO2 database (0 - 30,000 cm-1 loaded in 5s instead of 80 !)
- 394 download HITRAN full-range makes HITRAN calculations faster (no more download after the first time)
- ⭐ 386 388 make it possible to compute full-range spectra : RADIS automatically switches to a **sparse-wavenumber implementation of the DLM/DIT algorithm**, based on a scarcity criterion `Ngridpoints/Nlines > 1`
_CO2/H2O full range, computed from HITRAN, for a 1-km homogeneous layer of atmosphere at 300 K, 1 bar_
python
import astropy.units as u
from radis import calc_spectrum
calc_spectrum(
wmin=0.5 * u.um,
wmax=15 * u.um, cm-1
mole_fraction={"CO2": 420e-6, "H2O": 0.02},
isotope="1,2,3",
pressure=1.01325, bar
Tgas=300, K
path_length=1e5, 1 km in cm
verbose=2,
databank="hitran",
wstep="auto",
)
![image](https://user-images.githubusercontent.com/16088743/141697707-adabea55-c6a7-4265-9921-4a631d6b9ddb.png)
🐛 [Bug fixes](https://github.com/radis/radis/issues?q=label%3Abug+milestone%3A0.11.0)
- 393
- 391
- 381 , 385
- 356
- 338 (not fully fixed, but we know the problem. Spyder-IDE users do not use this mode)
📝 [Documentation](https://github.com/radis/radis/issues?q=label%3Adocumentation+milestone%3A0.11.0)
- 389
🏁 [CI / Dev / Tests](https://github.com/radis/radis/issues?q=label%3Aci-test+milestone%3A0.11.0)
nothing new
🏗️ [Refactor / change in architecture](https://github.com/radis/radis/issues?q=label%3Arefactor+milestone%3A0.11.0)
- 392 : of how we compute partition functions
---
What's Changed
* Improved hdf5 manager : HDF5 write/load of Spectrum files & HITRAN files by erwanp in https://github.com/radis/radis/pull/378
* fix line survey tool with new radisdb-hitemp format by erwanp in https://github.com/radis/radis/pull/383
* Fixes: Issue/381 by anandxkumar in https://github.com/radis/radis/pull/385
* Add/sparse waverange optim by erwanp in https://github.com/radis/radis/pull/386
* Prepare support for NIST extension by erwanp in https://github.com/radis/radis/pull/384
* doc improvements by erwanp in https://github.com/radis/radis/pull/389
* Refactor - simplify Qgas by erwanp in https://github.com/radis/radis/pull/392
* Exomol update by erwanp in https://github.com/radis/radis/pull/394
* Fully-Sparse wavenumber arrays by erwanp in https://github.com/radis/radis/pull/388
* Make line_survey more flexible for extenral codes by erwanp in https://github.com/radis/radis/pull/396
* Fixes 356 by anandxkumar in https://github.com/radis/radis/pull/397
* Improve SpecDatabase (bug correction and update) by CorentinGrimaldi in https://github.com/radis/radis/pull/390
* Dimensioned Spectrum.max() function by erwanp in https://github.com/radis/radis/pull/395
* Add specutils bridge by erwanp in https://github.com/radis/radis/pull/399
* Make Vaex the default HDF5 engine, add Exomol hdf5 support by erwanp in https://github.com/radis/radis/pull/398
* Fix of get_baseline() function of Spectrum class 368 by BlehMaks in https://github.com/radis/radis/pull/369
* Updated convolve_with_slit with warnings if instrumental function has large near-zero wings by gh4ag in https://github.com/radis/radis/pull/283
* 0.11.0 by erwanp in https://github.com/radis/radis/pull/400
**Full Changelog**: https://github.com/radis/radis/compare/0.10.3...0.11.0