王新華,陳 東,羅 林,張 濤,楊 磊,徐 稚,諶俊毅
(1. 中國(guó)科學(xué)院云南天文臺(tái),云南 昆明 650216;2. 中國(guó)科學(xué)院大學(xué),北京 100049)
地基天文望遠(yuǎn)鏡的成像質(zhì)量與臺(tái)址及周圍環(huán)境密切相關(guān),在高分辨率太陽(yáng)圖像復(fù)原時(shí),需要知道觀測(cè)時(shí)刻周圍環(huán)境的準(zhǔn)確信息,從而更為精確地統(tǒng)計(jì)臺(tái)站周圍的大氣性質(zhì)。自動(dòng)氣象監(jiān)測(cè)系統(tǒng)是現(xiàn)代天文觀測(cè)臺(tái)站必備的輔助系統(tǒng)之一,主要目的是實(shí)時(shí)監(jiān)控氣象信息并提供給望遠(yuǎn)鏡系統(tǒng),以保障望遠(yuǎn)鏡等設(shè)備的安全;提供某些觀測(cè)過程需要的精準(zhǔn)氣象及觀測(cè)條件數(shù)據(jù),作為數(shù)據(jù)處理的輔助參數(shù);提供長(zhǎng)期的氣象及觀測(cè)條件數(shù)據(jù),用于評(píng)估臺(tái)站的觀測(cè)條件[1-3]。
自動(dòng)氣象監(jiān)測(cè)系統(tǒng)中使用較為廣泛的STM32系列微控制器是ARM Cortex-M3內(nèi)核的高性能嵌入式控制芯片,主頻為72 MHz,擁有豐富的通信接口[4]。文[5]基于此微控制器開發(fā)了一套較為輕便的氣象站數(shù)據(jù)實(shí)時(shí)顯示系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1(a)。此類氣象站的優(yōu)點(diǎn)是低功耗、高可移動(dòng)性、資源占用少;缺點(diǎn)主要表現(xiàn)為性能較低,無(wú)法滿足多任務(wù)、大批量數(shù)據(jù)的快速處理和管理,難以提供完整的遠(yuǎn)程訪問等軟件功能,需要添加服務(wù)器才能提供實(shí)時(shí)數(shù)據(jù)訪問、數(shù)據(jù)庫(kù)存儲(chǔ)等功能,明安圖射電頻譜日像儀的Vantage Pro氣象站就是這種類型[6]。
基于個(gè)人計(jì)算機(jī)開發(fā)的自動(dòng)氣象監(jiān)測(cè)系統(tǒng),如圖1(b)。個(gè)人計(jì)算機(jī)完成數(shù)據(jù)的獲取和處理,并提供如人機(jī)交互界面等豐富的軟件功能。此類氣象站的優(yōu)點(diǎn)是性能高、數(shù)據(jù)處理快、實(shí)時(shí)性高,有強(qiáng)大的操作系統(tǒng),可以為用戶提供豐富的軟件功能。缺點(diǎn)主要表現(xiàn)在可移動(dòng)性差,由于必須依賴個(gè)人計(jì)算機(jī),在野外選擇臺(tái)址時(shí)非常不便;個(gè)人計(jì)算機(jī)功耗較高,在野外無(wú)法使用市電供電的情況下對(duì)供電系統(tǒng)是個(gè)考驗(yàn),需要專門的個(gè)人計(jì)算機(jī)完成數(shù)據(jù)的采集和發(fā)布;部分個(gè)人計(jì)算機(jī)是氣象站商家提供的,此類系統(tǒng)一般閉源,自行修改調(diào)試繁瑣[7],如撫仙湖1 m新真空太陽(yáng)望遠(yuǎn)鏡原氣象站[8-9]。
根據(jù)未來天文臺(tái)站自動(dòng)氣象站的發(fā)展趨勢(shì),氣象站要具備低功耗、低成本、高可移動(dòng)性和完備的軟硬件功能等特點(diǎn),本文使用基于ARM的嵌入式系統(tǒng)實(shí)現(xiàn)1 m太陽(yáng)望遠(yuǎn)鏡自動(dòng)氣象監(jiān)測(cè)系統(tǒng)的開發(fā)?;贏RM的嵌入式系統(tǒng)是微控制器和個(gè)人計(jì)算機(jī)的折中產(chǎn)品,可以運(yùn)行一個(gè)經(jīng)過裁剪的Linux系統(tǒng),提供豐富的軟件功能,其性能滿足多任務(wù)的快速數(shù)據(jù)處理需求,同時(shí)有較低的功耗和較高的可移動(dòng)性。本文以1 m太陽(yáng)望遠(yuǎn)鏡氣象站系統(tǒng)改進(jìn)為例進(jìn)行系統(tǒng)的開發(fā)和測(cè)試。
1 m太陽(yáng)望遠(yuǎn)鏡位于撫仙湖太陽(yáng)觀測(cè)基地,隸屬于中國(guó)科學(xué)院云南天文臺(tái),是我國(guó)21世紀(jì)初主要的地面光學(xué)及近紅外太陽(yáng)觀測(cè)設(shè)備,有效口徑為1 m,真空窗直徑達(dá)到1.2 m,是目前世界上口徑最大的真空望遠(yuǎn)鏡,可在0.3~2.5 μm波段對(duì)太陽(yáng)進(jìn)行高分辨率成像和多波段光譜觀測(cè),測(cè)量太陽(yáng)磁場(chǎng)的精細(xì)結(jié)構(gòu)和高時(shí)空分辨率的演化過程。1 m太陽(yáng)望遠(yuǎn)鏡原自動(dòng)氣象監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)見圖2(a)。
圖2 1 m新真空太陽(yáng)望遠(yuǎn)鏡原氣象站。(a)原氣象站系統(tǒng)結(jié)構(gòu)圖;(b)原氣象站2017~2018年數(shù)據(jù)丟失率
自動(dòng)氣象監(jiān)測(cè)系統(tǒng)在實(shí)際使用中遇到以下問題:
(1)數(shù)據(jù)丟失:2017~2018年有225天沒有數(shù)據(jù)記錄,對(duì)有數(shù)據(jù)的140余天進(jìn)行統(tǒng)計(jì),數(shù)據(jù)丟失率在6%左右,整個(gè)系統(tǒng)處于不可控狀態(tài),數(shù)據(jù)丟失統(tǒng)計(jì)結(jié)果如圖2(b)。
(2)數(shù)據(jù)離線存儲(chǔ),不便于遠(yuǎn)程和本地的數(shù)據(jù)查詢。
(3)自2019年7月起,系統(tǒng)頻繁宕機(jī)導(dǎo)致無(wú)法獲取氣象數(shù)據(jù),尤其是風(fēng)速等信息,對(duì)1 m太陽(yáng)望遠(yuǎn)鏡的安全帶來了極大的隱患。同時(shí),由于無(wú)法提供觀測(cè)時(shí)間內(nèi)的環(huán)境信息,已經(jīng)影響如自適應(yīng)光學(xué)(Adaptive Optics, AO)系統(tǒng)的數(shù)據(jù)處理。
(4)原自動(dòng)氣象監(jiān)測(cè)系統(tǒng)軟件是個(gè)封閉系統(tǒng),無(wú)法根據(jù)實(shí)際情況自行增減功能。
鑒于上述情況,本文在利用原有氣象參數(shù)傳感器的基礎(chǔ)上,使用基于ARM架構(gòu)的嵌入式系統(tǒng)開發(fā)一套功能完備、高穩(wěn)定性、低功耗、低成本的自動(dòng)氣象監(jiān)測(cè)系統(tǒng)。系統(tǒng)目的是以一定頻率為撫仙湖太陽(yáng)觀測(cè)站內(nèi)所有設(shè)備提供站點(diǎn)實(shí)時(shí)的氣象信息,保障1 m太陽(yáng)望遠(yuǎn)鏡及周邊設(shè)備的安全,同時(shí)站點(diǎn)內(nèi)所有的儀器設(shè)備可以獲取氣象環(huán)境信息。
具體要求包括:
(1)每隔10 s向1 m太陽(yáng)望遠(yuǎn)鏡提供溫度、濕度、雨量、氣壓、風(fēng)速、風(fēng)向、露點(diǎn)、輻射強(qiáng)度、觀測(cè)天區(qū)圖像等信息,并可以通過瀏覽器訪問;
(2)獲取其他臺(tái)站提供的基本太陽(yáng)活動(dòng)信息,并在發(fā)生劇烈太陽(yáng)活動(dòng)時(shí)給出提示;
(3)極端氣象條件報(bào)警:當(dāng)風(fēng)速、濕度、溫度、露點(diǎn)等達(dá)到預(yù)設(shè)警報(bào)值時(shí),通過聲光等手段報(bào)警;
(4)由于傳感器、數(shù)據(jù)傳輸?shù)仍斐傻臄?shù)據(jù)丟失率 <10%,即每天數(shù)據(jù)丟失小于864條(共8 640條),約合2.4 h的氣象數(shù)據(jù);
(5)氣象環(huán)境數(shù)據(jù)按標(biāo)準(zhǔn)歸檔到數(shù)據(jù)庫(kù),方便日后查詢和分析;
(6)可以在外網(wǎng)獲取實(shí)時(shí)氣象信息。
2.2.1 系統(tǒng)總體結(jié)構(gòu)和功能
系統(tǒng)由本地和遠(yuǎn)程兩部分構(gòu)成,本地包括數(shù)據(jù)獲取、監(jiān)控報(bào)警、數(shù)據(jù)入庫(kù)等。圖3是系統(tǒng)結(jié)構(gòu)及功能圖,遠(yuǎn)程包括顯示實(shí)時(shí)氣象數(shù)據(jù)和當(dāng)天歷史氣象數(shù)據(jù)以及通過百度數(shù)據(jù)可視化的內(nèi)網(wǎng)隧道功能為外網(wǎng)用戶提供氣象信息。圖4是系統(tǒng)軟件功能示意圖。
圖3 系統(tǒng)結(jié)構(gòu)及功能圖Fig.3 System structure and function diagram
2.2.2 本 地
本地包括氣象站數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、監(jiān)控報(bào)警及數(shù)據(jù)處理。
(1)氣象站數(shù)據(jù)采集
通過訪問1 m太陽(yáng)望遠(yuǎn)鏡原有氣象站上位機(jī)獲得氣象數(shù)據(jù),可以采集風(fēng)速、雨量、溫度、氣壓、輻射、風(fēng)向、濕度等數(shù)據(jù),通訊協(xié)議支持MODBUS和XPH,本文采用MODBUS通訊協(xié)議與氣象站上位機(jī)通訊。
(2)數(shù)據(jù)存儲(chǔ)
系統(tǒng)每隔10 s訪問一次氣象站上位機(jī)并將數(shù)據(jù)存儲(chǔ)到本地,為了加快數(shù)據(jù)的成圖速度,原始數(shù)據(jù)存放在內(nèi)存中,并定期備份到本地磁盤。
(3)監(jiān)控報(bào)警
天氣預(yù)警流程如圖5,當(dāng)風(fēng)速高于12 m/s或有太陽(yáng)活動(dòng)爆發(fā)時(shí)通過聲光等手段發(fā)出預(yù)警。
(4)數(shù)據(jù)處理
數(shù)據(jù)處理包括氣象傳感數(shù)據(jù)包的拆分和校驗(yàn)、數(shù)據(jù)的折線圖顯示(最大值、最小值、均值)、預(yù)警、全天圖像的數(shù)據(jù)獲取。
圖4 軟件功能示意圖Fig.4 Software function diagram
圖5 天氣預(yù)警流程圖Fig.5 Weather warning flow chart
2.2.3 遠(yuǎn)程訪問
遠(yuǎn)程包括網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫(kù)及百度數(shù)據(jù)可視化。
(1)網(wǎng)絡(luò)服務(wù)器
網(wǎng)絡(luò)服務(wù)器基于NodeJS開發(fā),圖6是網(wǎng)絡(luò)服務(wù)器界面,提供氣象數(shù)據(jù)、天區(qū)實(shí)況、耀斑爆發(fā)等信息,點(diǎn)擊氣象參數(shù)可以查看當(dāng)天對(duì)應(yīng)參數(shù)的歷史數(shù)據(jù)。
(2)MySQL數(shù)據(jù)庫(kù)
由于氣象數(shù)據(jù)的入庫(kù)與采集是并行的,此模式會(huì)遇到兩個(gè)問題:(1)連接數(shù)據(jù)庫(kù)和寫入數(shù)據(jù)花費(fèi)的時(shí)間小于10 s,而數(shù)據(jù)的頻率是10 s一次,導(dǎo)致數(shù)據(jù)的重復(fù)存儲(chǔ);(2)若數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間連接異常,會(huì)造成數(shù)據(jù)丟失。針對(duì)這兩個(gè)問題,系統(tǒng)的解決方案如下。
創(chuàng)建missing.csv文件,當(dāng)數(shù)據(jù)庫(kù)連接異常時(shí),將這段時(shí)間的新數(shù)據(jù)緩存到missing.csv,待連接恢復(fù)后將數(shù)據(jù)庫(kù)的最新數(shù)據(jù)的寫入時(shí)間和丟失的數(shù)據(jù)做比較,如果不同則將missing.csv的數(shù)據(jù)存到數(shù)據(jù)庫(kù);如果數(shù)據(jù)庫(kù)連接正常,將前一次存儲(chǔ)的數(shù)據(jù)和最新獲取的數(shù)據(jù)作比較,兩者相同則不插入數(shù)據(jù)庫(kù),兩者不同則插入數(shù)據(jù)庫(kù)。這種方式既避免了數(shù)據(jù)的重復(fù)存儲(chǔ),也避免了數(shù)據(jù)丟失,通過這種方式將數(shù)據(jù)庫(kù)訪問程序與上位機(jī)訪問程序分離后不會(huì)再出現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)與本地?cái)?shù)據(jù)不同的情況,顯著提高了數(shù)據(jù)的完整性和系統(tǒng)的魯棒性。圖7是防數(shù)據(jù)丟失程序流程圖。
圖6 網(wǎng)絡(luò)頁(yè)面Fig.6 The web page
圖7 防數(shù)據(jù)丟失程序流程圖Fig.7 Data loss prevention program flow chart
(3)百度數(shù)據(jù)可視化:為了便于外網(wǎng)用戶訪問氣象數(shù)據(jù),本文采用百度數(shù)據(jù)可視化平臺(tái)提供外網(wǎng)數(shù)據(jù)可視化服務(wù)。數(shù)據(jù)可視化是百度云推出的數(shù)據(jù)可視化服務(wù)平臺(tái),目標(biāo)是解決報(bào)表和大屏的數(shù)據(jù)可視化問題,解放數(shù)據(jù)可視化系統(tǒng)的開發(fā)人員。大屏與報(bào)表的圖表數(shù)據(jù)源可以復(fù)用,用戶可以方便地為同一套數(shù)據(jù)搭建不同的展示形式,實(shí)現(xiàn)在外網(wǎng)訪問內(nèi)網(wǎng)的氣象站數(shù)據(jù)。本文使用MySQL模型直接讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),顯示實(shí)時(shí)環(huán)境信息和歷史氣象信息的折線圖。
(1)運(yùn)行狀況
從2019年10月8日至2020年4月30日,系統(tǒng)已經(jīng)穩(wěn)定運(yùn)行150余天,中途出現(xiàn)過網(wǎng)絡(luò)斷開多天的情況,但是網(wǎng)絡(luò)恢復(fù)后,程序可以自動(dòng)恢復(fù)數(shù)據(jù),數(shù)據(jù)庫(kù)的數(shù)據(jù)沒有丟失,即斷網(wǎng)期間本地存儲(chǔ)的數(shù)據(jù)全部同步到數(shù)據(jù)庫(kù)一端,說明氣象站的數(shù)據(jù)管理方案是可靠的。
(2)數(shù)據(jù)量
系統(tǒng)7 × 24 h運(yùn)行,每天本地備份的數(shù)據(jù)量為500 kB,一年數(shù)據(jù)量約為180 MB;全天圖像和各監(jiān)測(cè)量趨勢(shì)圖總計(jì)1.5 MB,一年數(shù)據(jù)量約為550 MB。系統(tǒng)每隔一年清理一次本地的備份。
(3)數(shù)據(jù)丟失率(除去停機(jī)等特殊情況)
截至2020年4月底,每天的數(shù)據(jù)丟失率如圖8(a),可以看到在氣象站運(yùn)行初期,由于需要進(jìn)行調(diào)試,系統(tǒng)的整體運(yùn)行狀態(tài)較穩(wěn)定運(yùn)行期間差一點(diǎn),但是仍然達(dá)到數(shù)據(jù)丟失率小于10%的要求。圖8(b)是4月最后10天的運(yùn)行情況,圖8(c)是2019年10月至2020年4月的運(yùn)行情況。通過統(tǒng)計(jì)發(fā)現(xiàn),系統(tǒng)的數(shù)據(jù)丟失率在4%左右,滿足預(yù)期。
目前系統(tǒng)基本實(shí)現(xiàn)了預(yù)期目標(biāo),運(yùn)行穩(wěn)定,滿足日常使用要求。系統(tǒng)在日常工作狀態(tài)下功耗約為10 W,在斷電情況下7 800 mAh的微型不間斷電源能供電4 h左右,硬件成本只相當(dāng)于同等功能個(gè)人計(jì)算機(jī)的1/4左右。同時(shí)搭載的Linux系統(tǒng)生態(tài)完整,滿足氣象站數(shù)據(jù)處理的硬件和軟件要求,又因其強(qiáng)大的擴(kuò)展功能和便攜性等特點(diǎn),未來考慮用基于ARM架構(gòu)的嵌入式系統(tǒng)進(jìn)行更多軟件的開發(fā)。
(1)采用更高性能的ARM開發(fā)板,提高數(shù)據(jù)處理能力和存儲(chǔ)介質(zhì)的訪問速度;
(2)采用更可靠的RS485串口服務(wù)器,獲得更穩(wěn)定的數(shù)據(jù)訪問;
(3)在高性能ARM開發(fā)板的加持下,開發(fā)集成視寧度監(jiān)測(cè) + 云量 + 氣象參數(shù)等下一代高性能、低功耗、低成本一體式天文環(huán)境監(jiān)測(cè)系統(tǒng)。
圖8 天文氣象站數(shù)據(jù)丟失率統(tǒng)計(jì)圖