A Python package for generating molecular and atomic spectra and cross sections
Project description
PyExoCross
PyExoCross is a python package and program for generating molecular and atomic spectra and cross sections
Description
PyExoCross is a Python adaptation of the ExoCross Fortran application.
PyExoCross is designed for postprocessing the huge molecular line lists generated by the ExoMol project and other similar initiatives such as the HITRAN and HITEMP. PyExoCross generates absorption and emission spectra and other properties (partition functions, specific heats, cooling functions, lifetimes, oscillator strengths, and stick spectra) based on molecular line lists. PyExoCross calculates cross sections with four line profiles: Doppler, Gaussian, Lorentzian, and Voigt; a number of options are available for computing Voigt profiles. PyExoCross can convert data format between ExoMol and HITRAN. PyExoCross supports importing and exporting line lists in the ExoMol and HITRAN/HITEMP formats.
PyExoCross Python Package
PyExoCross PyPI : https://pypi.tw.martin98.com/project/pyexocross/
PyExoCross API Reference : https://pyexocross.readthedocs.io/en/latest/python_api/index.html
Install from PyPI (Python package)
pip install pyexocross
Use as a Python package
import pyexocross as px
print(px.__version__)
For detailed usage, see the Python API Reference in the documentation: https://pyexocross.readthedocs.io/en/latest/python_api/index.html
PyExoCross Python Program
PyExoCross GitHub : https://github.com/Beryl-Jingxin/PyExoCross
PyExoCross Manual : https://pyexocross.readthedocs.io
PyExoCross Wiki : https://github.com/Beryl-Jingxin/PyExoCross/wiki
PyExoCross NASA EMAC: https://emac.gsfc.nasa.gov?cid=2407-003
Download program
Download PyExoCross program by command:
git clone https://github.com/Beryl-Jingxin/PyExoCross.git
Install Python packages
pip install -r requirements.txt
Python packages version (see requirements.txt for installable bounds; tested on Python 3.8–3.12):
| Python packages | Version range |
|---|---|
| python_version | 3.8, 3.9, 3.10, 3.11, 3.12 |
| numpy | >=1.20, <2.0 |
| pandas | >=1.4, <3.0 |
| scipy | >=1.7, <2.0 |
| numexpr | >=2.7.0,<3.0.0 |
| matplotlib | >=3.5, <4.0 |
| tqdm | >=4.64.0,<5.0.0 |
| tabulate | >=0.8.9,<1.0.0 |
| requests | >=2.25.1,<3.0.0 |
| astropy | >=5.0.0,<7.0.0 |
| dask | >=2022.5, <2025 |
| pandarallel | >=1.6.5,<2.0.0 |
Optional GPU Acceleration
PyExoCross now supports selectable compute mode:
RunMode CPU(default)RunMode GPU(uses CUDA backend when available)
GPU mode is optional and automatically falls back to CPU if CUDA runtime packages or devices are unavailable. To keep GPU memory usage bounded, use:
GPUBatchLines(default8192)GPUBatchGrid(default256)
When using API kwargs, the equivalent parameters are run_mode,
gpu_batch_lines, and gpu_batch_grid.
Runtime packages (optional):
- CUDA: install
cupy(preferred) ortorchwith CUDA support.
Note: macOS MPS GPU cannot use GPU mode because it only uses float32 which lacks precision, so please use Nvidia GPU (CUDA) or use macOS CPU mode instead.
Run PyExoCross program
In the terminal, use the following commands to run PyExoCross:
python run.py -p input_filepath
If the input filepath is /home/username/PyExoCross/input/H2O_exomol.inp
python run.py -p ./input/H2O_exomol.inp
# OR
python run.py -p /home/username/PyExoCross/input/H2O_exomol.inp
If you want to run program in conda environment which is named as 'exomol', please use command:
/home/username/anaconda3/envs/exomol/bin/python run.py -p ./input/H2O_exomol.inp
If you need to run program in background, please use command:
# Recommended: Without log file (the program will record log automatically)
nohup python -u run.py -p ./input/H2O_exomol.inp > /dev/null 2>&1
# Save log file
nohup python -u run.py -p ./input/H2O_exomol.inp > ./output/H2O_exomol.out 2>&1 &
# OR
nohup /home/username/anaconda3/envs/exomol/bin/python -u run.py -p ./input/H2O_exomol.inp > ./output/H2O_exomol.out 2>&1 &
Notes for input file
All information can be written in the input file. Just change the information you will use.You don't need to change any other unnecessary information.Please do not change the first column strings.
Citation
PyExoCross Paper
PyExoCross Published Paper : https://doi.org/10.1093/rasti/rzae016
PyExoCross arXiv Preprint : https://arxiv.org/abs/2406.03977
Please cite PyExoCross paper 💚
Cite
Jingxin Zhang, Jonathan Tennyson, Sergei N Yurchenko, PyExoCross: a Python program for generating spectra and cross-sections from molecular line lists, RAS Techniques and Instruments, Volume 3, Issue 1, January 2024, Pages 257–287, https://doi.org/10.1093/rasti/rzae016
Bibtex
@article{pyexocross,
author = {Zhang, Jingxin and Tennyson, Jonathan and Yurchenko, Sergei N},
title = {{PyExoCross: a Python program for generating spectra and cross-sections from molecular line lists}},
journal = {RAS Techniques and Instruments},
volume = {3},
number = {1},
pages = {257-287},
year = {2024},
month = {04},
issn = {2752-8200},
doi = {10.1093/rasti/rzae016},
url = {https://doi.org/10.1093/rasti/rzae016},
eprint = {https://academic.oup.com/rasti/article-pdf/3/1/257/61224370/rzae016.pdf},
}
Support databases
✅ ExoMol
✅ ExoMolHR
✅ ExoAtom
✅ HITRAN
✅ HITEMP
⏳ Databases from VAMDC
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyexocross-1.1.1.tar.gz.
File metadata
- Download URL: pyexocross-1.1.1.tar.gz
- Upload date:
- Size: 263.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96046f08773ed14c0bac89978514b61f3c48f0a807e3e81be04d7ff269a4b467
|
|
| MD5 |
b9a4fa4d5a566f69c6ba54a7985100d1
|
|
| BLAKE2b-256 |
d33f160bd26053b928e4ae4e916f97631a2e8dc126e47dfd062a10aab676a9f4
|
File details
Details for the file pyexocross-1.1.1-py3-none-any.whl.
File metadata
- Download URL: pyexocross-1.1.1-py3-none-any.whl
- Upload date:
- Size: 196.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd8da9e42ec3ededfc34b13c15c525518fc560bc92218bf20f77801d072d3228
|
|
| MD5 |
bd8d4c5dd41426e4c498d1638d73c067
|
|
| BLAKE2b-256 |
8f632baa3e4e1968890bf6fceaab500dfe404f081e7066e6b4729dd3a7d19288
|