Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/HajimeKawahara/exojax
🐈 Automatic differentiable spectrum modeling of exoplanets/brown dwarfs using JAX, compatible with NumPyro and JAXopt
https://github.com/HajimeKawahara/exojax
Last synced: 3 months ago
JSON representation
🐈 Automatic differentiable spectrum modeling of exoplanets/brown dwarfs using JAX, compatible with NumPyro and JAXopt
- Host: GitHub
- URL: https://github.com/HajimeKawahara/exojax
- Owner: HajimeKawahara
- License: mit
- Created: 2020-12-12T03:46:49.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-20T07:55:24.000Z (4 months ago)
- Last Synced: 2024-07-22T11:16:20.599Z (4 months ago)
- Language: Jupyter Notebook
- Homepage: http://secondearths.sakura.ne.jp/exojax/
- Size: 187 MB
- Stars: 41
- Watchers: 4
- Forks: 14
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jax - exojax - Automatic differentiable spectrum modeling of exoplanets/brown dwarfs compatible to JAX. <img src="https://img.shields.io/github/stars/HajimeKawahara/exojax?style=social" align="center"> (Libraries / New Libraries)
README
# ExoJAX
[![License](https://img.shields.io/github/license/HajimeKawahara/exojax)](https://github.com/HajimeKawahara/exojax/blob/develop/LICENSE)
[![Docs](https://img.shields.io/badge/docs-exojax-brightgreen)](http://secondearths.sakura.ne.jp/exojax/)
[![arxiv](https://img.shields.io/badge/arxiv-2105.14782-blue)](http://arxiv.org/abs/2105.14782)
[![paper](https://img.shields.io/badge/paper-ApJS_258_31_(2022)-orange)](https://iopscience.iop.org/article/10.3847/1538-4365/ac3b4d)
Differentiable spectral modelling of exoplanets/brown dwarfs/M dwarfs using JAX!
Read [the docs](http://secondearths.sakura.ne.jp/exojax/develop) 🐕.
In short, ExoJAX allows you to do gradient based optimizations and HMC-NUTS samplings using the latest database.ExoJAX is at least compatible with
- PPLs: [NumPyro](https://github.com/pyro-ppl/numpyro), [blackjax](https://github.com/blackjax-devs/blackjax)
- Optimizers: [JAXopt](https://github.com/google/jaxopt), [optax](https://github.com/google-deepmind/optax), [bayeux](https://github.com/jax-ml/bayeux)ExoJAX Classes
- Databases: *db (mdb: molecular, adb: atomic, cdb:continuum, pdb: particulates)
- Opacity Calculators: opa (i.e. Voigt profile)
- Atmospheric Radiative Transfer: art (emission w, w/o scattering, refelction, transmission)
- Atompsheric Microphysics: amp (clouds etc)## Get Started
See [this page](http://secondearths.sakura.ne.jp/exojax/develop/tutorials/get_started.html) for the first step!
## Functions
Voigt Profile :heavy_check_mark:
```python3
from exojax.spec import voigt
nu=numpy.linspace(-10,10,100)
voigt(nu,1.0,2.0) #sigma_D=1.0, gamma_L=2.0
```Cross Section using HITRAN/HITEMP/ExoMol :heavy_check_mark:
```python
from exojax.utils.grids import wavenumber_grid
from exojax.spec.api import MdbExomol
from exojax.spec.opacalc import OpaPremodit
from jax import config
config.update("jax_enable_x64", True)nu_grid,wav,res=wavenumber_grid(1900.0,2300.0,200000,xsmode="premodit",unit="cm-1",)
mdb = MdbExomol(".database/CO/12C-16O/Li2015",nu_grid)
opa = OpaPremodit(mdb,nu_grid,auto_trange=[900.0,1100.0])
xsv = opa.xsvector(1000.0, 1.0) # cross section for 1000K, 1 bar
```
Do you just want to plot the line strength at T=1000K?
```python
mdb.change_reference_temperature(1000.) # at 1000K
plt.plot(mdb.nu_lines,mdb.line_strength_ref,".")
```Emission Spectrum :heavy_check_mark:
```python
art = ArtEmisPure(nu_grid=nu_grid, pressure_btm=1.e2, pressure_top=1.e-8, nlayer=100)
F = art.run(dtau, Tarr)
```
Transmission Spectrum :heavy_check_mark:
Reflection Spectrum :heavy_check_mark:## Installation
```
pip install exojax
```or
```
python setup.py install
```Note on installation w/ GPU support
:books: You need to install CUDA, JAX w/ NVIDIA GPU support.
Visit [here](https://github.com/google/jax) for the installation of GPU supported JAX.
## References
[![paper](https://img.shields.io/badge/paper_I-ApJS_258_31_(2022)-orange)](https://iopscience.iop.org/article/10.3847/1538-4365/ac3b4d)- Paper I: Kawahara, Kawashima, Masuda, Crossfield, Pannier, van den Bekerom, [ApJS 258, 31 (2022)](https://iopscience.iop.org/article/10.3847/1538-4365/ac3b4d)
## License
🐈 Copyright 2020-2024 ExoJAX contributors. ExoJAX is publicly available under the MIT license.