?

基于Web方式的地面自動站逐時氣象要素共享平臺

2012-09-29 05:48符鳳平吳哲紅褚麗君
中低緯山地氣象 2012年6期
關鍵詞:氣象要素控件入庫

符鳳平,吳哲紅,褚麗君

(1.貴州省安順市氣象局,貴州 安順 561000;2.貴州省鎮寧縣氣象局,貴州 鎮寧 561200)

1 引言

根據中國氣象局《2012年地面氣象觀測業務改革調整和試點工作方案》(氣發[2012]15號)的要求,為了適應地面氣象觀測業務改革調整工作,中國氣象局綜合觀測司組織制定了新的《地面氣象要素數據文件格式(V1.0)》,并于2012年3月31日20時起開始執行。自各級地面自動站執行新的要素數據文件格式以來,由于數據文件格式發生較大變化,文件命名和內容格式均與以前有所不同,導致部分氣象業務服務應用軟件無法繼續使用,使氣象業務服務工作受到一定程度的影響。為了解決這一現狀,充分發揮地面自動站氣象要素數據的使用效率,結合本地氣象業務服務需要,對地面自動站氣象要素數據中的國家級站單站文件進行了開發與應用,主要實現該數據的自動入庫、Web顯示與查詢、Excel報表輸出等功能。入庫及補調部分的程序設計采用C/S工作模式,可運行在局域網內任何一臺計算機上,要素顯示與查詢、Excel報表輸出等功能的實現基于B/S方式,程序安裝在Web服務器端,由于工作模式基于B/S方式,操作簡便,維護集中在服務器端。本平臺的開發與實現,對于各級氣象業務、服務及管理部門,均具有一定的參考意義,可在全省范圍內各級氣象部門進行推廣使用。

2 技術方法

2.1 功能簡介

基于省—地—縣氣象光纖通信網和局域網,以Windows 2003服務器操作系統為開發平臺,實現地面自動站逐時氣象要素自動入庫、按月補調、前端顯示、要素查詢、Excel報表輸出等功能。

2.2 要素入庫

基于C/S工作模式,在省—地—縣氣象光纖通信網保持暢通前提下,使用VB編程語言編制而成。將入庫程序運行圖標放入任務欄,使其在后臺自動運行,定時讀取各地面自動站要素入庫。為了防止計算機網絡或設備故障造成資料缺失,實現資料按月補調功能。

2.3 前端顯示、查詢及報表輸出

以Windows 2003服務器操作系統為工作平臺,依托已建成的氣象寬帶通信網絡,采取B/S工作方式,使用ASP編程環境、HTML超文本標識語言、VBScript腳本語言、Dreamweaver網頁設計軟件、SQL Server數據庫等技術開發而成,具有B/S三層邏輯結構,即表示層、應用邏輯層、數據服務層[1]。

其中表示層代表瀏覽器。其工作流程大概如下:在表示層,只要打開瀏覽器,輸入需要訪問的網址,瀏覽器隨即向處于應用邏輯層的Web服務器發出服務請求,Web服務器在對用戶身份進行驗證完畢后,通過HTTP協議把結果傳回瀏覽器端。

應用邏輯層代表Web服務器。其包含系統的事務處理邏輯,接受用戶的請求,執行相應的擴展應用程序與數據庫進行連接,通過SQL等方式向數據庫提出數據處理申請,待數據庫服務器將處理結果提交給Web服務器,再由Web服務器傳送回瀏覽器[2]。這里的 Web服務器采用 Windows Server 2003操作系統。

數據服務層代表數據庫服務器,該層接受Web服務器的操作請求,把運行結果提交給Web服務器。本平臺采用SQL Server數據庫系統,數據庫命名為as_aws,庫中建有dmxx表格,將要讀取的各氣象要素如氣溫、水汽壓等設為數據庫字段,除了年、月、日、時等字段的數據類型設為smallint外,其它字段的數據類型均設為nvarchar。對于數字開頭的數據庫字段如2 min風向、2 min風速等,為了避免數字與文本混淆引起系統出錯,將此類字段加上中括號,即[字段名]。

3 入庫與補調功能的實現

3.1 要素入庫

基于省地氣象光纖通信網和局域網,自動讀取省級服務器上的地面氣象要素數據文件,定時將逐時氣象要素讀取入庫。利用VB定時控件,ADODC控件連接SQL Server數據庫,在一個固定時刻(這里取每小時正點過10 min或20 min),逐個讀取設置站點的氣象要素,每讀一站,即存入數據庫中。資料的讀取主要依據地面氣象要素數據文件格式(V1.0)具體規定,按照本區域臺站級別情況,主要讀取國家級站單站文件,其名稱為Z_SURF_I_IIiii_yyyyMMddhhmmss_O_AWS_FTM[-CCx].txt。國家級站單站文件內容共分為13段,每段占據文件內容1行,主要有:測站基本信息、氣壓數據、氣溫和濕度數據、累計降水和蒸發數據等,每段長度固定。除了第1行測站信息外,其它段都有固定的段標識符,如氣壓數據段的標識符為“PP”,溫度和濕度數據段的標識符為“TH”。定時器讀取要素入庫流程見圖1。

3.2 補調數據

主要實現按月補調功能,設置進度條提示補調進程。事先定義好循環參數,然后使用雙層循環,外層循環將每月的天數作為循環參數,即選擇從每月的第1天開始直到最后1天,內層循環參數使用0~23,代表每天的24個北京時次。由于地面自動站資料文件是按照世界時間命名的,補調每個時次資料前需要事先將北京時轉換為世界時。

圖1 要素入庫流程

4 Web顯示與查詢功能的實現

4.1 Web顯示

采用密碼驗證后即可進入顯示主界面(見圖2)。主界面顯示數據庫中最新時次的各氣象要素,并進行30 s自動刷新。由于要素較多,為了快速瀏覽到應用較多的氣象要素,可將其顏色作特殊標注(如圖中藍色標注)。

將系統讀到的要素最新時間作為參數,經過一定轉換后,分別計算出前一時次和后一時次的具體時間,然后使用參數傳遞命令Request.QueryString即可獲取前后時次,實現氣象要素信息的自動瀏覽。為了簡略程序代碼,主頁顯示、前后時次要素的調用等3個ASP文件中的顯示表格均使用“#include file”語句調用同一個文件。

由于地面氣象要素數據文件經過一定的格式轉換后存放,所以在讀取資料入庫或進行Web網頁顯示前,需要進行一定的格式轉換。當氣象要素缺測時,文件內容被記錄為默認字符串如“////”或“,,,,”,為避免在數值換算或格式轉換過程中出現問題,入庫前首先使用Isnumeric函數對其類型是否為數值進行判斷,然后在Web網頁顯示前使用Formatnumber函數進行格式輸出。如氣溫,入庫前首先判斷讀出的數據是否為數值,若為數值,則將讀出的數據用1 000減去該值后再入庫,否則,將讀出的數據直接添加到數據庫中。進行網頁顯示前,首先判斷檢索數據庫得出的結果是否為數值,若為數值,則將讀出的數據乘以0.1后再使用Formatnumber((rs.Fields.Item("氣溫").Value)*0.1,1,-1)命令進行格式輸出,否則將該值直接顯示。

圖2 Web顯示主界面

4.2 數據查詢

在主頁顯示界面的下方嵌入文本域和列表2個控件,文本域控件實現日期選擇,使用JavaScript腳本語言編制而成,列表控件主要實現時次選擇。同時,將2個控件加入一個表單中,表單提交使用post方式,使用Request.Form命令分別獲取表單中的控件值,如獲取日期使用命令Request.Form("select_date"),其中select_date為日期控件名稱。然后,使用Dateserial函數對獲取的日期文本域表單值進行轉換,即可取得具體的日期。由于數據入庫時間采取世界時,所以在實現網頁顯示前,需要事先進行北京時與世界時的轉換。

5 Excel表格輸出功能的實現

主要實現對各氣象要素的自動選擇性輸出,可全選或少選,輸出格式為Excel文件類型,對話框提示是否保存或是否打開。

5.1 全選功能的實現

為實現Excel輸出選擇界面中全選功能,首先將所有checkbox復選框及button選擇按鈕加入同一個表單,然后使用按鈕的onclick屬性調用一個由JavaScript腳本語言編制而成的自定義函數,函數代碼如下:

5.2 數據庫查詢字段變量的生成

實現Excel文件輸出時,為了獲取用戶隨機選擇要素形成的數據庫查詢字段變量,首先將所有checkbox復選框的 name屬性設為 checkbox,value屬性設置為相應的數據庫字段(不能有誤,否則會造成讀取數據庫失敗),如輸出實時氣溫,則復選框的value值設為數據庫中的“氣溫”字段。

利用表單Form進行提交參數傳遞,除使用Request.QueryString獲取日期參數外,還使用Request("checkbox")命令獲取復選框控件值。默認獲取的復選框控件值是由一組逗號隔開的字符串,為了提取到具體的數據庫查詢字段變量,首先使用split函數取出由逗號隔開的各復選框值,形成數組變量ar,在取出的復選框值后面加上逗號,去除最右邊的逗號后,形成數據庫查詢字段變量sql2,然后使用"select"+sql2+"from dmxx where…”語句檢索出選擇的氣象要素資料,其主要代碼如下[3]:

5.3 Excel文件輸出

寫入Excel文件前,首先定義好表格格式,再先后寫入經過復選框選擇后檢索的數據庫字段名和對應值。表格格式主要作以下定義:定義頁面使用字符集為國標漢字碼gb2312,網頁輸出類型為Excel表格,輸出的Excel表格文件名,Excel表格的單元格類型為文本。

向Excel單元格填入檢索后的氣象要素時,對于不需作格式轉換的字段,直接將其值填入Excel單元格。需作格式轉換的字段,使用Select Case語句對字段名作出判斷后再進行轉換。如對時間類型的字段,數據庫存放采用的是世界時,輸出到Excel文件時,將其轉換為北京時。

對于其它數據庫字段,格式轉換方法與網頁顯示時的方法相似,分別使用Isnumeric函數和formatnumber函數判斷其內容類型和格式化輸出。

6 結語

系統結合C/S和B/S兩種工作模式,分別實現了地面自動站逐時氣象要素的入庫、顯示、查詢與Excel表格輸出等功能。地面自動站資料的Web共享實現,由于操作簡便、客戶端無需任何軟硬件安裝的特點,使其面向的用戶范圍較廣,在天氣預報業務、氣象服務、業務管理或其它領域,均有一定的應用價值。正是因為這一點,系統在數據庫結構設計、功能規劃、安全穩定等方面,需要作重點考慮。

通過基于B/S模式的地面自動站氣象要素共享平臺,可實現的功能比較豐富,如可添加統計、圖形、地圖等功能,還可采用WEBGIS(萬維網地理信息系統)技術,將地面自動站氣象要素的各種功能通過使用Web地理信息系統來實現,使地面自動站氣象要素的應用更加深入。本文僅以部分功能為例,闡述其相關技術與實現方法。

[1]鄧文淵,陳惠貞,陳俊榮.ASP與網頁數據庫設計[M].北京:中國鐵道出版社,2004.

[2]羅銳韌.ASP網頁程序設計[M].北京:清華大學出版社,2005.

[3]何薇,舒后.網絡數據庫技術與應用[M].北京:清華大學出版社,2009.

猜你喜歡
氣象要素控件入庫
重磅!廣東省“三舊”改造標圖入庫標準正式發布!
成都電網夏季最大電力負荷變化特征及其與氣象要素的關系
中國食品品牌庫入庫企業信息公示②
中國食品品牌庫入庫企業信息公示①
基于.net的用戶定義驗證控件的應用分析
關于.net控件數組的探討
河蟹養殖水溫預報模型研究
探測環境變化對臨沭站氣象要素的影響
身臨其境探究竟 主動思考完任務——《倉儲與配送實務》入庫作業之“入庫訂單處理”教學案例
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合