羅鵬斌 祁曉龍 孫玉蓮
摘要 數(shù)據(jù)存儲技術(shù)經(jīng)歷了從手工管理到文件管理、再到數(shù)據(jù)庫管理系統(tǒng)3個階段,數(shù)據(jù)庫技術(shù)中關(guān)系數(shù)據(jù)庫占據(jù)了主要地位。針對氣象行業(yè)A文件所存儲的歷史數(shù)據(jù)的管理和共享問題,應(yīng)用Visual Studio、C#語言的開發(fā)環(huán)境,利用SQL Server 2008數(shù)據(jù)庫技術(shù)實現(xiàn)信息共享,建立詳細(xì)的歷史資料數(shù)據(jù)庫,將A文件數(shù)據(jù)進(jìn)行統(tǒng)一入庫,實現(xiàn)各類天氣情況的歷史查詢、統(tǒng)計、顯示、導(dǎo)出,為以后氣候分析、氣象災(zāi)害風(fēng)險評估等提供基礎(chǔ)數(shù)據(jù)支撐。
關(guān)鍵詞 氣象基礎(chǔ)數(shù)據(jù);支撐系統(tǒng);數(shù)據(jù)庫;軟件設(shè)計;甘肅臨夏
中圖分類號 P409 文獻(xiàn)標(biāo)識碼 A 文章編號 1007-5739(2016)09-0241-03
Abstract There are three stages in data storage technology,from manual management to document management,and then to database management systems. In database technology,the relational database occupies a major position. Aiming at the managements of stored historical data,issues of the meteorological industry A File were shared,and the Visual Studio,C# language development environment were implicated. To establish detailed database of historical data,information sharing was achieved by SQL Server 2008 depended on applying database. The A File data will be put in storage uniformly to achieve all kinds of weather conditions′ historical inquiry,statistics,and display,export for providing basic data support on the climate analysis,meteorological disaster risk assessment and etc in future.
Key words meteorological basic data;support system;database;software design;Linxia Gansu
現(xiàn)在社會經(jīng)濟飛速發(fā)展,對氣象要素、各種氣象極值及氣象服務(wù)產(chǎn)品的質(zhì)量要求越來越高。氣象是為當(dāng)?shù)卣稗r(nóng)業(yè)生產(chǎn)服務(wù)的,目前提供預(yù)報服務(wù)產(chǎn)品還是靠傳統(tǒng)的手工抄錄資料、手工計算等。制作起來不僅慢,還存在不準(zhǔn)確、繁瑣、氣象產(chǎn)品供給性不及時等現(xiàn)象。氣象信息的傳遞與經(jīng)濟飛速發(fā)展及農(nóng)業(yè)生產(chǎn)實際需求存在差距。缺少多樣性和針對性,這與越來越精細(xì)化的農(nóng)業(yè)生產(chǎn)管理要求極不相適應(yīng)。因此,再按老套路的辦法手工抄錄資料、手工計算等制作服務(wù)產(chǎn)品,勢必跟不上形勢發(fā)展的需要,這就要求氣象工作者改變現(xiàn)狀,制作出一套既快又便捷的制作服務(wù)產(chǎn)品的系統(tǒng),依靠科技進(jìn)步改善氣象信息的準(zhǔn)確性。
臨夏州氣象災(zāi)害占到自然災(zāi)害的86%以上,主要是干旱、晚霜凍、冰雹、雷陣雨、大風(fēng)、大(暴)雨等,其發(fā)生的頻率高,危害的范圍廣,特別是對農(nóng)業(yè)生產(chǎn)、農(nóng)業(yè)設(shè)施、水資源、生態(tài)系統(tǒng)造成巨大的影響,因此隨著氣象災(zāi)害風(fēng)險評估的需求日益增長,建立一個詳細(xì)的歷史資料數(shù)據(jù)庫(資料來源是各縣市A文件數(shù)據(jù)),將A文件數(shù)據(jù)進(jìn)行統(tǒng)一,實現(xiàn)各類天氣情況的歷史查詢、統(tǒng)計、導(dǎo)出,為以后氣候分析、氣象災(zāi)害風(fēng)險評估提供基礎(chǔ)數(shù)據(jù)支撐具有重大的意義[1-2]。
1 開發(fā)環(huán)境與開發(fā)語言
應(yīng)用Visual Studio、C#語言的開發(fā)環(huán)境。利用SQL Server 2008將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。對數(shù)據(jù)進(jìn)行查詢、搜索、同步、分析和導(dǎo)出操作。
2 數(shù)據(jù)整理和軟件設(shè)計
2.1 A文件結(jié)構(gòu)分析
A文件是氣象部門以文本格式存儲每月氣象數(shù)據(jù)的文件,1個A文件存儲1個站點1個月的氣象數(shù)據(jù),是氣象上最早存儲氣象資料的方式之一,這種方式直到目前還在使用。它從手工制作到自動化形成大體分3個階段:第一階段是1951—1980年,這個階段主要是以手工制作為主,主要存儲的是每天3次觀測(8:00、14:00、20:00)的數(shù)據(jù)及一些日數(shù)據(jù);第二階段是1980—2005年,是手工制作向自動化推進(jìn)的發(fā)展階段,主要存儲的是每天4次觀測(2:00、8:00、14:00、20:00)的數(shù)據(jù)及一些日數(shù)據(jù)、最值;第三階段為2006年到現(xiàn)在,這個階段其格式正式規(guī)范化、精細(xì)化,制作進(jìn)入純自動化,主要存儲的是每個小時觀測的數(shù)據(jù)以及一些日數(shù)據(jù)、最值及其出現(xiàn)時間。A文件經(jīng)過了以上3個階段改革在格式上有著很大的不同,如果要將這些寶貴的數(shù)據(jù)存儲到統(tǒng)一的數(shù)據(jù)庫中,對分析歷年A文件存儲格式至關(guān)重要[3]。
從表1可以看出,A文件格式上雖有著很大不同,但是它卻有著很強的規(guī)律性,總體來看它的數(shù)據(jù)存儲可以分成2類,第一類是小時數(shù)據(jù)存儲,存儲的是特定某個小時的數(shù)據(jù),它的變化規(guī)律是從定時化向著每小時化變化,總的趨勢是從8:00、14:00、20:00到2:00、8:00、14:00、20:00再向00:00—23:00變化的;第二類是日數(shù)據(jù),即1 d只有1個觀測數(shù)據(jù),如每天的最大值、最小值、蒸發(fā)、日照等要素數(shù)據(jù)。下面歸類了這2類數(shù)據(jù)的成員組成:小時數(shù)據(jù)包括氣壓、氣溫、降水、相對濕度、水汽壓、露點溫度、風(fēng)、地溫、深層地溫、云、日照、能見度等。日數(shù)據(jù)包括蒸發(fā)、日照、雪、凍土、天氣現(xiàn)象、最值出現(xiàn)時間、夜晚降水、白天降水、日降水等。
結(jié)合上述,如何把3次(8:00、14:00、20:00)、4次(2:00、8:00、14:00、20:00)及24 h觀測的數(shù)據(jù)進(jìn)行統(tǒng)一,就要把A文件格式變化分成2個階段:一個是3次觀測;另一個是4次和24 h觀測。由此格式轉(zhuǎn)換上就有了很清晰的思路,首先可以通過年代判斷是3次觀測階段還是4次或24 h觀測階段;然后確定好A文件中所包含的信息量,設(shè)定好時間;最后通過符號所代表的氣象要素及其格式讀取相應(yīng)的數(shù)據(jù),對照表1和2類數(shù)據(jù)的各要素組成把數(shù)據(jù)放入到相應(yīng)的數(shù)據(jù)存儲空間。
2.2 數(shù)據(jù)庫設(shè)計
SQL Server 2008在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)[4]??梢詫⒔Y(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中??梢詫?shù)據(jù)進(jìn)行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機和移動設(shè)備,它都可以控制數(shù)據(jù)而不用管數(shù)據(jù)存儲在哪里。在這里通過A文件的結(jié)構(gòu)分析結(jié)果建立相應(yīng)的數(shù)據(jù)庫。分析A文件格式,A文件中存在2種類型數(shù)據(jù),一類是小時數(shù)據(jù),一類是日數(shù)據(jù),并且這2類數(shù)據(jù)由不同氣象要素組合,根據(jù)不同數(shù)據(jù)類型設(shè)計合理的數(shù)據(jù)存儲空間結(jié)構(gòu)。
2.2.1 小時數(shù)據(jù)。小時數(shù)據(jù)項組成:站點編號、日期、氣壓、氣溫、降水、相對濕度、水汽壓、露點、溫度、2 min風(fēng)向、2 min風(fēng)速、10 min風(fēng)向、10 min風(fēng)速、0 cm地溫、5 cm地溫、10 cm地溫、15 cm地溫、20 cm地溫、40 cm地溫、80 cm地溫、160 cm地溫、320 cm地溫、云狀、總云量、低云量、日照、能見度等。數(shù)據(jù)表ID:dbo.Per_day_data。數(shù)據(jù)來源:A文件。數(shù)據(jù)入庫方式:應(yīng)用軟件轉(zhuǎn)換入庫。簡述:4次觀測,每天4組數(shù)據(jù);每小時觀測,每天24組數(shù)據(jù)。
2.2.2 日數(shù)據(jù)。日數(shù)據(jù)項組成:站點編號、日期、蒸發(fā)、日照、雪深、雪壓、第一凍土層上限、第一凍土層下限、第二凍土層上限、第二凍土層下限、天氣現(xiàn)象、最大氣壓、最大氣壓出現(xiàn)時間、最小氣壓、最小氣壓出現(xiàn)時間、最高氣溫、最高氣溫出現(xiàn)時間、最低氣溫、最低氣溫出現(xiàn)時間、最小相對濕度、最小相對濕度出現(xiàn)時間、10 min最大風(fēng)風(fēng)向、10 min最大風(fēng)風(fēng)速、10 min最大風(fēng)出現(xiàn)時間、10 min極大風(fēng)風(fēng)向、10 min極大風(fēng)風(fēng)速、10 min極大風(fēng)出現(xiàn)時間、0 cm地溫最高、0 cm地溫最高出現(xiàn)時間、0 cm地溫最低、0 cm地溫最低出現(xiàn)時間、夜晚降水、白天降水、降水日合計等。數(shù)據(jù)表ID:dbo.Per_day_data。數(shù)據(jù)來源:A文件。數(shù)據(jù)入庫方式:應(yīng)用軟件轉(zhuǎn)換入庫。簡述:一天一組數(shù)據(jù),以天為周期[5-6]。
2.3 軟件功能制作
隨著氣象觀測的自動化,數(shù)據(jù)文件的規(guī)范化、詳細(xì)化,作為存儲觀測數(shù)據(jù)的A文件已經(jīng)不方便進(jìn)行數(shù)據(jù)查詢統(tǒng)計了;除此之外,規(guī)范前的A文件數(shù)據(jù)格式和規(guī)范后的A文件數(shù)據(jù)格式有著很大的差異,以前的一些查詢統(tǒng)計軟件已經(jīng)不能夠?qū)崿F(xiàn)一些關(guān)鍵性的功能,因此開發(fā)一個新的應(yīng)用平臺來實現(xiàn)數(shù)據(jù)的整理(建立一個的專門的數(shù)據(jù)庫來存儲A文件的數(shù)據(jù))、查詢、統(tǒng)計、導(dǎo)出等功能是很有必要的。
2.3.1 A文件轉(zhuǎn)換與入庫。1950—2004年的A文件,格式上有著或多或少的變化,2005年以后隨著A文件的規(guī)范化和數(shù)據(jù)的詳細(xì)化,文件格式又有大的變化,因此把A文件數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換入庫是本平臺的基本功能,也是核心功能之一(圖1)。
A文件數(shù)據(jù)轉(zhuǎn)換入庫功能模塊:一是實現(xiàn)A文件數(shù)據(jù)的讀取,統(tǒng)一數(shù)據(jù)格式并把統(tǒng)一后的數(shù)據(jù)在表格中顯示;二是把統(tǒng)一后的數(shù)據(jù)導(dǎo)入到建立好的數(shù)據(jù)庫中;三是制作管理員的權(quán)限,即當(dāng)用戶只能在登錄上管理員后才能應(yīng)用這個功能。模塊界面如圖2~4所示。
2.3.2 查詢、統(tǒng)計、顯示、導(dǎo)出。查詢:通過SQL語言,根據(jù)設(shè)定的站點、時間從數(shù)據(jù)庫中查詢符合條件的數(shù)據(jù)并存入表格。統(tǒng)計:第1種方式是直接通過查詢出來的數(shù)據(jù),做合計、篩選、歸類、降序、升序處理得出所需要的結(jié)果;第2種方式是在數(shù)據(jù)庫中直接檢索結(jié)果數(shù)據(jù)。顯示:數(shù)據(jù)以表格的格式顯示,以柱狀圖、折線圖、曲線圖、玫瑰圖直觀顯示數(shù)據(jù)發(fā)展趨勢。導(dǎo)出:存在表格中的數(shù)據(jù)可以導(dǎo)出到Excel中,便于以后處理。表2詳細(xì)敘述了平臺實現(xiàn)的功能。
3 結(jié)語
建立了易于存取、查詢、檢索的數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)的統(tǒng)一管理。把A文件數(shù)據(jù)無差錯的轉(zhuǎn)換導(dǎo)入到了建立好的數(shù)據(jù)庫中,更好地保存了這些數(shù)據(jù)。為了能夠方便運用這些數(shù)據(jù),制作了相應(yīng)的應(yīng)用軟件實現(xiàn)各類氣象數(shù)據(jù)的查詢、統(tǒng)計、顯示、導(dǎo)出等功能,為以后氣候分析、氣象災(zāi)害風(fēng)險評估等工作提供了很好的數(shù)據(jù)支撐和方便。
4 參考文獻(xiàn)
[1] 宋昆,李嚴(yán).SQL Server數(shù)據(jù)庫開發(fā)實例解析[M].北京:機械工業(yè)出版社,2006.
[2] 李俊民,高春燕.Access數(shù)據(jù)庫開發(fā)實例解析[M].北京:機械工業(yè)出版,2006.
[3] 王石.精通Visual C# 2005:語言基礎(chǔ)、數(shù)據(jù)庫系統(tǒng)開發(fā)、Web開發(fā)[M].北京:人民郵電出版社,2007.
[4] 張威.C#語言基礎(chǔ)教程[M].北京:人民郵電出版社,2001.
[5] 王若曈,黃向東,張博,等.海量氣象數(shù)據(jù)實時解析與存儲系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與科學(xué),2015(11):2045-2054.
[6] 黃銳,任偉穎,藍(lán)天飛.人工讀取區(qū)域自動氣象站存儲數(shù)據(jù)的方法與技巧[J].氣象水文海洋儀器,2015(2):87-90.