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.
For ExoMol and ExoAtom input, these format rows are optional when the labels in GlobalQNLabel and LocalQNLabel can be found in the definition metadata files (.def.json, .def, or .adef.json). PyExoCross uses shortened metadata labels, for example Herzberg:n1 becomes n1. Provide GlobalQNFormat and LocalQNFormat only when you need to override the metadata-derived formats.
For HITRAN, HITEMP, or custom files without ExoMol metadata, provide the quantum number formats explicitly.
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
Device CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when Device=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when Device=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when Device=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
Device CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when Device=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when Device=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when Device=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
Device CPU # CPU(default) or GPU
GPUBackend AUTO # AUTO(default), CUDA, PyTorch-CUDA, CuPy-CUDA, or MPS (used only when Device=GPU)
GPUBatchLines 8192 # GPU line-batch size (only used when Device=GPU)
GPUBatchGrid 256 # GPU grid-batch size (only used when Device=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/qn/.
HITRAN2020 supplementary material (link) provides the notation and format for quanta identifications for reference.