李耀東
內蒙古自治區新巴爾虎右旗氣象局
氣象地面月報表A0文件的數據庫實現
李耀東
內蒙古自治區新巴爾虎右旗氣象局
本文闡述了氣象數據文件A0的命名規則及結構組成等,包括異常記錄情況,然后以數據庫設計三原則為標準,通過VC++編程語言實現了氣象站氣象數據A0文件的數據存儲。
A0文件;Oracle;存儲
氣象地面月報表A0文件(以下簡稱A0文件)是氣象觀測數據的基本存儲格式,全國通用的格式,這有利于氣象數據的延續和比較,是一種文本文件,統計起來耗時耗力,并時有錯誤發生,不能有效的發揮氣象觀測資料的作用。
用Oracle數據庫來存儲A0文件,從而實現將文本文件的無序讀取轉化為數據庫的有序存儲,實現的過程需要經過數據庫建模、計算機編程等來完成。
氣象數據A0文件的命名規則:如A050425.J01中,A0表示文件類型,50425表示站號,J代表月份,01代表2001年,以此類推,即可獲得全部A0文件。
分析氣象資料存儲的維度,主要是時間維度的設計,例如查詢某日或某時段的相應氣象要素的最小值、、最大值均值等,實現歷史天氣的再現,挖掘氣象要素記錄間的橫向聯系,建立氣象災害虛擬視圖。
根據相應的設計規劃,以氣象臺站和氣象要素來設置數據表,如表T50425表示為的氣溫表,表中記錄為50425多年氣溫資料(表略)。
以氣溫例(圖略),構造了氣溫E-R圖,仿氣溫構造其他氣象要素E-R圖。氣溫E-R圖主要包括站號、日期時間和各時次氣象觀測資料等相應屬性。根據相應的操作在構造操作員實體,并賦予不同的操作權限。設計各氣象臺站實體,主要含各氣象站的一些元信息。
氣象數據與操作人員之間的關系,以及氣象站與操作員的關系(圖略)。
此部分是從“E/R模型”與“關系模型”的轉換,通過轉化,可以得到如下:
1、查詢關系
屬性:區站號,日期等數據
2、隸屬關系
屬性:區站號,操作員名,密要,臺站名等
從無到有,培育墾區新產業。2013年,廣東農墾從保障國家糧食安全的層面考慮,以實施農業農村部農墾局培育本土墾區國際大糧商戰略為己任,成立廣墾糧油,通過實施大項目帶動戰略,兼并重組迅速切入糧油行業,目標是構建涵蓋糧油原料生產、加工、零售服務三大環節于一體的全程產業鏈。為保障城市優質安全食品的供給,糧油產業被列為墾區“十三五”重點支持的優勢產業之一。為了快速切入,2014-2015年期間,廣墾糧油通過并購、增資擴股等方式先后成立了廣墾長晟、廣墾嘉益、東莞新沙實業投資有限公司(簡稱“東莞新沙”)以及廣墾華糧等4家混合所有制企業。
3、氣溫記錄
根據氣象要素表構造,由“區站號+年+月”組成聯合主鍵,數據項部分氣象要素指示碼開頭,記錄一天四個時次(02時、08時、14時、20時)以及最高最低等氣象要素數據,以此類推,記錄各要素數據。
以氣溫為例,實現氣溫導入相應的數據表中,其他氣象要素類似。
月份處理:自建simple函數來提取A0文件中的月份,對月份進行操作(代碼略)。
天數計算:在程序主界面設置相應的時間框,提取月份,自建daycount函數來計算天數,主要是2月份天數的計算(程序代碼略)。
A0文件的數據庫存儲實現核心的設計是數據表及表中字段的設計,其設計的優劣直接影響后期數據查詢等應用,如氣象臺站50425中溫度表t50425的數據字典(表略)所示,存儲的數據要完整記錄本段溫度的發生情況,不能失真,否則無意義。在T50425中一條記錄以日為單位劃分的,一條記錄包括站號、日期時間、各時次氣溫值等,主健是站號+日期時間,避免重復記錄的產生。依次建立每個氣象臺站每個氣象要素的數據表。
數據表設計好以后,為避免操作的越界,對數據表進行相應的操作權限等設計。

{正常記錄}
經判別后,一條完整的氣象要素記錄形成,存入數據庫相應的數據表中。
A0文件通過VC++語言包進行相應的編程,程序運行后將相應的要到存入Oracle數據庫,首先判斷導入時間,其次,逐月打開該站的A0文件,如該A0文件存在就使用openFile函數將氣象要素分別導入各數據表中,直至所有A0文件全部入庫,(程序代碼略)。
自建openFile函數來打開文件進行數據的存儲,這是本次數據存儲的核心程序,該函數依氣象數據A0文件命名規范及記錄規范,依次對各氣象要素的日記錄進行存儲,最終將全部的A0文件實現數據庫的轉存(程序代碼略)。
本文闡述了A0文件的命名規則及結構組成等,包括異常記錄情況,然后以數據庫設計三原則為標準,通過VC++編程語言實現了氣象站氣象數據A0文件的數據存儲。
[1]中國氣象局.地面氣象觀測規范.1979.氣象出版社
[2]劉明吉,王秀峰,黃亞樓.數據挖掘中的數據預處理[J].計算機科學,2000,vol.10,No.4,54-58.