摘要:使用方法直接從官網(wǎng)上下載導(dǎo)入模塊建立文件夾,并指定該文件夾首先,建立文件夾用于本地數(shù)據(jù)庫的存放。數(shù)據(jù)庫的獲取直接下載數(shù)據(jù)庫另一種方法是直接下載好數(shù)據(jù)庫中的光譜數(shù)據(jù),然后將其手動存放到文件夾中。從數(shù)據(jù)庫下載的數(shù)據(jù)格式是。
之前我計算高溫氣體光譜特性是自己寫的算法部分,查了好多文獻,最后計算的結(jié)果也還算比較滿意。后來我才發(fā)現(xiàn)原來HITRAN官網(wǎng)上已經(jīng)提供了HAPI,只需要調(diào)用HAPI就可以直接計算氣體的光譜特性,而無需自己寫具體的光譜特性計算方法。
HAPI (HITRAN Application Programming Interface) 是HITRAN online網(wǎng)站(https://hitran.org/)提供的python接口,可以實現(xiàn)遠程訪問HITRAN數(shù)據(jù)庫,并可以逐行下載、過濾和處理分子和原子上的光譜數(shù)據(jù)的功能。
from hapi import *
首先,建立文件夾用于本地數(shù)據(jù)庫的存放。例如,文件夾名為data_hitemp。
然后使用下列語句選中該文件夾。
db_begin("data_hitemp")
每次啟動Python項目時,都必須顯式指定數(shù)據(jù)庫文件夾的名稱。
4.1 HITRAN數(shù)據(jù)庫的獲取:遠程連接HITRAN網(wǎng)站下載
通過fetch()可以從HITRAN online自動下載HITRAN數(shù)據(jù)庫的譜線數(shù)據(jù)。
fetch(TableName, M, I, numin, numax, ParameterGroups=[], Parameters=[]),其中TableName表示本地存放的文件名;M表示HITRAN上分子的編號,如H2O的編號是1,CO2的編號是2,N2O的編號是4,等等;I表示HITRAN上同位素的編號;numin表示波數(shù)下限;numax表示波數(shù)上限;例如:
fetch("COC", 2, 1, 2000, 2100)
上面代碼表示將波數(shù)2000-2100(cm-1)的CO2的光譜數(shù)據(jù)存放在名為“COC”的文件中。此時可以在data_hitemp文件夾中看到?一個COC.data和一個COC.header文件。
4.2 HITEMP數(shù)據(jù)庫的獲取:直接下載HITEMP數(shù)據(jù)庫
另一種方法是直接下載好HITEMP數(shù)據(jù)庫中的光譜數(shù)據(jù),然后將其手動存放到data_hitemp文件夾中。從HITEMP數(shù)據(jù)庫下載的數(shù)據(jù)格式是.par。
?在使用下列語句之后
db_begin("data_hitemp")
可以看到,data_hitemp文件夾中的數(shù)據(jù)格式出現(xiàn)了.header
根據(jù)氣體的溫度,壓力,光路長度,可以計算得到如下光譜特性:a)吸收系數(shù)(Absorption coefficient);b)光譜吸收率(Absorption spectrum);c)光譜透過率(Transmittance spectrum);d)光譜輻射亮度(Radiance spectrum)。HAPI提供的線形(line shape)包括:Gaussian (Doppler)線形,Lorentzian線形,Voigt線形,Rautian線形,Speed-dependent Voigt線形,speed-dependent Rautian線形以及Hartmann-Tran線形。
5.1 吸收系數(shù)
計算吸收系數(shù)可以使用下列函數(shù),分別代表不同的線形:
absorptionCoefficient_HTabsorptionCoefficient_VoigtabsorptionCoefficient_LorentzabsorptionCoefficient_DopplerabsorptionCoefficient_SDVoigt
下面以洛倫茲線形為例計算吸收系數(shù):
nu,coef = absorptionCoefficient_Lorentz(SourceTables="02_2000-2125_HITEMP2010",HITRAN_units=False,Diluent={"air":1.0})plot(nu,coef)
?其中,nu代表中心波數(shù);coef代表吸收系數(shù);Diluent表示氣體混合物的比例,Diluent={"self":A, "air":B, "CO2":C, ...},且滿足A+B+C+...=1。其中self用于計算自增寬半寬,air用于計算空氣增寬半寬。
數(shù)據(jù)庫里只有空氣增寬半寬和自增寬半寬,所以其他組分除了濃度外物質(zhì)種類沒有影響。
#若CO2含量為100%,則設(shè)置"self":1,另一個參數(shù)設(shè)置air=0
#若CO2含量為1%,則設(shè)置"self"=0.01,另一個設(shè)置為"air"=0.99
此時需要增加下面的代碼
coef *= xco2 #xco2代表CO2的含量
#若為純空氣環(huán)境,設(shè)置"air"=1,即可
HITRAN_units: 如果為True,單位 cm^2/molec ;如果為False, 單位cm-1 。?為了后續(xù)計算其他光譜特性如光譜吸收系數(shù),光譜透過率,光譜輻射亮度,必須將?HITRAN_units設(shè)為 False。
下左圖?是HITRAN_units=True,下右圖?是HITRAN_units=False.
?
完整的absorptionCoefficient_Lorentz參數(shù)如下:
absorptionCoefficient_Lorentz(SourceTables, Environment={"T":296.,"p":1.}, OmegaRange, OmegaStep, OmegaWing, IntensityThreshold, OmegaWingHW, GammaL="gamma_air", HITRAN_units, LineShift, File, Format, OmegaGrid, WavenumberRange, WavenumberStep, WavenumberWing, WavenumberWingHW, WavenumberGrid, Diluent={}, EnvDependences)
Environment={"T":296,"p":1},默認溫度T=296K,p=1atm,可根據(jù)實際溫度和壓力進行設(shè)置;
5.2?光譜吸收率,光譜透過率,光譜輻射亮度
光譜吸收率,光譜透過率,光譜輻射亮度的計算必須設(shè)置傳輸路徑長度,默認的長度是1m。光譜吸收率和光譜透過率的默認參數(shù)是?Environment={"l": 100.0},路徑長度單位是cm。
光譜輻射亮度的默認參數(shù)是Environment={"l": 100.0, "T": 296.0},除了路徑長度外,還有溫度,這里的溫度設(shè)置必須與之前在absorptionCoefficient設(shè)置的溫度保持一致。
nu,absorp = absorptionSpectrum(nu,coef)nu,trans = transmittanceSpectrum(nu,coef)nu,radi = radianceSpectrum(nu,coef)
需要注意的是,HAPI用戶手冊中出現(xiàn)了筆誤,默認參數(shù)是Environment={"l": 100.0, "T": 296.0}的應(yīng)該為光譜輻射亮度而非光譜透過率。
計算結(jié)果如下:
光譜吸收率:?
?
光譜透過率:?
?
光譜輻射亮度:單位是W/cm^2/sr/cm^(-1)?
?
希望能幫到需要的人,由于我接觸HAPI的時間也很短,很多地方的理解可能不到位,希望能和大家交流,促進我們共同進步。
更多關(guān)于HAPI的使用方法可以下載用戶使用手冊。
參考文章:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/118787.html
摘要:今天的主角是如何搭建一個公眾號自動回復(fù)功能。對于大網(wǎng)站或者項目來說,找一家如阿里云騰訊云等云服務(wù)平臺,但對于個人只是想簡單的搭建一個公眾號管理自動回復(fù)功能,終究有些大材小用了結(jié)合使用相得映彰,而且可以根據(jù)需要升級擴展。 程序員愛炫技,寫個公眾號文章,都想拿點技術(shù)整整【自動回復(fù)】;程序員愛偷懶,什么都想做個【自動化】,最好所有事情系統(tǒng)都給做了,點點手指頭就能達到目標。 今天的主角是如何搭...
摘要:框架,用官網(wǎng)的簡介來說就是是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開發(fā)人員能夠?qū)W⒂诰帉懣芍赜玫膽?yīng)用程序邏輯,而不是花時間構(gòu)建基礎(chǔ)設(shè)施。用自己的話簡單來說,就是個類似,之類的服務(wù)基礎(chǔ)框架。同時全局環(huán)境直接獲取。 showImg(https://segmentfault.com/img/bVbrV3m?w=572&h=350); hapi框架,用官網(wǎng)的簡介來說就是:Hapi是構(gòu)建應(yīng)用程序和...
摘要:框架,用官網(wǎng)的簡介來說就是是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開發(fā)人員能夠?qū)W⒂诰帉懣芍赜玫膽?yīng)用程序邏輯,而不是花時間構(gòu)建基礎(chǔ)設(shè)施。用自己的話簡單來說,就是個類似,之類的服務(wù)基礎(chǔ)框架。 showImg(https://segmentfault.com/img/bVbrV3m?w=572&h=350); hapi框架,用官網(wǎng)的簡介來說就是:Hapi是構(gòu)建應(yīng)用程序和服務(wù)的豐富框架,它使開...
閱讀 1991·2023-04-26 01:41
閱讀 2468·2021-11-24 09:39
閱讀 1921·2021-11-24 09:38
閱讀 1946·2021-11-19 09:40
閱讀 3760·2021-11-11 11:02
閱讀 3293·2021-10-20 13:48
閱讀 3155·2021-10-14 09:43
閱讀 4360·2021-09-02 15:11