陳麗麗
(1. 同濟大學 上海 200092;2. 天津市武清區氣象局 天津 301700)
天津市武清區地處京津之間,位于京津之間大氣污染物傳輸的主要通道,屬于多霧地區,具有獨特的氣象場和特殊的空氣污染特征,研究該區大氣污染特征以及氣象條件導致的污染物輸送,對于北京和天津區域大氣污染的形成和大氣污染物輸送具有重要意義。自 2006年夏季開始,中國環境科學院大氣環境研究所、北京大學大氣物理學院、中國氣象科學研究院等科研機構和大專院校陸續在武清區氣象局固定開展野外氣象以及大氣污染物綜合觀測,并取得了大量具有一定參考價值的觀測、實驗數據。隨著政府和公眾對大氣環境問題的關注,大氣環境監測變得愈加重要,其現代化程度也成為實現氣象現代化的關鍵節點。隨著業務開展必將產生大量的觀測和科學實驗數據。因此,為了使多年來取得的各項觀測數據得到有效保存,方便科研人員使用,發揮其重要的科學價值,需要開發建設一套武清區大氣環境綜合觀測數據管理平臺。
在武清大氣環境綜合觀測站近 1年的觀測基礎上,開發一套完善的數據庫管理系統和監控顯示平臺,實現對環境數據的現代化管理。主要功能包括:觀測數據自動入庫、存儲與調用,人機交互式質量控制,統計分析模塊以及在線查詢、顯示和下載等。
收集武清大氣環境綜合觀測方面所有觀測、實驗數據,分析各類數據的采集方式和存儲格式,建立大氣環境綜合觀測數據庫,并開發數據入庫軟件,實現數據的自動入庫,同時開發武清大氣環境綜合觀測數據管理平臺,實現歷史數據和實時數據的查詢與顯示、質量控制、數據管理和下載等功能。

圖1 系統部署圖Fig.1 System deployment
整個系統由多臺機器組成一個局域網。系統部署在服務器上,數據庫既可以部署在系統服務器上,也可以單獨部署在另外一臺服務器上。
軟件采用先進的技術理念和實現方法。軟件設計結構采用MVC的標準3層架構,如圖3所示。
在表現層,頁面內容劃分采用DIV+CSS方式,拋棄了傳統的表格布局方式,在頁面操作上,選用了目前最先進的腳本框架JQuery,并大量采用AJAX技術。
在邏輯層,采用 SpringMVC,使用注入和面向切面(AOP)編程的方式,大大增強了整個系統代碼的靈活性,有效支持了面向服務的編程理念。
在實體層,采用具備跨數據庫功能的 Hibernate框架,有效減少了冗余數據庫操作代碼,提高了代碼效率。
此外,軟件采用 SpringMVC和 Hinbernate的最新版本,減少了這兩個框架傳統上繁雜的配置文件,而采用標注(Annotation)的方式,使代碼更為簡潔、高效。

圖2 整體功能結構Fig.2 Overall functional structure

圖3 技術架構圖Fig.3 Technical architecture
在開發方法上,采用敏捷開發模式,開展快速原型和迭代開發。采用多個迭代周期的模式,先選擇一小部分具有代表性的功能進行開發,讓用戶能快速體驗到系統的最終使用效果,進而提出修改,再進行第二輪的修改和迭代。
4.1.1 ACCESS數據錄入
①標識
ACCESS_DATA_INPUT
②用例的參與者與發起者
用例發起者為系統計劃任務;用例參與者為數據庫。
③功能概述
系統程序根據各類數據文件名和采集文件規則解析錄入。
④主事件流
確保網絡連通,然后運行系統程序;系統數據錄入提示錄入成功或者失敗。
⑤異常流
數據庫無法正常連接,彈出“數據庫”無法連接提示框;有重復數據時,不會重復錄入。
⑥前提條件和后置條件
前提條件為數據庫正常連接;后置條件為數據錄入。
4.1.2 TXT數據錄入
①標識
TXT_DATA_INPUT
②用例發起者和參與者
發起者是系統計劃任務;參與者為數據庫。
③功能概述
根據配置文件,系統實時采集數據、解析及計算,錄入數據庫相應表。錄入程序會根據各類數據的文件名和采集文件規則解析錄入。
④主事件流
配置路徑,啟動系統程序;如果錄入過程中有錯誤,記錄日志,并繼續向下錄入。
⑤子事件流
在啟動前,可以先測試數據庫連接。
⑥異常流
錄入中斷。
⑦前提條件和后置條件
前提條件為網絡連接正常;后置條件為數據錄入。
4.2.1 實時數據查詢(見圖4)
①標識
REALTIME_SEARCH
②用例發起者和參與者
登錄后用戶是用例發起者,用例參與者是數據庫。
③功能概述
系統根據服務器的系統時間以及用戶操作確定查詢條件(如前一時次、觀測時間、后一時次等),然后系統自動查詢,顯示查詢結果。
④主事件流
用戶登錄;選擇數據查詢下的實時數據;顯示形式(柱狀立體圖);到數據錄入數據庫中檢索數據信息;顯示查詢結果;可以查詢污染物濃度限值。
⑤異常流
數據庫中沒有相應時刻的數據,界面顯示無數據信息。
⑥后置條件
查詢結果顯示。

圖 4 實時數據查詢示意圖Fig.4 Schematic diagram of realtime data query
4.2.2 歷史分鐘數據查詢(見圖5)
①標識
MINUTE_SEARCH
②用例發起者和參與者
此用例的發起者是認證用戶;參與者是數據庫。
③功能概述
查詢分鐘歷史數據,時間間隔為6,h以內。
④主事件流
用戶登錄;選擇數據查詢→歷史數據→分鐘數據;顯示形式,數據圖形(折線圖、柱狀圖、散點圖)和數據表;到數據錄入數據庫中檢索數據信息;顯示查詢結果。
⑤異常流
數據庫中沒有相應的數據,則在界面上提示無數據信息。
⑥后置條件
查詢結果顯示。

圖5 3分鐘數據查詢示意圖Fig.5 Schematic diagram of 3 min data query
4.2.3 小時均值查詢(示意圖見圖6)

圖6 4小時均值數據查詢示意圖Fig.6 Schematic diagram of 4,h mean value data query
①標識
HOUR_SEARCH
②用例發起者和參與者
此用例的發起者是認證用戶;參與者是數據庫。
③功能概述
查詢小時均值歷史數據,時間間隔為72,h以內。
④主事件流
用戶登錄;選擇數據查詢→歷史數據→小時均值數據;顯示形式,數據圖形(折線圖、柱狀圖、散點圖)和數據表;到數據錄入數據庫中檢索數據信息;顯示查詢結果。
⑤異常流
數據庫中沒有相應的數據,則在界面上提示無數據信息。
⑥后置條件
查詢結果顯示。
系統日均值、月均值、年均值數據查詢與此類似。
4.3.1 標識
DATA_DOWNLOAD
4.3.2 用例發起者和參與者
數據操作員是用例發起者。
4.3.4 功能概述
下載統計分析后的分鐘數據、小時均值數據、日均值數據、月均值數據和年均值數據。
4.3.5 主事件流
用戶登陸;選擇數據下載;選擇數據類型、起始時間、結束時間等條件;點擊生成下載文件,顯示可下載數據條目;選擇數據,點擊下載;生成所選數據的下載的文檔(Excel)。
4.3.6 子事件流
當選擇不同時間(均值)時,起始時間和結束時間精確度做相應調整。
4.3.7 異常流
沒有相應的數據可供下載,則提示沒有數據。
4.3.8 前提條件
統計分析數據已生成。
4.3.9 后置條件
數據下載。

圖7 數據下載示意圖Fig.7 Schematic diagram of data downloading

圖8 預報產品頁面Fig.8 Page of a NWF product
4.4.1 標識
FORECAST_PRODUCE
4.4.2 用例發起者和參與者
認證用戶是用例發起者和參與者。
4.4.3 功能概述
預報產品信息顯示,柱狀立體圖和表格兩種形式。
4.4.4 主事件流
用戶登錄,點擊預報產品;顯示預報產品信息。
4.4.5 后置條件
預報產品顯示。
4.5.1 值班記錄錄入(見圖9)
①標識
DUTY_INPUT
②用例參與者與發起者
用例發起者是認證用戶,參與者是數據庫。
③功能概述
值班人員記錄值班信息。
④主事件流
值班人員登錄系統;選擇值班記錄錄入,確認時間(日);填寫儀器運行情況、有無更換維修和天氣情況等信息;保存值班記錄。
⑤后置條件
當日值班記錄信息錄入系統。

圖9 值班記錄錄入示意圖Fig.9 Schematic diagram of duty record inputting
4.5.2 值班記錄查看(見圖10)
①標識
DUTY_VIEW
②用例發起者和參與者
認證用戶是用例發起者,用例參與者是數據庫。
③功能概述
用戶按日查詢值班記錄。
④主事件流
用戶登錄;導航到值班管理模塊;選擇值班記錄查詢;輸入查詢條件,并點擊查詢;自動獲取數據上傳情況;顯示所選日期的值班記錄信息。
⑤前提條件
當日值班記錄已經填寫。
⑥后置條件
值班記錄顯示。

圖10 值班記錄查看示意圖Fig.10 Schematic diagram of duty record query
4.6.1 用戶注冊管理(見圖11)
①標識
USERMGT_REG
②用例發起者和參與者
用例的發起者為認證用戶。
③功能概述
用戶注冊,填寫級別信息,等待管理員審批。
④主事件流
用戶訪問網站,選擇用戶注冊;填寫用戶注冊基本信息;提交注冊信息。
⑤子事件流
在“填寫用戶注冊基本信息”時,點擊取消按鈕,取消注冊。
⑥異常流
注冊用戶名稱已經存在,無法注冊。
⑦后置條件
用戶注冊信息已經提交。

圖11 用戶注冊示意圖Fig.11 Schematic diagram of user registration
4.6.2 用戶級別(角色)設置(見圖12)
①標識
USERMGT_ROLE
②用例發起者與參與者
系統管理員是用例發起者,數據庫是用例參與者。
③功能概述
系統管理員為已注冊用戶分派更高級的權限。
④主事件流
管理員登陸;選擇用戶級別設置;顯示所有用戶/級別;為用戶分派權限;顯示分派后的結果。

圖12 用戶級別設置示意圖Fig.12 Schematic diagram of user level setting
4.6.3 級別權限設置(見圖13)
①標識
PRI_SET
②用例發起者和參與者
用例發起者是系統管理員,參與者是數據庫。
③功能概述
設置用戶級所能具有的功能,功能點是按照菜單分步。
④主事件流
用戶登陸;選擇用戶管理>級別權限設置;選擇需要修改權限的用戶;為此用戶選擇功能點;點擊確認保存結果。
⑤子事件流
點擊取消,不再修改。
⑥前提條件
已經存在用戶。
⑦后置條件
用戶級別的權限被修改。

圖13 級別權限設置示意圖Fig.13 Schematic diagram of permission setting
4.6.4 用戶登錄
①標識
USR_LOGIN
②用例發起者和參與者
未認證用戶是發起者,參與者是數據庫。
③功能概述
用戶輸入賬戶和密碼,系統驗證后,用戶登錄。
④主事件流
用戶輸入賬戶和密碼;系統與數據庫中的賬戶與密碼驗證;驗證通過;將登錄成功的信息記錄日志;獲取用戶級別;跳轉到改用戶級別對應的登錄頁面。
⑤子事件流
驗證不通過,則提示用戶登錄失敗,保持在原有界面。
⑥異常流
無法連接數據,提示數據庫連接失敗。
⑦界面要求
包含賬戶和密碼的輸入框;普通頁面響應時間應在 4,s之內。
該平臺實現了武清大氣環境相關觀測數據的智能化管理,確保了科研數據安全管理和使用,有效降低了管理成本和使用風險,同時為科研人員提供了更多的數據信息和資源,提高了基層氣象局的科技創新能力,并通過項目開發進一步提高青年技術人員的科技實踐意識和科技研發能力,帶動業務工作整體發展。■
[1] 耿建軍. 基于 C﹟技術的氣象資料分析與服務產品制作軟件設計與實現[J]. 氣象科技,2013,41(4):648-651.
[2] 丁蕾,孟祥飛,張育萍. 交通氣象指數預報軟件的設計與應用[J]. 電子技術與軟件工程,2014(10):117-119.
[3] 馬占良. 三種氣象繪圖軟件及自動化制圖比較分析[J]. 青海氣象,2008(增):137-141.