Raw File
example_reading_LAMDA_files.py
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 21 16:37:59 2017

@author: gianni
"""

from pythonradex import LAMDA_file
import numpy as np

data_filepath = './co.dat' #relative or absolute path to the LAMDA datafile

data = LAMDA_file.read(data_filepath)

levels = data['levels']
rad_transitions = data['radiative transitions']
coll_transitions = data['collisional transitions']

print('Third level statistical weight: {:g}'.format(levels[2].g))
print('Third level energy: {:g} J'.format(levels[2].E))
print('Third level number: {:d}'.format(levels[2].number)) #index is 0 based
print('\n')

print('There are {:d} radiative transitions'.format(len(rad_transitions)))
#choose some random radiative transition:
rad_trans = rad_transitions[10]
print('Upper level stat weight: {:g}'.format(rad_trans.up.g))
print('Lower level energy: {:g} J'.format(rad_trans.low.E))
print('frequency: {:g} Hz'.format(rad_trans.nu0))
print('Energy difference: {:g} J'.format(rad_trans.Delta_E))
print('Einstein A21: {:g}'.format(rad_trans.A21))
print('example excitation temperature:')
print(rad_trans.Tex(x1=0.3,x2=0.1))
#one can also give numpy arrays as input:
x1 = np.array((0.1,0.5,0.15))
x2 = np.array((0.05,0.1,0.07))
print(rad_trans.Tex(x1=x1,x2=x2))
print('\n')

print(coll_transitions.keys())
coll_transitions_ortho_H2 = coll_transitions['ortho-H2']
print('there are {:d} ortho-H2 coll transitions'.format(len(coll_transitions_ortho_H2)))
#choose random collisional transition:
coll_trans = coll_transitions['ortho-H2'][99]
print('number of upper level: {:d}'.format(coll_trans.up.number))
print('stat weight of lower level: {:g}'.format(coll_trans.low.g))
print('energy difference of transitions: {:g} J'.format(coll_trans.Delta_E))
print('transition name: {:s}'.format(coll_trans.name))
Tkin = 100.5
print('coll coeff K21 (at T={:g} K): {:g} m3/s'.format(Tkin,coll_trans.coeffs(Tkin)['K21']))
#one can also give numpy arrays as input:
Tkin = np.array((52.3,70.4,100.2,150.4))
print(coll_trans.coeffs(Tkin=Tkin))
back to top