Compatibility to External Packages
PetitRadtrans
One can read the high-R opacity data provided by petitRadtrans as
>>> petitdir="~/petitRADTRANS/petitRADTRANS/input_data/opacities/lines/line_by_line/CO_all_iso/"
>>> with open(petitdir+"wlen.dat", 'rb') as w:
>>> contentw = np.fromfile(w, dtype=np.float64)
>>>
>>> with open(petitdir+"sigma_05_900.K_0.100000bar.dat", 'rb') as f:
>>> contentf = np.fromfile(f, dtype=np.float64)
Also, one can export the opacity computed by ExoJAX to petitRadtrans high-R form, such as
>>> outdir="~/petitRADTRANS/petitRADTRANS/input_data/opacities/lines/line_by_line/CO_exojax/"
>>> np.array(1.0/nus[::-1],dtype=np.float64).tofile(outdir+"wlen.dat")
>>> Mmol=28.010446441149536 # molecular weight
>>>
>>> Tarr=np.logspace(2,3.5,10)
>>> Parr=np.logspace(-10,2,13)
>>> nu0=mdbCO.nu_lines
>>>
>>> f=open(outdir+"PTpaths.ls","w")
>>> for Tfix in Tarr:
>>> qt=mdbCO.Qr_line_HAPI(Tfix)
>>> sigmaD=doppler_sigma(mdbCO.nu_lines,Tfix,Mmol)
>>> for Pfix in Parr:
>>> Ppart=Pfix #partial pressure of CO. here we assume a 100% CO atmosphere.
>>>
>>> Sij=SijT(Tfix,mdbCO.logsij0,mdbCO.nu_lines,mdbCO.elower,qt)
>>> gammaL = gamma_hitran(Pfix,Tfix, Ppart, mdbCO.n_air, \
>>> mdbCO.gamma_air, mdbCO.gamma_self) + gamma_natural(mdbCO.A)
>>> # thermal doppler sigma
>>> xsv=auto_xsection(nus,nu0,sigmaD,gammaL,Sij,memory_size=30)
>>> Pval="{:.6f}".format(Pfix)
>>> P=str(Pval)+"bar"
>>> out="sigma_05_"+str(Tfix)+".K_"+P+".dat"
>>> f.write(str(Pval)+" "+str(Tfix)+" "+out+"\n")
>>> op=np.array(xsv[::-1],dtype=np.float64)/(Mmol*1.66053892e-24)
>>> op.tofile(outdir+out)
>>> f.close()