寧超 杜平萍 魯長(zhǎng)海
摘要:太陽(yáng)輻射表是農(nóng)業(yè)氣象領(lǐng)域的新興重要觀測(cè)設(shè)備,它的數(shù)據(jù)通過(guò)數(shù)字萬(wàn)用表來(lái)讀取,精度只能達(dá)到0.01mV,本位采用6位半數(shù)字萬(wàn)用表的方法讀取太陽(yáng)輻射表數(shù)據(jù),不但采集精度提高至0.001mV,而且通過(guò)根據(jù)數(shù)字萬(wàn)用表接口設(shè)計(jì)擴(kuò)展數(shù)據(jù)線,實(shí)現(xiàn)同時(shí)采集20路輻射表數(shù)據(jù)的功能,并可以利用軟件將測(cè)量數(shù)據(jù)計(jì)算和保存,取代人工記錄,大大提高了太陽(yáng)輻射表觀測(cè)業(yè)務(wù)能力。
關(guān)鍵詞:太陽(yáng)輻射表;多路數(shù)據(jù)采集
中圖分類號(hào): TP399 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: ?A ? ? ? ? ? ? ? ? ? ?DOI編號(hào): ? 10.14025/j.cnki.jlny.2019.16.076
太陽(yáng)直接輻射是用太陽(yáng)輻射表(簡(jiǎn)稱輻射表或直射表)測(cè)量[1]。此輻射表可廣泛應(yīng)用于太陽(yáng)能利用、氣象、農(nóng)業(yè)、建筑材料及生態(tài)考察部門(mén)[2]。
目前,遼寧省太陽(yáng)輻射表觀測(cè)實(shí)驗(yàn)現(xiàn)狀存在以下不足:一是實(shí)驗(yàn)數(shù)據(jù)讀取為人工讀數(shù),這種測(cè)量方法一人只能讀取一臺(tái)設(shè)備的數(shù)據(jù),不能實(shí)現(xiàn)一對(duì)多的觀測(cè)需求;二是萬(wàn)用表讀數(shù)精度有限,影響輻射能量計(jì)算的準(zhǔn)確性;三是實(shí)驗(yàn)數(shù)據(jù)沒(méi)有專用計(jì)算軟件進(jìn)行處理,存在著很多重復(fù)性勞動(dòng),工作量大效率低。對(duì)此,本文提出使用6位半數(shù)字萬(wàn)用表配合專用擴(kuò)展數(shù)接口實(shí)現(xiàn)太陽(yáng)輻射表的多路采集與實(shí)驗(yàn)數(shù)據(jù)記錄存儲(chǔ)功能。
1設(shè)計(jì)多路采集數(shù)據(jù)線
根據(jù)Keithley2000高精度數(shù)字多用表的擴(kuò)展接口,設(shè)計(jì)并制作滿足20路太陽(yáng)輻射表測(cè)量的多路采集數(shù)據(jù)線,其選用HDB44母頭焊接40根鍍錫純銅導(dǎo)線,其性能滿足測(cè)量太陽(yáng)輻射表的0.001mV的要求[2],焊點(diǎn)處用熱封套管做絕緣處理,且每一對(duì)導(dǎo)線都做數(shù)字標(biāo)記,用來(lái)分清線序,如圖1所示。
2設(shè)計(jì)多路數(shù)據(jù)處理軟件
為了能夠最大限度地減輕實(shí)驗(yàn)人員的工作量,需要將采集到的多路輻射數(shù)據(jù)進(jìn)行自動(dòng)化處理。實(shí)現(xiàn)20通路的輻射數(shù)據(jù)并行測(cè)量和實(shí)時(shí)數(shù)據(jù)采集。所以,多路數(shù)據(jù)處理軟件的設(shè)計(jì)理念是依照輻射表實(shí)驗(yàn)規(guī)程編寫(xiě)底層數(shù)據(jù)計(jì)算邏輯代碼,并實(shí)現(xiàn)使用簡(jiǎn)單,運(yùn)行穩(wěn)定的操作界面。該軟件使用python3.7作為開(kāi)發(fā)環(huán)境,所以環(huán)境特別適合觀測(cè)人員學(xué)習(xí)使用,通過(guò)短時(shí)間學(xué)習(xí)就能夠解決業(yè)務(wù)中的很多問(wèn)題[3]。本文利用numpy、pyqt4等關(guān)鍵包輔助實(shí)現(xiàn)各種功能,例如,將采集數(shù)據(jù).dat文件中的字符串內(nèi)容轉(zhuǎn)化成計(jì)算機(jī)可處理的數(shù)據(jù)格式,并提取滿足規(guī)程的60行測(cè)量數(shù)據(jù),代碼如下:
for i in range(ll):
list_arr[i] = list_arr[i].split()
a = np.array(list_arr)
a = a[0:60, :]
dat文件的數(shù)據(jù)提取為計(jì)算機(jī)數(shù)字格式之后,就需要根據(jù)規(guī)程設(shè)計(jì)比對(duì)數(shù)據(jù)處理函數(shù)的代碼,用numpy.std方法代表求矩陣fij的樣本標(biāo)準(zhǔn)偏差:s=numpy.std(fij, axis=1,ddof=1)。
因?yàn)樵撥浖枰邆渫瑫r(shí)處理20個(gè)輻射表的能力,所以需要20行的信息顯示欄,即要布置20個(gè)pyqt4模塊下的textlabel。但因?yàn)槊看卧囼?yàn)的輻射表數(shù)量無(wú)法確定,所以具體使用幾行信息欄的textlabel數(shù)量是不定的,那么,在程序設(shè)計(jì)中就需要通過(guò)條件語(yǔ)句解決這個(gè)問(wèn)題,并使用eval這個(gè)函數(shù)實(shí)現(xiàn)不確定數(shù)量的邏輯迭代功能,具體代碼如下:
for i in range(len(true_index)):
if abs(self.stability[i]) < lim:
eval(“self.lineEdit”+str(true_index[i]+20)+ “.setText(‘合格)”)
else:
eval(“self.lineEdit”+str(true_index[i]+20)+ “.setText(‘不合格)”)
這里true_index是實(shí)際參與實(shí)驗(yàn)的輻射表數(shù)量,通過(guò)函數(shù)eval()遍歷每一個(gè)參與實(shí)驗(yàn)的輻射表所對(duì)應(yīng)的信息欄,并寫(xiě)入合格或不合格。
3結(jié)語(yǔ)
太陽(yáng)輻射表的多通道采集方法以及數(shù)據(jù)處理軟件使用方便簡(jiǎn)單,具有良好的人機(jī)交互特性,使得太陽(yáng)輻射表的觀測(cè)、數(shù)據(jù)比對(duì)校準(zhǔn)效率顯著提升,而且可以實(shí)現(xiàn)一人操作多臺(tái)設(shè)備的情形,通過(guò)計(jì)算機(jī)計(jì)算完全消除了人為誤差。與其他面向?qū)ο蟮木幊陶Z(yǔ)言相比,python特別適合應(yīng)用到計(jì)量檢定數(shù)據(jù)處理領(lǐng)域,其編程方式簡(jiǎn)單,數(shù)學(xué)函數(shù)豐富,計(jì)量人員不用投入太多時(shí)間學(xué)習(xí)開(kāi)發(fā)語(yǔ)言就可以完成軟件的編寫(xiě),節(jié)省大量時(shí)間。目前,已經(jīng)有大量利用python解決數(shù)學(xué)模型可視化,科研數(shù)據(jù)處理可視化的研究工作,但鮮有將其利用在計(jì)量檢定數(shù)據(jù)處理中,所以,本文為其他檢定業(yè)務(wù)的數(shù)據(jù)處理提供了有效的解決辦法。
參考文獻(xiàn)
[1]黃思源,劉鈞.新型自動(dòng)氣象站觀測(cè)業(yè)務(wù)技術(shù).北京:氣象出版社,2008.
[2]張文煜.大氣探測(cè)原理與方法.北京:氣象出版社,2007.
[3]Eric Matthes.Python編程從入門(mén)到實(shí)踐.北京:人民郵電出版社,2017.
作者簡(jiǎn)介:寧超,本科學(xué)歷,中級(jí)工程師,研究方向:氣象裝備技術(shù)保障。