娟娟
摘 要:錫林郭勒盟站網(wǎng)數(shù)據(jù)中心,以我盟范圍內(nèi)已經(jīng)建成的自動(dòng)氣象站、各類區(qū)域自動(dòng)氣象站的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)為信息資源對(duì)象,充分利用信息網(wǎng)絡(luò)通訊技術(shù)和數(shù)據(jù)庫(kù)存儲(chǔ)與查詢、分析功能,實(shí)現(xiàn)全盟氣象部門自動(dòng)站資料的整合與管理。實(shí)現(xiàn)了氣象資料在全盟氣象部門內(nèi)的高效共享,并提高了氣象資料在業(yè)務(wù)領(lǐng)域和服務(wù)領(lǐng)域的使用率和共享率。
關(guān)鍵詞:氣象資料;收集;存儲(chǔ);共享
前言
隨著近幾年站網(wǎng)建設(shè)的不斷增加,我盟已建立了國(guó)家級(jí)自動(dòng)氣象站15個(gè)、國(guó)家級(jí)無(wú)人自動(dòng)氣象站9個(gè)、強(qiáng)風(fēng)自動(dòng)氣象站1個(gè)、區(qū)域自動(dòng)雨量站共136個(gè)、土壤水份觀測(cè)站4個(gè)。站網(wǎng)運(yùn)行的采集系統(tǒng)復(fù)雜,數(shù)據(jù)資料傳輸、存儲(chǔ)不同。只有區(qū)域站自動(dòng)雨量站建立了盟級(jí)中心站,進(jìn)行數(shù)據(jù)傳輸,其他站點(diǎn)的數(shù)據(jù)不經(jīng)盟局直接傳輸?shù)搅耸【?。隨著業(yè)務(wù)需求的不斷提升,盟局及旗縣級(jí)對(duì)站網(wǎng)數(shù)據(jù)的應(yīng)用需求也在增加。建立錫林郭勒盟站網(wǎng)數(shù)據(jù)中心可以整合錫盟所有站網(wǎng)數(shù)據(jù)文件及數(shù)據(jù)庫(kù)文件,便于數(shù)據(jù)日常應(yīng)用,同時(shí)也解決了盟市級(jí)數(shù)據(jù)文件存檔及存在的網(wǎng)絡(luò)安全問(wèn)題。
1 氣象資料歷史和實(shí)時(shí)報(bào)文文件存儲(chǔ)服務(wù)器
1.1 報(bào)文文件存儲(chǔ)
實(shí)時(shí)報(bào)文文件庫(kù),根據(jù)實(shí)時(shí)資料的傳輸時(shí)效及臨時(shí)傳輸要求,以逐小時(shí)數(shù)據(jù)為基礎(chǔ)進(jìn)行存放。報(bào)文文件按照站名來(lái)存放。文件服務(wù)選用red hat linux系統(tǒng)。采用shell腳本進(jìn)行編碼。
報(bào)文文件庫(kù)包含15個(gè)國(guó)家級(jí)自動(dòng)氣象站、國(guó)家級(jí)無(wú)人自動(dòng)氣象站9個(gè)、區(qū)域自動(dòng)雨量站136個(gè)(包括單雨量山洪站36個(gè)),兩要素31個(gè)、四要素64個(gè)、7要素校準(zhǔn)站2個(gè)。
數(shù)據(jù)調(diào)取方式有兩種:一種是國(guó)家級(jí)自動(dòng)站、無(wú)人自動(dòng)氣象站、土壤水分自動(dòng)氣象站的數(shù)據(jù)通過(guò)FTP或無(wú)線GPRS或GSM短信方式將采集數(shù)據(jù)傳輸?shù)矫司謪^(qū)域站中心站服務(wù)器,由區(qū)局實(shí)時(shí)共享,我們通過(guò)FTP方式每個(gè)整點(diǎn)后10分鐘以內(nèi)從區(qū)局?jǐn)?shù)據(jù)共享服務(wù)器上調(diào)取存入本地實(shí)時(shí)文件庫(kù)中。另一種是,華云兩要素、四要素區(qū)域自動(dòng)氣象站站通過(guò)無(wú)線GPRS或GSM短信方式將采集數(shù)據(jù)傳輸?shù)矫司謪^(qū)域站中心站服務(wù)器,然后再轉(zhuǎn)存進(jìn)入報(bào)文文件服務(wù)器中;為了便于數(shù)據(jù)應(yīng)用報(bào)文文件的存儲(chǔ)以站號(hào)、區(qū)站號(hào)、年、月、日等五級(jí)目錄樹方式進(jìn)行存放。
1.2 shell
Linux中,為用戶提供了不同的shell。Shell既表示shell命令。也包含shell程序,具有雙重功能。Shell命令的解釋程序也叫shell。Shell既是shell命令的解釋器又是一個(gè)功能強(qiáng)大的編程語(yǔ)言,它允許用戶編寫shell腳本,或在一個(gè)文件中“批處理”幾個(gè)shell命令。Shell腳本是一種功能非常強(qiáng)大的工具,用它可以擴(kuò)展UNIX/Linux的用途[2]。
1.3 shell命令的語(yǔ)法分析
雖然許多UNIX和Linux版本中包括多種shell,但它們的工作方式基本相同,Shell在用戶和內(nèi)核之間起著橋梁作用。各種shell之間的主要區(qū)別在于命令行語(yǔ)法[2]。
Shell腳本就是一個(gè)文件中包含一個(gè)或多個(gè)shell命令的集合。要執(zhí)行這些命令,只需鍵入這個(gè)腳本名。具體操作如下:
(1)賦予腳本可執(zhí)行權(quán)限。
具體命令為:#chmod +x test.sh
(2)根據(jù)存放目錄樹的具體情況自動(dòng)生成目錄。
具體命令為:if [ -d ${tmpdir} ]; then
:
else
mkdir -p ${tmpdir}
fi
(3)定義時(shí)間。
具體為:nowdate=`date +%Y%m%d%H`
nowday=`date +%Y%m%d`
yyyyMM=`date +%Y%m`
nowhour=`date +%Y%m%d%H`
lasthour=`date -d "-1 hours"+%Y%m%d%H`
(4)通過(guò)mget命令進(jìn)行文件調(diào)取存放。
(5)考慮到報(bào)文資料常出現(xiàn)的逾限問(wèn)題,每次調(diào)取時(shí),選擇當(dāng)時(shí)時(shí)次和前一時(shí)次的資料進(jìn)行調(diào)用。
1.4 氣象資料歷史和實(shí)時(shí)數(shù)據(jù)庫(kù)
氣象資料歷史和實(shí)時(shí)數(shù)據(jù)庫(kù),根據(jù)報(bào)文文件存儲(chǔ)服務(wù)器存儲(chǔ)的實(shí)時(shí)及歷史資料,進(jìn)行數(shù)據(jù)解析入庫(kù)。數(shù)據(jù)庫(kù)采用了SQL Server2008。
具體以兩個(gè)表進(jìn)行存放。自動(dòng)氣象站、區(qū)域自動(dòng)氣象站、無(wú)人自動(dòng)氣象站存在一個(gè)數(shù)據(jù)庫(kù)表中,土壤自動(dòng)氣象站數(shù)據(jù)存在一個(gè)數(shù)據(jù)庫(kù)表中。
1.5 c#與SQL數(shù)據(jù)庫(kù)的有機(jī)結(jié)合
數(shù)據(jù)解析部分使用了c#語(yǔ)言及SQL語(yǔ)句。
C#是一種簡(jiǎn)單的、功能強(qiáng)大的語(yǔ)言,同時(shí)也是一種安全的、面向?qū)ο蟮恼Z(yǔ)言。C#完全建立在.NET框架基礎(chǔ)之上,它的所有類型也都是以.NET框架所提供的統(tǒng)一類型系統(tǒng)為基礎(chǔ)的[1]。
SQL數(shù)據(jù)庫(kù)的數(shù)據(jù)都存儲(chǔ)在表中。根據(jù)不同自動(dòng)氣象站的要素、報(bào)文字段解釋建立數(shù)據(jù)表單。由于自動(dòng)氣象站、區(qū)域自動(dòng)氣象站、無(wú)人自動(dòng)氣象站存在一個(gè)數(shù)據(jù)庫(kù)表中,該表的字段以報(bào)文字段最長(zhǎng)的設(shè)計(jì)表單。
文件解析是根據(jù)文件名的特征分析文件屬于自動(dòng)站還是無(wú)人站還是其他分類的數(shù)據(jù);分析每個(gè)分類的Z文件內(nèi)容包括每個(gè)元素之間空字符分割和順序位置代表著固定的含義、每個(gè)文件以NNNN結(jié)尾的特征解析每個(gè)元素并保存對(duì)應(yīng)的表和數(shù)據(jù)字段中。
解析程序目前有兩種連接數(shù)據(jù)庫(kù)方式:通過(guò)app.config文件的配置信息OLEDB的模式連接SQLserver數(shù)據(jù)庫(kù)。通過(guò)WebServer服務(wù)連接數(shù)據(jù)庫(kù);根據(jù)不同的場(chǎng)景選擇。
2 站網(wǎng)數(shù)據(jù)中心的業(yè)務(wù)化應(yīng)用
“錫盟站網(wǎng)數(shù)據(jù)中心”經(jīng)過(guò)一年的試運(yùn)行后,在我盟有條件的旗縣同時(shí)建立了數(shù)據(jù)分中心。臺(tái)站可以直接有效的利用自己的數(shù)據(jù)中心,建立具有自己臺(tái)站特色的氣象服務(wù)產(chǎn)品平臺(tái),對(duì)于現(xiàn)代化氣象服務(wù)提供了有效的基礎(chǔ),同時(shí)也是氣象部門與地方相關(guān)部門合作,進(jìn)行數(shù)據(jù)共享,進(jìn)一步提高科技服務(wù)水平,拓展服務(wù)領(lǐng)域的重要方向。
參考文獻(xiàn)
[1]孫永強(qiáng),陳宗斌.Visual c#.NET程序設(shè)計(jì)基礎(chǔ)[M].清華大學(xué)出版社,2002.
[2]馬季蘭,彭新光,等.Linux操作系統(tǒng)[M].2005.
[3]徐天晟.SQL數(shù)據(jù)庫(kù)使用速查手冊(cè)[S].人民郵電出版社,2009.