高凌峰 趙婷婷 胡小康 楊冰 王雪瑩 白志娜
摘 要:以.NET、c#和MySQL數(shù)據(jù)庫技術(shù)為依托,建立基于CIMISS的遼陽地區(qū)中央指導(dǎo)報(bào)數(shù)據(jù)下載入庫軟件,該軟件由數(shù)據(jù)下載模塊、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)入庫模塊和定時(shí)任務(wù)模塊構(gòu)成。各模塊相對(duì)獨(dú)立,提高了該軟件的穩(wěn)定性、安全性和可維護(hù)性。通過使用CIMISS數(shù)據(jù)系統(tǒng)的C#客戶端接口定時(shí)下載中央指導(dǎo)報(bào)文本文件,文件解碼后寫入本地MySQL數(shù)據(jù)庫,使數(shù)據(jù)查詢更加方便快捷和歷史資料的保存,為遼陽預(yù)報(bào)水平的提高積累資料。
關(guān)鍵詞: CIMISS; 中央指導(dǎo)報(bào);MySQL;數(shù)據(jù)庫
中央指導(dǎo)報(bào)是中央氣象臺(tái)對(duì)市級(jí)城鎮(zhèn)預(yù)報(bào)的指導(dǎo),是市級(jí)氣象部門城鎮(zhèn)預(yù)報(bào)的一項(xiàng)重要參考產(chǎn)品,中央指導(dǎo)報(bào)數(shù)據(jù)的及時(shí)、穩(wěn)定和準(zhǔn)確對(duì)每日城鎮(zhèn)預(yù)報(bào)很有意義,中央指導(dǎo)資料的存儲(chǔ)和歷史資料歸檔對(duì)市級(jí)氣象部門對(duì)中央指導(dǎo)產(chǎn)品的檢驗(yàn)、預(yù)報(bào)經(jīng)驗(yàn)總結(jié)至關(guān)重要。因此一個(gè)及時(shí)、穩(wěn)定的產(chǎn)品獲取渠道和方便、快捷、穩(wěn)定的存儲(chǔ)方式至關(guān)重要。
國家綜合氣象信息共享系統(tǒng),簡稱CIMISS,遼寧省CIMISS與2017年建設(shè)完成并投入業(yè)務(wù)使用,該系統(tǒng)信息數(shù)據(jù)是由遼寧省信息服務(wù)中心維護(hù),數(shù)據(jù)入庫問題維護(hù)更加及時(shí),而衛(wèi)星小站數(shù)據(jù)是由本市信息保障部門進(jìn)行維護(hù)存在維護(hù)不及時(shí)和數(shù)據(jù)解碼滯后等問題,所以本軟件選用更加及時(shí)穩(wěn)定的CIMISS來獲取中央指導(dǎo)報(bào)數(shù)據(jù)。
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。因?yàn)槠渌俣瓤?、可靠性搶和適應(yīng)性好,該軟件選取MySQL數(shù)據(jù)庫作為中央指導(dǎo)報(bào)數(shù)據(jù)存儲(chǔ)服務(wù)器。
1遼陽地區(qū)中央指導(dǎo)報(bào)數(shù)據(jù)下載入庫軟件總體結(jié)構(gòu)
軟件設(shè)計(jì)框架如圖1,由中央指導(dǎo)報(bào)數(shù)據(jù)下載模塊、MySQL數(shù)據(jù)存儲(chǔ)系統(tǒng)、中央指導(dǎo)報(bào)數(shù)據(jù)解碼入庫模塊和定時(shí)任務(wù)模塊構(gòu)成。
2遼陽地區(qū)中央指導(dǎo)報(bào)數(shù)據(jù)下載入庫軟件模塊設(shè)計(jì)
2.1中央指導(dǎo)報(bào)數(shù)據(jù)下載模塊設(shè)計(jì)
氣象數(shù)據(jù)統(tǒng)一訪問接口(MUSIC),是基于全國氣象綜合信息共享平臺(tái)的(CIMISS)的數(shù)據(jù)環(huán)境。利用其面向氣象業(yè)務(wù)和科研提供的標(biāo)準(zhǔn)的C#應(yīng)用程序編程接口,通過使用下載服務(wù)的文件的方法(callAPI_to_downFile)將中央指導(dǎo)報(bào)數(shù)據(jù)接口(getSevpFileByTime)的文本文件下載到本地。當(dāng)任務(wù)任務(wù)完成時(shí)返回值為1。具體代碼如下。
String userId = "*********";//
String pwd = "********";//
String interfaceId = "getSevpFileByTime";
Dictionary
{
{ "dataCode", "SEVP_WEFC" },
{ "times", timefordata }
};
String saveDir = Application.StartupPath + @"\中央指導(dǎo)報(bào)";
RetFilesInfo retFilesInfo = new RetFilesInfo();
client.initResources();
int rst = client.callAPI_to_downFile(userId, pwd, interfaceId, params1, saveDir, retFilesInfo);
2.2 MySQL數(shù)據(jù)存儲(chǔ)系統(tǒng)設(shè)計(jì)
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。因?yàn)槠渌俣瓤?、可靠性?qiáng)和適應(yīng)性好,該軟件選取MySQL數(shù)據(jù)庫作為中央指導(dǎo)報(bào)數(shù)據(jù)存儲(chǔ)服務(wù)器。
通過C#,利用SQL語句新建庫“l(fā)yqxt”,并在庫中建立表“中央指導(dǎo)報(bào)”。并根據(jù)中央指導(dǎo)報(bào)文本文件格式建立列標(biāo),依次為預(yù)報(bào)時(shí)效站號(hào),溫度,濕度,風(fēng)向,風(fēng)速,氣壓,降水量 ,總云量,低云量,天氣現(xiàn)象,能見度,最高氣溫,最低氣溫,最大濕度,最小濕度,24小時(shí)降水,12小時(shí)降水,12小時(shí)總云量,12小時(shí)低云量,12小時(shí)天氣現(xiàn)象,12小時(shí)風(fēng)向,12小時(shí)風(fēng)速。為了避免重復(fù)入庫和提高檢索效率,定義“預(yù)報(bào)時(shí)效站號(hào)”列為主鍵和索引。
2.3中央指導(dǎo)報(bào)數(shù)據(jù)解碼入庫模塊設(shè)計(jì)
中央指導(dǎo)報(bào)文本文件中存儲(chǔ)了全國2599個(gè)國家站未來168小時(shí)內(nèi)的城鎮(zhèn)預(yù)報(bào)結(jié)論,其中包含遼陽地區(qū)三個(gè)國家站,站號(hào)依次為54345、54347、54348。該模塊利用C#語言將下載到本地的中央指導(dǎo)報(bào)文本文件讀入內(nèi)存并從其中檢索出上述三站的全部預(yù)報(bào)產(chǎn)品,以字符串形式寫入一維字符串?dāng)?shù)據(jù)內(nèi)。當(dāng)提取完全部站點(diǎn)信息后將中央指導(dǎo)報(bào)產(chǎn)品數(shù)據(jù)批量寫入MySQL中央指導(dǎo)報(bào)數(shù)據(jù)庫。
2.4定時(shí)任務(wù)模塊設(shè)計(jì)
中央指導(dǎo)產(chǎn)品每日兩次分別在1:00和14:00左右寫入CIMISS數(shù)據(jù)系統(tǒng),數(shù)據(jù)源穩(wěn)定但寫入時(shí)間每日會(huì)有所不同,為了保證第一時(shí)間獲取到中央指導(dǎo)產(chǎn)品,該軟件定義DataTable格式全局變量dt進(jìn)行任務(wù)存儲(chǔ),存儲(chǔ)信息依次為任務(wù)時(shí)間、任務(wù)類型、數(shù)據(jù)名稱、時(shí)間特征、循環(huán)特征五項(xiàng),為了增加人機(jī)交互性能選取dataGridView控件來直觀顯示dt內(nèi)存儲(chǔ)的任務(wù)信息。
添加timer控件,并定義interval屬性為1000以實(shí)現(xiàn)每秒進(jìn)行一次任務(wù)判斷。通過對(duì)系統(tǒng)時(shí)間與任務(wù)時(shí)間進(jìn)行比較,當(dāng)系統(tǒng)時(shí)間大于任務(wù)時(shí)間時(shí)執(zhí)行中央指導(dǎo)報(bào)文本下載模塊,如果下載成功執(zhí)行入庫模塊并更新任務(wù)信息為下次任務(wù)的信息,反之如果下載失敗則等待下次任務(wù)判斷。當(dāng)任務(wù)超過規(guī)定時(shí)效未完成此次任務(wù),循環(huán)特征標(biāo)記為一次并形成下次下載任務(wù)。
3小結(jié)
隨著計(jì)算機(jī)水平的發(fā)展,數(shù)值模式產(chǎn)品發(fā)展迅速,一款穩(wěn)定準(zhǔn)確的模式產(chǎn)品對(duì)市級(jí)預(yù)報(bào)員的參考意義重大,中央指導(dǎo)報(bào)是中國氣象局下發(fā)的十分具有參考意義的指導(dǎo)產(chǎn)品。遼陽地區(qū)中央指導(dǎo)報(bào)數(shù)據(jù)下載入庫軟件能夠?qū)崿F(xiàn)及時(shí)、準(zhǔn)確和穩(wěn)定獲取中央指導(dǎo)報(bào)信息,對(duì)預(yù)報(bào)員對(duì)中央指導(dǎo)報(bào)的獲取、分析至關(guān)重要。
參考文獻(xiàn):
[1]熊安元,趙芳,王穎,等.全國綜合氣象信息共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J] .應(yīng)用氣象學(xué)報(bào),2015,26(4):500-512.
[2]史彩霞,黎穎智,張?jiān)S斌.基于CIMISS的廣西氣象服務(wù)信息綜合業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].氣象研究與應(yīng)用,2016,37(4):82-85.
[3]楊群娜,陳素英,謝禮江,等.氣象網(wǎng)站公眾互動(dòng)欄目的設(shè)計(jì)與實(shí)現(xiàn) [J]廣東氣象,2016,38(3):50-52,55.