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