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
主站蜘蛛池模板: 重口调教一区二区视频| 成人午夜亚洲影视在线观看| 日本欧美中文字幕精品亚洲| 欧美色丁香| 国产JIZzJIzz视频全部免费| 色爽网免费视频| 一级片一区| 一级片免费网站| 男人的天堂久久精品激情| 成年A级毛片| 很黄的网站在线观看| 2021精品国产自在现线看| 国产麻豆精品手机在线观看| 婷婷六月激情综合一区| 欧美国产精品不卡在线观看| 欧美视频在线第一页| 久久免费观看视频| 在线综合亚洲欧美网站| 91精品久久久久久无码人妻| 色亚洲激情综合精品无码视频| 欧美爱爱网| 在线综合亚洲欧美网站| 亚洲黄色激情网站| 91青青草视频| 狠狠v日韩v欧美v| 欧美精品1区2区| 视频在线观看一区二区| 伊人无码视屏| 亚洲欧美在线综合一区二区三区| 国产精品久久久免费视频| 波多野结衣二区| 国产成人高清亚洲一区久久| 丰满人妻久久中文字幕| 天天躁日日躁狠狠躁中文字幕| 国产一区二区丝袜高跟鞋| 欧美一区二区自偷自拍视频| 青草视频网站在线观看| 国产黄色免费看| 免费看a级毛片| 日韩美女福利视频| 国产呦视频免费视频在线观看| 天天综合网亚洲网站| 亚洲Aⅴ无码专区在线观看q| 一本色道久久88| 丝袜久久剧情精品国产| 国内精品一区二区在线观看| 亚洲无码视频图片| 久久先锋资源| 啪啪免费视频一区二区| 美女扒开下面流白浆在线试听| 婷婷六月综合| 久久这里只有精品66| 99福利视频导航| 免费无码AV片在线观看国产| 欧美精品成人| 男女精品视频| 99尹人香蕉国产免费天天拍| 久久久久久国产精品mv| 国产在线观看一区精品| 欧美综合激情| 最新国语自产精品视频在| 亚洲欧美日韩久久精品| 久久亚洲天堂| 亚洲第一黄色网| 亚洲一区二区无码视频| 在线人成精品免费视频| 中国国产一级毛片| a免费毛片在线播放| 98超碰在线观看| 制服丝袜亚洲| 亚洲天堂区| 亚洲成人精品久久| 国产精女同一区二区三区久| 91综合色区亚洲熟妇p| 青青热久免费精品视频6| 国产精品一线天| 免费一级无码在线网站| 四虎国产成人免费观看| 久久精品嫩草研究院| 毛片三级在线观看| 五月婷婷亚洲综合| 亚洲第一区在线|