Conversion¶
PyExoCross can convert data format between the ExoMol and HITRAN (HITRAN 2004 edition 160-character records) formats.
Database |
ExoMol format |
HITRAN format |
|---|---|---|
ExoMol |
✅ |
|
ExoMolHR |
✅ |
|
ExoAtom |
✅ |
|
HITRAN |
✅ |
|
HITEMP |
✅ |
ConversionFrequncyRange: Provide the wavenumber range in unit of cm⁻¹.
Data format¶
ConversionFormat
Write the data format you want to convert to.
If you want to convert data format from ExoMol to HITRAN. In this case, Database should be ExoMol and ConversionFormat should be HITRAN.
If you want to convert data format from HITRAN to ExoMol. In this case, Database should be HITRAN and ConversionFormat should be ExoMol.
|
|
|---|---|
ExoMol |
HITRAN |
ExoMolHR |
HITRAN |
ExoAtom |
HITRAN |
HITRAN |
ExoMol |
HITEMP |
ExoMol |
Quantum number label¶
GlobalQNLabel and LocalQNLabel
Here, the quantum number labels are what kind of quantum numbers you want to save in the output file.
For 3 different symmetry indices and inversional parity labels, please write write them as following symbols:
Gtot: total symmetry index;
Gvib: vibrational symmetry indices;
Grot: rotational symmetry indices;
taui: inversional parity.
Quantum number format¶
GlobalQNFormat and LocalQNFormat
Here, the quantum number formats are the formats of quantum numbers you want to save in the output file.
In the standard HITRAN2004 format, both global and local quantum numbers have 15 characters.
Filters¶
ConvUncFilter(Y/N): If it is yes, the value is the maximum uncertainty you require, in unit of cm⁻¹.
ConvThreshold(Y/N): If it is yes, the value is the minimum intensity you require, in unit of cm/molecule.
Convert data format from ExoMol to HITRAN¶
For ExoMol database
Example
# Data source #
Database ExoMol
Molecule MgH
Isotopologue 24Mg-1H
Dataset XAB
SpeciesID 501
# File path #
ReadPath /mnt/data/exomol/exomol3_data/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/MgH_ExoMol_toHITRAN.log
# Functions #
Conversion 1
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 0
# Cores and chunks #
NCPUtrans 4
NCPUfiles 1
ChunkSize 1000000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Quantum numbers for conversion, stick spectra and cross sections #
QNslabel +/- e/f ElecState v Lambda Sigma Omega
QNsformat %1s %1s %12s %3d %3d %5.1f %5.1f
# Conversion #
ConversionFormat 1
ConversionFrequncyRange 0 30000 # Wavenumber in unit of cm-1
GlobalQNLabel ElecState v Omega
GlobalQNFormat %9s %2d %4s
LocalQNLabel J e/f
LocalQNFormat %5.1f %2s
ConvUncFilter(Y/N) Y 0.01 # If Y, default value 0.01 cm-1
ConvThreshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
For ExoMolHR database
Example
# Data source #
Database ExoMolHR
Molecule NO
Isotopologue 14N-16O
SpeciesID 81
# File path #
ReadPath /mnt/data/exomolhr/exomolhr_results/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/NO_ExoMolHR_toHITRAN.log
# Functions #
Conversion 1
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 0
# Cores and chunks #
NCPUtrans 1
NCPUfiles 1
ChunkSize 100000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Conversion #
ConversionFormat HITRAN
ConversionFrequncyRange 24 53452 # Wavenumber in unit of cm-1
GlobalQNLabel ElecState v
GlobalQNFormat %12s %3d
LocalQNLabel J e/f
LocalQNFormat %7.1f %1s
ConvUncFilter(Y/N) N 0.01 # If Y, default value 0.01 cm-1
ConvThreshold(Y/N) Y 1e-30 # If Y, default value 1e-30 cm/molecule
For ExoAtom database
Example
# Data source #
Database ExoAtom
Atom Li
Dataset NIST
# File path #
ReadPath /mnt/data/exoatom/exoatom_data/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/Li_ExoAtom_toHITRAN.log
# Functions #
Conversion 1
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 0
# Cores and chunks #
NCPUtrans 1
NCPUfiles 1
ChunkSize 10000
RunMode CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when RunMode=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when RunMode=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when RunMode=GPU)
# Quantum numbers for conversion, stick spectra and cross sections #
QNslabel configuration LS parity
QNsformat %30s %30s %2s
# Conversion #
ConversionFormat 1
ConversionFrequncyRange 0 43000 # Wavenumber in unit of cm-1
GlobalQNLabel configuration LS
GlobalQNFormat %30s %30s
LocalQNLabel J parity
LocalQNFormat %5.1f %2s
ConvUncFilter(Y/N) N 0.01 # If Y, default value 0.01 cm-1
ConvThreshold(Y/N) N 1e-30 # If Y, default value 1e-30 cm/molecule
Convert data format from HITRAN to ExoMol¶
For HITRAN and HITEMP databases
Example
# Data source #
Database HITRAN
Molecule NO
Isotopologue 14N-16O
Dataset XABC-HITRAN
SpeciesID 81
# File path #
ReadPath /home/jingxin/data/HITRAN/
SavePath /home/jingxin/data/pyexocross/
LogFilePath /home/jingxin/data/pyexocross/log/NO_HITRAN_toExoMol.log
# Functions #
Conversion 1
PartitionFunctions 0
SpecificHeats 0
CoolingFunctions 0
Lifetimes 0
OscillatorStrengths 0
StickSpectra 0
CrossSections 0
# Cores and chunks #
NCPUtrans 16
NCPUfiles 1
ChunkSize 1000000
# Quantum numbers for conversion, stick spectra and cross sections
QNslabel X Omega v1 m Br Sym F
QNsformat %2s %3s %2d %1s %2s %1s %5s
# Conversion #
ConversionFormat 2
ConversionFrequncyRange 0 63000 # Wavenumber in unit of cm-1
GlobalQNLabel X Omega v1
GlobalQNFormat %2s %3s %2d
LocalQNLabel m Br Sym F
LocalQNFormat %1s %2s %1s %5s
ConvUncFilter(Y/N) N 0.01 # If Y, default value 0.01 cm-1
ConvThreshold(Y/N) N 1e-30 # If Y, default value 1e-30 cm/molecule
Note
ExoMol format definition files
.def,.def.json, and.adef.json(available at exomol.com) provide the labels and formats of the quantum numbers for each species for reference.ExoMolHR format can be found from ExoMolHR website https://www.exomol.com/exomolhr/.
HITRAN2020 supplementary material (link) provides the notation and format for quanta identifications for reference.