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

轉換多時空層次Micaps格點數據文件為GrADS格式

2012-09-21 08:46:24李衛紅陳增會
成都信息工程大學學報 2012年5期

姚 愚, 李衛紅, 羅 園, 陳增會

(昆明市氣象局,云南昆明 650034)

0 引言

GrADS(Grid Analysis and Display System)是一套應用廣泛、使用方便的科學數據繪圖軟件包,具有較強的數據計算和分析能力,可輸出等值線、色溫圖、流線、風矢量、折線圖、直方圖等多樣化的圖形,已成為氣象科研領域通用的標準圖形環境之一[1-4]。目前氣象臺站預報業務中應用的多是基于Micaps系統的以文本格式存儲的數據文件,GrADS只能識別以二進制格式存儲的數據,必須編程實現將Micaps格式的數據文件轉換為GrADS的數據格式,并生成相應的數據描述文件(CTL文件),才能由GrADS正確調用。以往關于這類格式轉換的研究已較多[5-10],但大都只能對單個Micaps格式的數據文件進行轉換,不能實現將多個變量、多個垂直層次和多個時間層次的數據寫為一個GrADS格式的文件,CTL文件不能自動生成,限制了GrADS計算和作圖功能的發揮。轉換程序多在DOS環境下運行,操作不便,難以維護更新。在Delphi編程環境下,應用面向對象程序設計(OOP)的思想,利用類的封裝性、繼承性和多態性原理,編程實現便捷高效地將Micaps的4類和11類格點數據文件轉換為GrADS格式的數據文件,克服了以往類似研究的不足,為氣象數據的圖形化操作提供支持。

1 基礎類的設計

類是OOP中的核心概念[11-12],應用類的封裝性、繼承性和多態性原理可降低處理復雜問題的難度,提高程序開發效率,增加代碼的可復用性和易維護性。根據具體問題進行類的設計是OOP程序開發的關鍵。GrADS格點數據文件是二進制順序無格式流式文件,按經度、緯度、高度、變量和時間的次序排列。在最復雜的情況下,轉換GrADS格點數據文件需要5重循環設計。Micaps系統利用目錄名來區分變量種類和垂直層次,用文件名區分時間層次,用文件擴展名區分預報時效。Micaps格式的4類和11類數據文件分別存儲畫等值線和畫風場流線的格點數據,存儲格式均為“文件頭+數據塊”的形式。一個4類格式的文件存儲一種變量一個時次一個高度層次的數據,按經緯度順序排列,有一個“數據塊”。11類格式文件基本與4類文件相同,只是存儲了U和V兩個變量,可看作有兩個“數據塊”。考慮到不同數據應用環境和用戶對數據變量、垂直層次、時間層次和預報時效選擇的多樣性,針對以上GrADS和Micaps的數據文件存儲特性,設計了如圖1所示的類的繼承結構用以轉換Micaps格式的格點數據文件為GrADS的數據格式文件。

1.1 TTxtData2BinFile類設計

TTxtData2BinFile類主要功能是把字符串數組中的數據逐個分離并順序寫入二進制文件,它是圖1中所有類的基類,其TxtData屬性是一個字符串數據,用于存放用戶選定的多個Micaps格式的4類或11類文件中“數據塊”內容,BinFileName屬性存放生成的二進制文件的文件名。WriteMessage過程記錄類的執行信息至Mes-sageList屬性中。GetDataFromStr過程用于逐一分離由空格分隔的字符串內容。GetBinFile過程用于將TxtData中的數據按順序寫入二進制文件,其主要代碼段如下:

GetBinFile過程中SingleData不斷循環賦值為從 TxtData中順序分離的單個數據,再由BinFileStream的Write過程寫入到文件流中,可視為完成了轉換GrADS數據文件所需的5重循環中的按經緯度兩重循環。全部數據寫入完成后,調用BinFileStream的Free過程保存文件并釋放對象。

圖1 轉換Micaps數據文件為GrADS格式的類繼承結構

1.2 TM2G-Base抽象類設計

TM2G-Base抽象類由TTxtData2BinFile類繼承而來,定義了由Micaps格式的數據文件轉換為GrADS格式文件的接口。TM2G-Base類的內部屬性保存了用戶選擇的每個Micaps的4類或11類格式文件的相關信息,包括Micaps文件的目錄名、文件名和擴展名、高度層次、時間層次、變量名稱、數據起止經緯度、格點數、經緯度分辯率、“數據塊”個數等,這些信息將用于隨后的數據轉換過程中。

TM2G-Base類定義了一組方法用于獲取上述文件信息,這些方法中有些是實方法,即在TM2G-Base類定義時即加以實現,主要用于獲取Micaps的4類或11類文件的“文件頭”中的信息及對TxtData中的“數據塊”進行重排序。SetPara方法可從Micaps數據文件中獲取“文件頭”的起止經緯度、經緯度格點數、經緯度分辨率等信息。如果選定的Micaps數據文件的緯向分辨率小于0,表示該文件中數據由北向南排列,而GrADS格式文件中的數據缺省是由南向北排列,此時需調用ReverseYDirection方法對TxtData中的相應的“數據塊”按行重排序。當轉換Micaps格式的11類文件時,需調用Arrange11方法,將TxtData中對應“數據塊”中U分量數據按次序集中排列,之后再放V分量數據,以適應GrADS對數據存放的要求。

利用類的多態性原理,在OOP程序設計時,可在基類定義通用數據接口,在基類的不同子類中去實現這些接口,以便在不同處理環境下對同一問題采用同一解決方案[11-12]。在實際應用中,不同用戶對要進行轉換的變量種類的選擇各不相同,例如用戶可選擇Micaps高空實況數據(位于high目錄下)、物理量數據(位于physic目錄下)、T639數值預報產品(位于T639目錄下)、歐洲中期數值預報產品(位于ecmwf目錄下)或其它種類的數據文件進行轉換,這些不同種類的Micaps文件數據格式相同,數據轉換的操作步驟類似。為使程序功能易于維護、增加代碼的復用性,并提供用戶對Micaps數據文件選擇的靈活性,本文將TM2G-Base設計為抽象類,在其內部成員中定義了一組虛函數(過程),用于獲取用戶在不同數據需求下所選擇的每個Micaps文件的變量名稱、目錄名、數據文件類別、垂直層次、時間層次等相關信息,并保存至類的內部成員中。這些虛函數(過程)主要有:SetMicapsFilesList方法對所選每個Micaps數據文件的全路徑名按垂直層次、變量名稱和時間層次排序并存放至MicapsFilesList屬性中,GetTxtDataFromMicapsFile方法按照MicapsFilesList屬性中文件名順序,逐一獲取對應Micaps數據文件的“數據塊”至TxtData成員中,相當于完成前述5重循環中的另外3重循環,SetOutputFileName方法確定生成的GrADS格式數據文件名和CTL文件名,WriteCTLFile方法根據保存的信息生成CTL文件內容。以上虛函數均在TM2G-Base類的子類中實現。例如圖1中由TM2G-Base派生的TMicapsHigh2GradsFile類專門用于轉換Micaps的高空實況數據,TMicapsPhysic2GradsFile類則用于轉換物理量數據。還可從TM2GBase類派生出其它的類,以適應用戶在不同數據需求下的對Micaps文件的多樣化選擇,如轉換T639或歐洲中期數據預報產品的Micaps數據文件等。

圖2是數據轉換的流程圖。

圖2 Micaps格式數據文件轉換為Grads格式文件的流程圖

2 應用類的實現

2.1 TMicapsHigh2GradsFile和TMicapsPhysic2GradsFile類設計

TMicapsHigh2GradsFile類和TMicapsPhysic2GradsFile類均由TM2G-Base類派生,分別用于轉換High目錄和Physic目錄下的4類和11類格點數據文件。它們同程序界面相關聯,實現在TM2G-Base類中繼承的各個虛函數(過程)。TMicapsHigh2GradsFile類可轉換High目錄下的高度場、溫度場、溫度露點差場、全風速場、流場共5種Micaps格式的數據文件,程序界面如圖3(a)。注意用戶所選擇的多個Micaps格式的4類和11類數據文件應具有相同的起止經緯度和經緯度分辯率。TMicapsPhysic2GradsFile類的設計類似,它可轉換Physic目錄下的全部物理量數據文件,程序界面如圖3(b)。

圖3 轉換High和Physic目錄下Micaps格式的4類和11類數據文件的程序界面

2.2 程序運行

在圖3(a)所示界面中,選擇對2012年5月11日的5種實況數據的全部垂直層次進行轉換,包括08時和20時2個時間層次,這些數據均位于high目錄下,“UV-流場”是Micaps的11類數據文件,其余四種均是4類數據文件。點擊“轉換高空觀測實況數據”按鈕,生成GrADS數據格式文件High-120218-120219.dat和描述文件High-120218-120219.ctl,兩個文件在GrADS操作環境下可正常使用,與原Micaps文件核對數據無誤,按鈕代碼如下。圖4(a)是用GrADS作的2012年5月11日08時500hPa的高度場和風場疊加圖。

圖3(b)所示界面中,選擇對2012年5月11日的13種物理量數據的全部垂直層次進行轉換,包括08時和20時2個時間層次,這些數據均位于physic目錄下,均為Micaps的4類數據文件,點擊“轉換物理量實況數據”按鈕,生成GrADS數據格式文件Physic-120218-120219.dat和描述文件Physic-120218-120219.ctl,在GrADS下打開后與原Micaps文件核對數據無誤。圖4b是用GrADS作的2012年5月11日08時沿25°N的水汽通量散度垂直剖面圖。

圖4 利用2012年5月11日的Micaps數據文件進行轉換和作圖

3 結束語

Micaps格式的格點數據文件轉換為GrADS數據格式文件是氣象臺站預報和科研業務中常遇到的問題。本文應用面向對象程序設計(OOP)中類的封裝性、繼承性和多態性原理,根據Micaps的4類和11類格點數據文件的存儲特征和GrADS二進制文件寫入數據的規則,將數據轉換過程中所需的5重循環設計、對11類數據文件中U和V“數據塊”的重排序等步驟合理分解,并考慮到在不同數據環境和用戶需求下對Micaps不同變量種類的數據文件選取存在多樣性,利用Delphi設計了一組具有繼承關系的類,實現了把多變量、多垂直層次和多時間層次的Micaps格式數據文件轉換為GrADS數據格式文件的程序設計,并可自動生成CTL文件,有利于充分發揮GrADS強大的數據計算和作圖功能。程序在Windows下運行,具有操作簡便、界面友好、運行可靠的特點,其功能易于維護和擴充,例如可由TM2G-Base類派生其它的類,以適應不同操作環境和用戶需求下轉換數據的需要。

致謝:感謝昆明市科技局(昆科計字08S080002號)對本文的資助

[1] 劉輝權,肖天貴,邱靜雅.氣象預報預警系統開發中VB與GrADS、FORTRAN混合編程技術[J].成都信息工程學院院報,2011,26(2):208-214.

[2] 楊兆禮,萬齊林.實例分析如何用GrADS實現NetCDF格式轉換[J].廣東氣象,2008,30(5):47-49.

[3] 何瀚原,李清華,孫燕.利用GrADS軟件繪制山西區域氣象要素圖[J].科技情報開發與經濟,2007,17(7):302-303.

[4] 高文良,陳忠明,閔文彬.氣象繪圖軟件GrADS使用要點[J].四川氣象,2002,22(2):49-50.

[5] 吳艷青.GrADS繪圖軟件在臺站業務中的應用[J].遼寧氣象,2003,19(1):27-30.

[6] 李毓富,姬鴻麗,王貴鵬.用GrADS制作T639數值產品要素圖[J].氣象與環境科學,2009,32(增刊):315-319.

[7] 彭芳,吳古匯.GrADS繪圖軟件在Micaps站點資料的應用[J].貴州氣象,2009,33(6):30-32.

[8] 葉朗明,管勇,蘇耀墀.應用GrADS繪制Ncep再分析資料及Micaps格點資料[J].氣象研究與應用,2009,30(增刊):117-118.

[9] 楊建民,王宗仁,張紅英.GrADS腳本語言在格點資料轉化中的應用[J].科技情報開發與經濟,2007,17(31):196-197.

[10] 況雪源.GrADS繪圖系統在站點等值線中的應用[J].廣西氣象,2001,22(2):53-56.

[11] Marco Cantu.DELPHI6從入門到精通[M].北京:電子工業出版社,2002:38-51,62-75.

[12] Kent Reisdorph.輕松掌握DELPHI4[M].北京:電子工業出版社,1999:2-3,70-97.

主站蜘蛛池模板: 日本黄色不卡视频| 九九香蕉视频| 国产日本欧美亚洲精品视| 亚洲精品国产综合99久久夜夜嗨| 久久婷婷六月| 国产对白刺激真实精品91| 婷五月综合| 中文字幕无码电影| 91青青草视频在线观看的| 国产喷水视频| 强乱中文字幕在线播放不卡| yjizz国产在线视频网| 亚洲最新网址| 欧美成a人片在线观看| 国产精品极品美女自在线| 亚洲国产看片基地久久1024| 2021精品国产自在现线看| 国产精品无码AⅤ在线观看播放| 91小视频在线播放| 久久美女精品| 亚洲一区二区约美女探花| 五月婷婷丁香综合| 欧美日韩激情在线| 真实国产精品vr专区| 精品视频91| 午夜福利视频一区| 精品人妻无码区在线视频| 亚洲香蕉伊综合在人在线| 成年人视频一区二区| 欧美福利在线| 在线精品视频成人网| 亚洲国产成人精品一二区| 国产精品一区在线观看你懂的| 毛片在线区| 在线永久免费观看的毛片| 夜夜爽免费视频| 国产精品乱偷免费视频| 久久青草视频| 欧美色99| 99久久国产综合精品女同| 一本一道波多野结衣一区二区| 亚洲精品无码在线播放网站| 91香蕉视频下载网站| 亚洲第一精品福利| 国产一区免费在线观看| 国产精品美人久久久久久AV| 91精品国产91久无码网站| 欧美一区二区精品久久久| 精品第一国产综合精品Aⅴ| 天天色综网| 国产新AV天堂| 成年免费在线观看| 久久先锋资源| 亚洲第一中文字幕| 久久久精品久久久久三级| 美女内射视频WWW网站午夜 | 欧美另类图片视频无弹跳第一页| 超薄丝袜足j国产在线视频| 国产毛片不卡| 日本精品一在线观看视频| 无码一区中文字幕| 免费女人18毛片a级毛片视频| 亚洲另类色| 亚洲国产日韩视频观看| 伊人查蕉在线观看国产精品| 亚洲无码高清一区二区| 2021国产精品自产拍在线| 国产91av在线| 在线观看亚洲成人| 久久毛片网| 国产欧美日韩另类精彩视频| 国产簧片免费在线播放| 亚洲婷婷六月| 91精品国产综合久久香蕉922| 一本色道久久88| 国产精品女在线观看| 尤物成AV人片在线观看| 免费啪啪网址| 97视频在线精品国自产拍| 亚洲天堂久久久| 国产熟睡乱子伦视频网站| 九色视频在线免费观看|