999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

正則表達式在地面氣象觀測數據文件處理中的應用

2017-07-19 15:58:24劉衛華李永超孫悅程
現代農業科技 2016年16期
關鍵詞:數據庫

劉衛華++李永超++孫悅程

摘要 由于各方面的原因,地面氣象觀測數據文件已經不能滿足日益增長的氣象數據分析應用的需要,不能有效地發揮地面氣象的重要作用。將文本文件存儲的地面氣象觀測數據文件解碼存儲至數據庫中,建立了大連市地面氣象觀測資料數據庫。其中,正則表達式的應用使地面氣象觀測數據文件的處理過程大大簡化,效率提高。

關鍵詞 地面氣象觀測數據;數據庫;正則表達式

中圖分類號 P416.2 文獻標識碼 A 文章編號 1007-5739(2016)16-0190-02

Abstract Due to various reasons,the ground meteorological observation data file has been unable to meet the growing application of meteorological data analysis needs,and it can′t effectively play an important role in the meteorological observation.The ground meteorological observation data stored in the text file was decoded and stored to the database,and the data base of the ground meteorological observation data of Dalian City was established.Among them,the application of regular expression maked the processing process of the ground meteorological observation data file greatly simplified,and the efficiency was improved.

Key words ground meteorological observation data;data base;regular expression

地面氣象觀測數據文件(包括A、A0、A1、A6和A7文件,以下簡稱A文件)作為中國氣象局規定的通用氣象觀測數據格式,通過地面氣象測報業務軟件進行制作、維護和審核,每個測站每月生成一個純文本文件[1-2]。如直接使用,存在不能統計任意時段的統計值,更不能統計跨時段、跨區域的氣象數據資料等缺點,不能滿足氣象數據整理分析統計的需求,無法有效地發揮氣象觀測資料的作用。

因此,為了實現跨時段、跨區域A文件觀測資料的查詢統計以及在此基礎上的復雜應用,建立了大連市A文件觀測資料數據庫,使用基于Framework 4的C#語言實現了將全市各個臺站的A文件全部解碼讀入Oracle數據庫。

1 地面氣象觀測數據

最新的2003年版《地面氣象觀測規范》是在1979年頒布的《地面氣象觀測規范》基礎上根據服務需求和技術發展擴充了部分觀測要素的測量范圍,摒棄了過時不用的部分觀測項目和內容重新規定了氣象數據存儲格式。但為兼顧歷史資料,2003年版的觀測規范兼容了1979年版的觀測記錄規范。但由于其設計初衷僅為地面觀測規范使用,存在以下問題:一是存儲方式為文本方式,體積小,便于存儲和保存,但讀取困難,在氣象預報服務及科學研究中不能快速查詢與分析,也不能對各種氣象要素進行有效的組合,是一種單一的獨立的存儲方式。二是各要素的指示碼因觀測次數不同、觀測時段不同和歷史沿革的不同而有較大差別,要素指示碼種類繁多,增加了氣象資料的讀取難度。三是因為各種原因導致氣象要素觀測值缺測、異常、單位不一致等特殊情況的存在,增加了地面氣象觀測數據的處理難度。

地面氣象觀測數據A文件由臺站參數、觀測數據、質量控制、附加信息構成,其中觀測數據包括排列順序固定的20個氣象要素,分別是氣壓(P)、氣溫(T)、濕球溫度(I)、水汽壓(E)、相對濕度(U)、云量(N)、云高(H)、云狀(C)、能見度(V)、降水量(R)、天氣現象(W)、蒸發量(L)、積雪(Z)、電線積冰(G)、風(F)、淺層地溫(D)、深層地溫(K)、凍土深度(A)、日照時數(S)和草面溫度(B)。每個氣象要素為文件體中一組獨立的數據單位,由指示碼、方式位及該要素1個月的原始數據組成。根據氣象站的分類不同及季節不同A文件內的觀測數據也不同[3]。其結構如圖1所示,采用自上而下的順序存儲方式,文件中各指示碼對應的氣象數據區塊間相對獨立。本文處理的文件包括經過人工審核的大連市轄區各臺站自建站以來至2015年末的所有A文件。

2 A文件解碼入庫

2.1 數據庫存儲

A文件雖具有嚴格的數據存儲編碼格式,但同時也存在讀取困難、通用性差、統計分析不便及無法網絡應用等缺點,為此本文將A文件解碼入庫至Oracle數據庫存儲。Oracle數據庫作為一種成熟關系型數據庫,在存儲地面氣象觀測數據時,具有提取簡單、分析統計方便等優勢。

2.2 文件解碼流程

考慮到A文件觀測數據地面要素種類多,編碼規則繁雜,若想一次性將所有要素解碼入庫則較困難。本文解碼入庫思路為化繁為簡,即分別按照20個氣象要素標識逐個遍歷所有A文件,從中提取出對應氣象要素文本段,再將該氣象要素解碼入庫。以氣壓(P)要素為例,解碼流程如圖2所示。

3 正則表達式的應用

3.1 正則表達式的定義

正則表達式(regular expression)是計算機科學中的一個概念,是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯[4-6]。可以通過正則表達式檢查給定的字符串是否與其匹配,也可通過正則表達式從字符串中獲取想要的特定部分。正是由于正則表達式字符處理能力強大、高效靈活、適應性強,廣泛用于字符串的校驗、替換和提取。

3.2 正則表達式的應用

A文件是一種文件類型、要素方式位和編碼方式繁雜多樣的純文本文件,如使用傳統的文本讀寫方式往往需要逐行讀入,再按照不同規則進行數據文本的合并和分離,其中可能需要進行多次讀寫處理,效率較低且容易出錯。在 .NET中使用正則表達式支持,需要引入System.Text.RegularExpressions命名空間,主要函數有以下幾個: ①Regex.IsMatch()方法,返回一個bool值,如果有匹配項,返回True,否則返回False。②Regex.Replace()方法,使用制定的替換字符串替換與制定正則表達式匹配的所有字符串。③Regex.Match()方法,在輸入字符串中搜索匹配正則表達式模式的子字符串,并將第一個匹配項作為單個匹配對象返回。④Regex.Split()方法,在由正則表達式模式定義的位置將輸入字符串拆分為一個子字符串數組。

本文構造了多個正則表達式(C#語言實現)實現了一系列字符串操作,提高了處理效率。

(1)為了整理要素文本段格式,方便下一步的分割字符串,需要替換1個或多個連續空格為1個,使用正則表達式:

Regex.Replace(input,@"\s+"," ");

(2)從整個A文件里快速截取氣壓(P)要素文本段便于下一步處理,不采用逐行讀入遍歷的方式,使用正則表達式:

Regex.Match(input,@"^P[s\S]*?="Regex Options.Mul-tiline);

此表達式以多行模式匹配以字符P開始,中間有任意多個字符(包括換行符),并以等號結束的文本段。

此外對于有以D=代表整月缺測,以及D0、D7、D9三種指示碼指示的淺層地溫(D)要素一次性匹配所有可能性使用:

Regex.Match(input,@"^D(=|0[\s\S]*?=|7[\s\S]*?=|9[\s\S]*?=)",RegexOptions.Multiline);

(3)A文件每天的數據以"."結尾,為了合并一天的數據到一行內,使用正則表達式替換不以.結尾的換行符為空格:

Regex.Replace(input,@"([^.])(\r\n)","$1 ");

(4)文本段逐行(一行代表一天數據)以單個空格為分隔符分割獲得每小時氣壓值并判斷其是否為正常值:

string[]inputstr = Regex.Split(result," ");//分割逐小時氣壓值

for(int n = 0;n < inputstr.Length;n++)

{

if(Regex.IsMatch(inputstr[n],@"^\d{4}$"))

{

//氣壓值匹配四位數字,為正常值

}

else

{

//氣壓值不匹配四位數字,為缺測等非正常值

}

}

(5)對于截取到的氣象要素數據,判斷該字符串是否為整數,以方便下一步進行轉換并存入數據庫可使用:Regex.IsMatch(input,@"^-?\d+$");//判斷該字符串是否為整數(包括負整數)。

4 結語

大連市地面氣象觀測資料數據庫的建立,完成了各臺站建站以來地面氣象觀測數據的數據庫存儲,為氣象觀測資料的二次開發應用奠定了基礎。而正則表達式在氣象觀測資料文件處理中的使用,使得字符串處理時節約大量編程的時間,極大提高工作效率,同時也能使所編寫出來的程序代碼更簡潔,可維護性更強,解碼入庫的錯誤率降低。

5 參考文獻

[1] 管杰裕.正則表達式在氣象信息處理中的應用[J].廣西氣象,2006,27(增刊1):107-108.

[2] 田蘭金,石聲,李波,等.基于XML和正則表達式的氣象數據處理系統[J].計算機科學,2013,40(11A):432-434.

[3] 郜慶林,馬琰鋼,吳孟春,等.浙江省地面氣象觀測數據A文件資料解讀入庫方案[J].浙江氣象,2009,30(增刊1):48-50.

[4] 潘存良.基于PHP的正則表達式在氣象信息處理中的應用[J].沙漠與綠洲氣象,2015,9(增刊1):129-130.

[5] 李耀東.呼倫貝爾氣象資料A0文件的數據庫存儲實現[D].成都:電子科技大學,2014.

[6] 中國氣象局.地面氣象觀測數據文件和記錄簿表格式[M].北京:氣象出版社,2005.

[7] 田蘭,金石聲,李波,等.基于XML和正則表達式的氣象數據處理系統[J].計算機科學,2013(S2):432-435.

[8] 管杰裕.正則表達式在氣象信息處理中的應用[J].廣西氣象,2006(S1):107-108+111.

[9] 舒秦.氣象報表天氣現象的分析與統計[J].電腦編程技巧與維護,2015(4):46-48.

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 久热这里只有精品6| 天天视频在线91频| 亚洲综合一区国产精品| 在线观看亚洲国产| 人妻21p大胆| 1769国产精品免费视频| 成年A级毛片| 国产探花在线视频| 亚洲第一在线播放| 亚洲av无码片一区二区三区| 青草免费在线观看| 91久久偷偷做嫩草影院| 国产精品原创不卡在线| 成年人免费国产视频| 91福利免费| 亚洲国产综合自在线另类| 免费aa毛片| 亚洲国产欧洲精品路线久久| 人妻少妇乱子伦精品无码专区毛片| 国产丝袜啪啪| 国产肉感大码AV无码| 亚洲精品视频网| 欧美精品xx| 国产AV无码专区亚洲A∨毛片| 亚洲成在线观看| YW尤物AV无码国产在线观看| 啦啦啦网站在线观看a毛片| 欧美成一级| 亚洲欧洲日韩国产综合在线二区| 老色鬼久久亚洲AV综合| 欧美日韩在线亚洲国产人| 国产区网址| 久青草国产高清在线视频| 中文字幕日韩丝袜一区| 国产一线在线| 国产女人水多毛片18| 日韩免费中文字幕| 欧洲一区二区三区无码| 91精品在线视频观看| 亚洲天堂视频网站| 热久久这里是精品6免费观看| 国产精品大尺度尺度视频| 国产青青草视频| 欧美国产日韩在线观看| av无码久久精品| 精品撒尿视频一区二区三区| 91久久国产综合精品女同我| 午夜久久影院| 精品1区2区3区| 欧美精品xx| 999精品视频在线| 美女毛片在线| 免费看的一级毛片| 大陆精大陆国产国语精品1024| 成人无码一区二区三区视频在线观看| 婷婷成人综合| 国产一级精品毛片基地| 国产综合网站| 99热这里只有精品国产99| 亚洲欧美另类色图| 久久一级电影| 亚洲中久无码永久在线观看软件 | 久久人体视频| 国产一级毛片yw| 亚洲第一精品福利| 精品伊人久久久香线蕉 | 97精品久久久大香线焦| 国产一区三区二区中文在线| 在线播放国产99re| 538精品在线观看| 国产福利不卡视频| 午夜无码一区二区三区| 久久黄色小视频| 中文字幕av一区二区三区欲色| 久久黄色小视频| 中文字幕日韩视频欧美一区| 免费看美女自慰的网站| 99久久精品视香蕉蕉| 99视频在线免费| 欧美无遮挡国产欧美另类| 欧美日本在线一区二区三区| 亚洲人成人伊人成综合网无码|