李新慶,王 凡,張 智,衛建國
(1. 中國氣象局旱區特色農業氣象災害監測預警與風險管理重點實驗室,寧夏 銀川 750002;2. 寧夏氣象防災減災重點實驗室,寧夏 銀川 750002)
氣象數據作為氣象行業的重要資產之一,對氣象預報、公眾服務、氣候預測、氣象防災減災等起著極其重要的支撐作用。根據統計,國家級存儲的各類氣象數據總量約26PB,分鐘級、秒級自動觀測數據的海量涌進,至2020年全國氣象數據資源需求將達到 200PB[1]。在眾多氣象數據和產品中,地面氣象觀測數據作為最基礎、最重要的基礎數據,例如,氣溫、降水、相對濕度、風等氣象要素,是氣候預測、雷達與衛星定標、水文設計、農業決策的重要參考[2],其重要性不言而喻。
然而,由于受到觀測設備、觀測技術、測站位置、通信傳輸、加工處理算法、解析入庫和歷史歸檔等多個環節、多種原因的影響[3-4],造成氣象數據普遍存在質量問題,尤其是長期觀測形成的歷史地面氣象觀測資料,其數據質量也存在諸多問題。主要概括如下,各業務部門獲取的氣象數據仍然存在數據質量不高,其數據準確性、完整性、一致性、時效性均存在不足因素,導致業務用戶所獲取的數據不易用、不可用、不敢用的現象發生,阻礙氣象業務現代化步伐,成為邁入“智慧氣象”的絆腳石。因此,迫切需要對氣象數據的質量進行評估,為數據質量改善提供理論依據。
隨著大數據和云計算技術的發展,關于數據質量相關研究一度成為熱點問題,尤其是針對數據完整性評估,部分專家也相繼開展相關研究工作。許瑋[5]選用選取湖北、江西、安徽三省地面、輻射、高空等3類資料的觀測數據進行數據完整性評估,發現地面資料中小時值、日值、旬值、月值、年值均存在數據不完整情況。沈文海[6]從數據質量控制的角度闡述數據正確性管理的概念,包括氣象數據的正確性、一致性和完整性管理,提出數據序列完整性不足的問題,該類數據一旦投入業務應用,會對各類業務產品造成較大影響。除此之外,劉永楠[7]、徐光偉[8]、楊同豪[9]、楊永強[10]等學者也從大數據的角度開展了數據完整性檢驗評估方法,均取得一定的進展。
本文工作主要分為三個部分:首先,簡單介紹氣象數據質量相關概念,研究制約數據質量的一個重要指標——數據完整性,采用寧夏氣象數據庫作為本文數據完整性評估和可視化實現的研究數據集;其次,針對省級數據存儲環境中地面基礎氣象資料,研究歷史小時、歷史日數據完整性評估問題,初步確立完整性評估指標和約束方法,并對評估結果進行仿真實驗,為補錄歷史數據集提供理論依據;最后,結合寧夏智能化綜合氣象業務服務共享管理平臺總體框架中對未來數據服務的需求,針對數據完整性進行可視化分析應用,同時結合大數據可視化技術,為氣象行業用戶提供一種具體的數據完整性可視化方案,增強數據應用服務能力。
因為氣象業務對數據有著天然的依賴性和敏感性[11],所以氣象部門對氣象數據的質量始終保持高度關注。數據質量問題覆蓋省級數據存儲環境建設的各個環節,僅從數據流程來看,包括數據采集、加工處理、解析入庫等[12]。針對上述環節,數據質量評估是提高數據服務質量的基礎和必要前提,它可以幫助用戶了解整體數據存儲環境的數據質量水平,并為后續數據存儲環境的完善和進一步優化提供理論依據。
大量文獻針對數據質量問題凝練出關鍵的評估指標[13-16],概括來說,數據質量采用以下5個特征進行描述:①數據一致性(Consistency):指同一實體的同一屬性值在不同數據集中是否一致;②數據完整性(Completeness):指數據集中的數據是否存在缺失情況;③數據準確性(Accuracy):指數據集中的數據是否與其對應的客觀實體特征保持一致;④數據唯一性(Uniqueness):指數據集中的數據是否存在重復記錄;⑤有效性(Validity):指數據集中的數據是否在一定界限值范圍內或者依賴于某種約束規則。
其中,數據完整性是衡量數據質量的重要指標之一,在數據存儲環境建設工作中顯得尤為重要,它是指數據相對于所描述客觀世界的完整程度[17],同時也是衡量其他指標的基礎,用于度量數據集中數據丟失或者數據不可用的問題。由于氣象觀測數據的客觀性,本文在進行數據完整性評估時,剔除了由于缺測、不觀測造成的數據完整性不足的現象[18],僅從數據不為空或在時間序列不連續方面進行評估。
寧夏氣象綜合數據庫致力于在寧夏氣象行業內部整合多源數據采集、加工、存儲、共享服務等功能,為氣象行業用戶提供統一標準的氣象數據存儲環境,同時針對原有全國綜合氣象信息共享系統(China Integrated Meteorological Information Service System,CIMISS)中存儲和共享功能進行省級橫向擴展,解決各級氣象業務和管理用戶的數據共享和一站式在線服務[19]。歸納起來,寧夏氣象綜合數據庫主要存儲地面、高空、輻射、雷達、衛星、大氣環流與海洋、農氣、大氣成分、數值預報等146類、5832種明細的基礎數據,時間序列包括歷史小時數據、歷史日數據資料等。
目前,氣象綜合數據庫基本滿足了省級氣象數據的標準存儲和行業應用,能夠為寧夏智能化綜合氣象業務服務共享管理平臺提供數據支撐。但在氣象資料應用過程中,逐漸暴露出地面氣象數據完整性、準確性不足等突出問題,制約了多源氣象資料在特色農業氣象災害監測中的應用與研究。
本文選用寧夏氣象綜合數據庫中地面歷史小時、歷史日數據作為實驗數據集。其中,歷史小時數據表存儲了國家站、區域站小時數據共計 12.31億條,存儲氣象要素 43種。歷史日數據表存儲了國家站、區域站數據共計0.59萬條,存儲氣象要素45種。
小時數據完整性評估數據集,時間范圍從2003年1月1日至2017年12月31日為止,氣象要素包括氣溫、降水、氣壓、相對濕度、風、地溫共6種常規氣象要素;由于2003年以前的氣象數據為人工定時觀測,故未包含在本文的評估范圍內。日數據完整性評估數據集,時間范圍從1951年1月1日開始至2017年12月31日為止,氣象要素包括氣溫、降水量、氣壓、風、相對濕度共5種常規氣象要素。
針對海量關系數據中普遍存在的數據質量完整性不足的問題,文獻[20]描述了數據完整性評估方法,結合地面氣象數據的相關特點,采用屬性完整性進行逐氣象要素度量,其算法描述如下:針對數據集中任意關系 R ( N, M ),N和M分別表示關系數據庫中的 N條元組,M個屬性 A0, A1, … ,Am,,m∈(0,M - 1 ),對于R中任意元組t和屬性A,屬性值 t[ A]的完整性記作 CAC(t[ A]) = μ(t[ A])。其中,μ是一個抽象的度量函數,采用μ(t[ A])對數據完整性進行評估。在本文中,若 t[ A]為空,則表示 t[ A]是缺失的,否則,表示是完整的,采用函數度量如下:

針對數據完整性評估,采用文獻[21]中公式描述如下:

其中,rC表示數據集的記錄數,qdC 表示數據集元數據定義的數據項個數,sC表示數據集中缺少數據項的個數,N表示數據集的個數。
輸入:針對逐小時資料中氣溫、降水、氣壓、相對濕度、風、地溫共6種氣象要素,逐日資料中氣溫、降水量、氣壓、相對濕度、風共5種氣象要素作為輸入屬性,分別得出不同氣象要素的數據完整性評估結果。
輸出:R的完整性 CRC(R ),R的缺測率 MRC(R),R的不觀測率為 NRC(R)。
計算過程的偽代碼如下所示:
1. Count_null=0 //記錄非完整性值的個數
2. Count_Miss=0 //記錄要素中缺測的個數
3. Count-noObs=0 //記錄要素中不觀測或無數據個數
4. for i=1 to N do
5. for m=1 to M do
6. if(ti[ Am]==null or ti[ Am] ==””) do
7. Count_null=Count_null +1
8. elseif(ti[ Am]==99999)
9. Count_Miss=Count_Miss+1
10. elseif(ti[ Am]=99998)
11. Count_noObs=Count_noObs+1
12. else
13. pass
14.
15. return (round(((m*N-Count_null)/m*N)*100,2),
/m*N)*100,2),round((Count_noObs/m*N)*100,2))

圖1 小時數據完整性評估結果Fig.1 Results of historical hourly data integrity assessment
針對數據集中歷史逐小時數據中6種常規氣象要素進行完整性評估,實驗結果如圖1所示。自2015年至2017年,歷史逐小時數據的數據完整性存在部分數據缺失的情況,缺失原因主要是2015年前數據均采用歷史歸檔資料進行解析入庫,保證數據完整性的要求,自2015年后,逐小時數據均采用程序自動入庫,由于受到自動觀測的復雜性、時效性等因素影響[22],造成氣象要素缺失情況較多。
針對數據集中歷史逐日數據中5種常規氣象要素進行完整性評估,實驗結果如圖2所示。從總體情況來看,歷史逐日氣象數據完整性總體較好,因為部分日數據采用歷史逐小時數據加工計算而成,因為逐小時數據完整性不足,所以導致從2009年至2017年期間存在部分日數據缺失的情況,影響歷史日數據的完整性。

圖2 日數據完整性評估結果Fig.2 Results of historical daily data integrity assessment
氣象數據具備時間序列數據的基本特征,尤其是針對地面氣象觀測數據,其產生的各類要素均與時間因素密切相關。因此,本文參考現有的大數據可視化技術[23-26],采用時間序列數據可視化方法,從時間和數據兩個角度描述歷史逐小時氣象數據的完整性,并將數據完整性評估結果在寧夏綜合氣象數據庫管理系統中進行應用,為氣象行業用戶提供良好的數據服務體驗。
時間序列可視化技術屬于文本可視化的范疇[27-28],常常被用于數據分析、數據挖掘和計算機圖形學中,為用戶揭示數據變化規律。常用的時間序列可視化方法概括來說,主要包括折線圖、散點圖、樹圖、熱力圖、桑基圖和螺旋圖等[29],不同的可視化方法適用于不同特性的數據[30]。
根據寧夏氣象綜合數據庫中地面氣象逐小時、逐日數據完整性評估結果來看,采用基于樹圖和日歷圖的可視化方法能夠直觀反映氣象數據完整性評估的應用成果。應用主要分為兩個步驟:首先,用戶根據不同觀測站點情況,選擇任意時間段的氣象要素,查看不同年份對應的數據完整性評估結果;其次,若發現某個年份數據完整性不足,則用戶可根據年、月、日時間維度進行逐級展開,直觀查詢不同氣象要素的數據完整性評估結果。圖3采用樹圖進行展示應用,圖4采用日歷圖進行展示應用。

圖3 樹圖應用評估界面Fig.3 Application evaluation interface using treemap

圖4 日歷圖應用評估界面Fig.4 Application evaluation interface using calendar
數據完整性是衡量數據質量的一個重要指標,作為氣象業務、服務和部門決策的支撐系統,寧夏氣象綜合數據庫中存在部分數據缺失、為空等完整性不足的問題,影響用戶的使用效果。因此,為反映出地面歷史逐小時資料中各要素的真實存儲情況,本文采用完整性精確評估算法和大數據可視化技術對氣象要素進行評估,得出歷史氣象數據較為真實的完整性評估結果,為氣象行業用戶在使用氣象數據時提供判斷依據。同時,為后續省(區)級數據環境中數據集的完善建設提供理論指導。