高鴻飛
摘 要:區(qū)域自動(dòng)氣象站的普遍安裝提高了地面氣象觀測(cè)的時(shí)空分辨率,豐富了氣象觀測(cè)數(shù)據(jù)。但是,受設(shè)備使用壽命、電子特性、電磁干擾等因素的影響,區(qū)域自動(dòng)氣象站會(huì)產(chǎn)生一些疑誤數(shù)據(jù),這些疑誤數(shù)據(jù)會(huì)嚴(yán)重影響氣象數(shù)據(jù)的可信度。通過(guò)極值檢查、時(shí)間一致性檢查、空間一致性檢查等,能實(shí)現(xiàn)數(shù)據(jù)質(zhì)量控制,達(dá)到有效排除疑誤數(shù)據(jù)的目的。為了進(jìn)行區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量控制,設(shè)計(jì)了濟(jì)源區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量監(jiān)控小程序。該程序能實(shí)現(xiàn)最新觀測(cè)數(shù)據(jù)的顯示、查詢和統(tǒng)計(jì)分析,能自動(dòng)發(fā)現(xiàn)疑誤數(shù)據(jù),從而有效提高發(fā)現(xiàn)、排除區(qū)域自動(dòng)氣象站故障的工作效率。
關(guān)鍵詞:區(qū)域自動(dòng)氣象站;數(shù)據(jù)質(zhì)量控制;小程序
中圖分類號(hào):P415.12文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2020)22-0016-04
Abstract: The universal installation of regional automatic weather stations improves the temporal and spatial resolution of surface meteorological observation and enriches the meteorological observation data. However, affected by the equipment service life, electronic characteristics, electromagnetic interference and other factors, the regional automatic weather station will produce some false data, which will seriously affect the credibility of meteorological data. Through the extremum check, time consistency check, spatial consistency check and so on, the data quality control can be realized, and the purpose of eliminating the wrong data effectively can be achieved. In order to control the data quality of regional automatic weather station, a small program for data quality monitoring of Jiyuan regional automatic weather station was designed. The program can realize the display, query and statistical analysis of the latest observation data, and automatically find the suspected and wrong data, so as to effectively improve the work efficiency of discovering and eliminating the faults of regional automatic weather stations.
Keywords: regional automatic weather station;data quality control;Wechat mini-program
隨著氣象現(xiàn)代化的發(fā)展,氣象觀測(cè)設(shè)備日益先進(jìn),區(qū)域自動(dòng)氣象站站點(diǎn)分布日益密集,形成了空間分布合理的自動(dòng)觀測(cè)網(wǎng)絡(luò),豐富了氣象觀測(cè)的手段。這些區(qū)域自動(dòng)氣象站能實(shí)時(shí)收集氣象數(shù)據(jù),對(duì)災(zāi)害預(yù)警、氣象服務(wù)工作具有重要的意義,發(fā)揮著“千里眼”的作用,減少了由于天氣災(zāi)害造成的財(cái)產(chǎn)損失,提高了區(qū)域經(jīng)濟(jì)效益和社會(huì)效益[1]。受設(shè)備使用壽命、電子特性、電磁干擾等因素的影響,區(qū)域自動(dòng)氣象站會(huì)產(chǎn)生一些疑誤數(shù)據(jù),這些疑誤數(shù)據(jù)會(huì)嚴(yán)重影響氣象數(shù)據(jù)的可信度。
造成區(qū)域自動(dòng)氣象站出現(xiàn)疑誤數(shù)據(jù)的原因主要有以下幾種。一是傳感器損壞或者靈敏度降低。在日常維護(hù)中發(fā)現(xiàn)觀測(cè)雨量與實(shí)際雨量不符的情況,現(xiàn)場(chǎng)排查發(fā)現(xiàn)是由于干簧管通斷異常,出現(xiàn)計(jì)量翻斗多次翻轉(zhuǎn)才會(huì)產(chǎn)生一個(gè)通斷信號(hào),最終導(dǎo)致觀測(cè)雨量明顯小于實(shí)際雨量;有風(fēng)向值始終在180°~360°變化而不會(huì)出現(xiàn)小于180°的風(fēng)向值,原因是一條風(fēng)向信號(hào)線始終為高電平。二是連接線路故障。區(qū)域自動(dòng)氣象站的安裝地點(diǎn)都在野外,由于自然老化和老鼠啃咬,會(huì)造成連接線損壞,因而出現(xiàn)疑誤數(shù)據(jù)。曾因老鼠咬斷溫度傳感器到采集器的連接線,造成出現(xiàn)-240.3 ℃的異常數(shù)據(jù)。三是采集器故障。采集器可能會(huì)由于靜電、強(qiáng)電磁干擾、接地不良等原因造成某個(gè)通道出現(xiàn)故障而產(chǎn)生異常數(shù)據(jù)。因此,對(duì)區(qū)域自動(dòng)氣象站進(jìn)行數(shù)據(jù)質(zhì)量控制,及時(shí)發(fā)現(xiàn)和剔除這些疑誤數(shù)據(jù)并對(duì)設(shè)備進(jìn)行檢修,對(duì)提高設(shè)備運(yùn)行的可靠性和數(shù)據(jù)可用性具有重要意義。
智能手機(jī)的普及為隨時(shí)隨地監(jiān)控區(qū)域站運(yùn)行和進(jìn)行質(zhì)量控制提供了可能。手機(jī)應(yīng)用開(kāi)發(fā)主要有傳統(tǒng)APP開(kāi)發(fā)和微信小程序開(kāi)發(fā)。與傳統(tǒng)APP相比,微信小程序有以下幾個(gè)優(yōu)勢(shì):不用安裝,即開(kāi)即用,即用即走,大大節(jié)省了用戶的手機(jī)內(nèi)存和運(yùn)行空間;微信小程序基于微信運(yùn)行,在iOS系統(tǒng)和安卓系統(tǒng)上都可以運(yùn)行,可以有效縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)費(fèi)用、維護(hù)費(fèi)用;通過(guò)分享微信小程序二維碼和在微信里搜索小程序即可使用,方便進(jìn)行推廣[2]。目前,濟(jì)源市已安裝各種區(qū)域自動(dòng)氣象站30個(gè),并開(kāi)發(fā)了濟(jì)源市區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量控制小程序,可隨時(shí)隨地監(jiān)控區(qū)域自動(dòng)氣象站實(shí)時(shí)數(shù)據(jù),及時(shí)發(fā)現(xiàn)異常數(shù)據(jù)、疑誤數(shù)據(jù),保障氣象數(shù)據(jù)的可靠性。
1 數(shù)據(jù)質(zhì)量控制小程序設(shè)計(jì)原理
數(shù)據(jù)質(zhì)量小程序的設(shè)計(jì)旨在做好區(qū)域自動(dòng)氣象站的數(shù)據(jù)質(zhì)量控制。數(shù)據(jù)質(zhì)量控制主要包括三個(gè)方面的實(shí)時(shí)檢查,即極值檢查、時(shí)間一致性檢查、空間一致性檢查等[3]。
極值檢查:指檢查氣象要素值是否超出氣候?qū)W極值和當(dāng)?shù)氐臍夂驑O值。氣候?qū)W極值檢查指從氣候?qū)W的角度分析,所有的觀測(cè)值應(yīng)該在氣候?qū)W極限值之內(nèi),所有超過(guò)氣候?qū)W極值的數(shù)據(jù)都是不可能發(fā)生的要素值[4],是錯(cuò)誤的觀測(cè)值。上面提到的-240.3 ℃的異常溫度就是不可能出現(xiàn)的。當(dāng)?shù)氐臍夂驑O值是指一定區(qū)域的氣象臺(tái)站在一定時(shí)間范圍內(nèi)出現(xiàn)概率很小的氣象記錄,觀測(cè)值超過(guò)當(dāng)?shù)貧夂驑O值時(shí)應(yīng)該提示報(bào)警。
時(shí)間一致性檢查:指檢查氣象記錄在一定時(shí)間內(nèi)的變化是否符合氣象學(xué)的變化規(guī)律。氣溫、氣壓、濕度等氣象要素都是連續(xù)變化的,在一定的時(shí)間間隔內(nèi),同一要素的前后波動(dòng)應(yīng)在一定范圍內(nèi),根據(jù)氣象記錄在1 min、1 h、24 h的變化確定該氣象記錄是否符合時(shí)間一致性檢查,是否可能為疑誤值[5]。
空間一致性檢查:指對(duì)比分析某個(gè)區(qū)域自動(dòng)氣象站的氣象要素值與周邊氣象站的氣象要素值,判斷該要素是否正常。濟(jì)源相鄰區(qū)域氣象站間的直線距離小于10 km,可以根據(jù)該氣象站與周邊站點(diǎn)的氣象要素值的差值是否超出閾值來(lái)判定是否符合氣象要素空間變化規(guī)律。
數(shù)據(jù)質(zhì)量檢查的順序是極值檢查、時(shí)間一致性檢查、空間一致性檢查。通過(guò)這三種檢查可以發(fā)現(xiàn)絕大多數(shù)的異常數(shù)據(jù)、疑誤數(shù)據(jù),在提供氣象服務(wù)產(chǎn)品時(shí)按缺測(cè)處理,保證觀測(cè)數(shù)據(jù)真實(shí)有效[6-7]。
2 區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量控制小程序的實(shí)現(xiàn)
2.1 設(shè)計(jì)思路
編寫(xiě)數(shù)據(jù)采集程序,使用抓取方式從河南省氣象局網(wǎng)站定時(shí)抓取區(qū)域站觀測(cè)數(shù)據(jù),通過(guò)質(zhì)量控制程序分析整理出可信數(shù)據(jù)和疑誤數(shù)據(jù),然后使用Http Post方式把這些數(shù)據(jù)上傳到微信小程序云開(kāi)發(fā)數(shù)據(jù)庫(kù)中,小程序前端調(diào)取數(shù)據(jù)予以展示。濟(jì)源區(qū)域自動(dòng)站質(zhì)量控制原理如圖1所示。
2.2 程序?qū)崿F(xiàn)
2.2.1 后臺(tái)程序?qū)崿F(xiàn)。后臺(tái)程序用Python語(yǔ)言編寫(xiě),從河南省地面氣象觀測(cè)監(jiān)控管理平臺(tái)獲取最新的觀測(cè)數(shù)據(jù),從CIMISS數(shù)據(jù)統(tǒng)一服務(wù)接口獲取整點(diǎn)觀測(cè)數(shù)據(jù),建立統(tǒng)一規(guī)范的JSON接口,對(duì)數(shù)據(jù)進(jìn)行質(zhì)量控制,將規(guī)范化的數(shù)據(jù)和沒(méi)有通過(guò)質(zhì)量控制檢查的疑誤信息上傳到微信云開(kāi)發(fā)平臺(tái)數(shù)據(jù)庫(kù),主要包括requests庫(kù)、simplejson庫(kù)、apscheduler庫(kù)等。
下面的代碼實(shí)現(xiàn)從河南省地面氣象觀測(cè)監(jiān)控管理平臺(tái)上獲取最新的觀測(cè)值,整點(diǎn)觀測(cè)信息與之類似。
def get_real():
try:
url_real = "http://172.18.152.207:8080/tabularsvc.gwt?compositeName
=COMMAND_NAME=DMGD&columns=pres,sea_level_pres,
temp,rela_humi,ave_wd_2min,ave_ws_2min&USCF_ID=-1&SUB_LAYER_FILTER_ENABLED=false"
result = json.loads(requests.get(url_real).text) //獲取實(shí)時(shí)數(shù)據(jù)
upload(real_obs',result) //上傳數(shù)據(jù)
print(time.strftime("%H:%M:%S",time.localtime(time.time())), ' load realtime observation data success')
except:
print(time.strftime("%H:%M:%S",time.localtime(time.time())),
' load realtime observation data error')
下面的代碼實(shí)現(xiàn)溫度質(zhì)量控制,發(fā)現(xiàn)溫度超出極值、沒(méi)能通過(guò)時(shí)間一致性檢查和空間一致性檢查的疑誤數(shù)據(jù)。
def tempExamine(real_datas, pre_datas):
temp_faults = []
# 溫度極值
temp_extre_min = -30
temp_extre_max = 50
# 五分鐘溫度變化閾值
temp_timechangemax = 2
# 十公里溫度變化閾值
region_max = 10
for real_data in real_datas:
# 極值檢查
if real_data['temp'] > temp_extre_max or real_data['temp'] < temp_extre_min:
temp_faults.append({'stationNum': real_data['stationNum'], 'desc': '溫度超過(guò)極值,可能為錯(cuò)誤值'})
continue
# 時(shí)間一致性檢查
pre_data = [item for item in pre_datas if item['stationNum'] == real_data['stationNum']]
if pre_data and math.fabs(pre_data[0]['temp'] - real_data['temp']) > temp_timechangemax:
temp_faults.append({'stationNum': real_data['stationNum'], 'desc': '五分鐘溫度超過(guò)2℃,可能為錯(cuò)誤值'})
continue
# 空間一致性檢查
around_datas = select_around_stations(real_datas, real_data, 20000)
if around_datas:
around_temps = [item['temp'] for item in around_datas]
around_temp_max = max(around_temps)
around_temp_min = min(around_temps)
if real_data['temp'] > around_temp_max + region_max or real_data['temp'] < around_temp_min - region_max:
temp_faults.append({'stationNum': real_data['stationNum'], 'desc': '溫度與周圍站點(diǎn)差別過(guò)大,可能為錯(cuò)誤值'})
Continue
return temp_faults
2.2.2 小程序?qū)崿F(xiàn)。小程序分為前端和云平臺(tái)兩部分。前端實(shí)現(xiàn)獲取用戶輸入,從云平臺(tái)獲取并展示數(shù)據(jù),實(shí)現(xiàn)在頁(yè)面之間切換。云開(kāi)發(fā)環(huán)境提供了云函數(shù)、數(shù)據(jù)庫(kù)、存儲(chǔ)等基礎(chǔ)功能支持[8]。質(zhì)量控制小程序主要用云環(huán)境的數(shù)據(jù)庫(kù)功能來(lái)保存站點(diǎn)信息和后臺(tái)程序上傳的實(shí)時(shí)觀測(cè)數(shù)據(jù)、整點(diǎn)觀測(cè)數(shù)據(jù)、疑誤數(shù)據(jù)提示信息等,供小程序前端調(diào)用。
3 程序?qū)崿F(xiàn)的功能
3.1 實(shí)時(shí)數(shù)據(jù)查詢頁(yè)面
實(shí)現(xiàn)降水、氣溫、氣壓、風(fēng)向和風(fēng)速、濕度、能見(jiàn)度等氣象要素的圖表、列表、地圖顯示(見(jiàn)圖2);具有統(tǒng)計(jì)功能,能統(tǒng)計(jì)每個(gè)氣象要素的最大值、最小值、平均值和區(qū)間分布,能發(fā)現(xiàn)極端疑誤值,提醒保障人員維修。
3.2 區(qū)域站質(zhì)量控制監(jiān)控頁(yè)面
區(qū)域站質(zhì)量控制監(jiān)控頁(yè)面顯示區(qū)域自動(dòng)氣象站運(yùn)行狀態(tài)和疑誤數(shù)據(jù),提醒保障人員處理故障,具體如圖3所示。
4 結(jié)語(yǔ)
區(qū)域自動(dòng)氣象站的疑誤數(shù)據(jù)影響氣象數(shù)據(jù)的可信度,通過(guò)極值檢查、時(shí)間一致性檢查、空間一致性檢查等,可以有效排除疑誤數(shù)據(jù)。濟(jì)源區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量監(jiān)控小程序使保障人員能隨時(shí)隨地發(fā)現(xiàn)故障站點(diǎn)和疑誤數(shù)據(jù),實(shí)現(xiàn)了最新觀測(cè)數(shù)據(jù)的顯示、查詢和統(tǒng)計(jì)分析,自動(dòng)發(fā)現(xiàn)疑誤數(shù)據(jù),有效提高了發(fā)現(xiàn)、排除區(qū)域自動(dòng)氣象站故障的工作效率,提高了設(shè)備運(yùn)行可靠性、數(shù)據(jù)可用性。
參考文獻(xiàn):
[1]郭麗紅.區(qū)域自動(dòng)氣象站的維護(hù)維修與管理[J].南方農(nóng)業(yè),2014(15):120-121.
[2]張毅.基于微信小程序的圖書(shū)館座位管理系統(tǒng)[J].新世紀(jì)圖書(shū)館,2019(8):62-65.
[3]劉菁,徐遠(yuǎn)遠(yuǎn),馮丹.NET平臺(tái)下區(qū)域自動(dòng)氣象站數(shù)據(jù)質(zhì)量控制研究與實(shí)現(xiàn)[J].氣象與環(huán)境科學(xué),2011(S1):149-152.
[4]白水成,李社宏,周林.自動(dòng)氣象站數(shù)據(jù)質(zhì)量控制體系設(shè)計(jì)[J].陜西氣象,2016(3):42-46.
[5]閆蕎蕎,王海軍,嚴(yán)靖,等.逐時(shí)本站氣壓數(shù)據(jù)分階段空間一致性檢查方法研究[J].氣象與環(huán)境學(xué)報(bào),2018(4):36-44.
[6]劉雨佳,陳洪濱,金德鎮(zhèn),等.加密自動(dòng)氣象站雨量計(jì)資料的質(zhì)量控制及其相關(guān)關(guān)系的研究[J].大氣科學(xué),2014(1):159-170.
[7]何健,王潛梅,錢光明,等.廣東省區(qū)域自動(dòng)氣象站資料的質(zhì)量控制與評(píng)估[J].廣東氣象,2011(3):37-40.
[8]董傲通,文俊浩.基于小程序·云開(kāi)發(fā)的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2019(10):282-284,288.