?

三維云圖仿真系統設計與實現

2018-06-14 07:15王連杰
軟件 2018年5期
關鍵詞:云團云圖灰度

王連杰,韋 群

(1. 航天工程大學,北京 101400;2. 西昌衛星發射中心,四川 西昌 615000)

0 引言

隨著衛星遙感技術的不斷發展,氣象衛星通過搭載的各種氣象遙感器,能夠從太空進行全方位、全天候觀測,觀測的內容包括云圖的拍攝、云頂溫度和水汽、臭氧等內容,這些數據經地面站處理后,可以得到紅外云圖、水汽圖以及可見光云圖。然而,基層臺站目前接收的云圖數據基本上都是二維云圖,用戶根據云圖的顏色不同,對云圖進行分析。對比三維云圖而言,二維云圖不能反應云團的垂直分布特征,對臺風、低渦等天氣系統反應不夠直觀,真實感較差。

由于云狀能夠直接反應的大氣的活動狀態,國內外眾多學者開展了云圖的三維可視化研究。主要有申閆春等從二維云圖中提取云的三維信息,并利用改進的Billboard算法對其進行空間填充實現三維立體云的仿真[1];Mark J.Harris等人利用前向散射的云陰影算法,在運行過程中利用一階各向異性散射和幀對幀的相干性加快云的繪制速度,構建出的三維云圖仿真算法[2];還有郭勝等利用實時的紅外云圖數據,在數字地球上采用OGS三維渲染技術,實現云圖的三維顯示[3]。

前人的眾多研究,都為本文奠定了很強的理論基礎[4-5]。本文將采用基層臺站接收的紅外云圖數據,利用OpenGL圖形和模型庫,研究構建云圖的三維模型,設計并實現三維云圖仿真系統,該系統將極大的方便崗位人員掌握云團的變化情況,具有很強的現實意義。

1 紅外衛星云圖概述

1.1 紅外衛星云圖的探測原理

在氣象衛星上,安裝紅外線儀器對云層中的溫度進行測量,其測量結果將以灰度的形式表現出來,衛星上的紅外線儀器能夠接收紅外譜段為 10.5-12.5 μm的輻射,輻射通量的表達式為

其中上式表達式中Ts表示地表的溫度,?S表示衛星觀測地表的面積,??表示衛星儀器上觀測的立體角。通過上式(1)可知,如果云團的溫度越高,那么向外輻射的紅外輻射就會越強;反之就會越小。也可以認為紅外云圖反應的是溫度分布圖,通常云頂溫度高、輻射強的云團,對應的灰度值也相對較小,像素點表現比較暗,反之則相反[6]。

1.2 紅外云圖的數據格式

目前,對于基層臺站而言,最為簡單和直接的方法獲取衛星云圖數據就是通過 CMACast系統接收衛星云圖數據,其數據格式采用Micaps第十三類數據格式,具體紅外云圖的數據內容見表1所示。

表1 第十三類數據圖像文件Tab.1 13th Class data image file

文件的描述部分共有128個字符組成,在描述文件后,就是存儲的云圖數據,該數據全部為二進制數據文件,按照先X方向后Y方向的順序進行存儲,每一個像素點占一個字節。

2 總體設計

2.1 系統目標

云團的變化能夠直接反應大氣運動的狀態,因此對于云狀的觀測始終是氣象觀測的重點。但對于基層臺站觀測員而言,夜間往往會受到光線或視野的影響,造成觀測結果的不準確,進而影響天氣預報的制作。另外,預報員在分析云圖過程中,部分云系的特征不夠明確,也可能造成崗位人員對天氣系統的誤判。

根據紅外衛星云圖夜間能夠成像的特點,研究實現三維云圖仿真系統,將有效提高對云狀的判斷準確度。系統需要完成以下功能:(一)應用接收到紅外云圖數據,實現云圖的二維、三維顯示;(二)云圖數據瀏覽過程中,能夠實現向前、向后翻頁、旋轉、平移、縮放以及動畫功能;(三)對于云圖成像過程中,用戶可以應用不同的調色板,改變云圖的顏色,并且能夠將云圖數據輸出。

2.2 系統功能模塊設計

根據系統的目標,本系統可分為數據導入和數據顯示兩個模塊,各個子功能模塊如圖1所示。

圖1 三維云圖仿真系統功能模塊Fig.1 Functional modules of 3D cloud map simulation system

數據導入模塊是整個系統的數據來源,主要是用于將云圖、地圖以及調色板數據導入到系統。其中云圖數據中存儲了大量的灰度值信息,在讀取過程中需要根據云圖描述文件中x、y軸圖像的大小,將灰度值數據存儲到數組中;載入地圖的大小則根據云圖描述文件中的頭文件中包含經緯度數據信息,將與云圖數據相應大小的bmp文件載入到系統中,以實現地理信息顯示的功能;調色板中的數據主要用于將灰度值與各顏色分量進行轉換,實現云圖的著色。

數據顯示是整個系統實現功能的核心部分,主要用于將載入系統的云圖數據,經過數據網格化處理,構建出三維云圖模型,與地圖文件共同實現云圖的顯示,并且在可視化過程中,能夠實現對云圖的縮放、平移、動畫、旋轉等功能,便于用戶的瀏覽。

2.3 系統坐標系

在自然界之中,任何大于絕對零度的物體,都會向外產生黑體輻射,并且隨著物體溫度越高,輻射也會越強。在云團中,高度每上升 1000m,云團的溫度就會下降 6℃,當云團的溫度越高,表明云圖越貼近地面,則該類云圖對應的灰度值就會變小,在云圖顯示過程中表現的色調就越暗,如圖2所示。

圖2 紅外云圖三維仿真原理示意圖Fig.2 Schematic diagram of three dimensional simulation principle of infrared cloud image

由于云圖的灰度值與云團高度具有一定的相關性,云團的灰度值越大,則表明云團的高度越高,可以利用云圖的灰度值來近似的反應云團的高低起伏變化。此外,在云圖的頭文件中包含了經緯度起始坐標信息和圖像的大小,因此可以選用經度坐標為x軸坐標,緯度坐標為y軸坐標,云圖的灰度值為z軸坐標的方式來構建云圖的坐標系,其視口坐標系如下圖3所示。

圖3 OpenGL 視口中的坐標系Fig.3 Coordinate system in OpenGL viewport

3 關鍵技術

3.1 云圖三維模型構建

在構建云圖的三維模型過程中,除了需要云團的經緯度信息準確以外,還需要利用灰度值來準確的反應云頂的高度,將相鄰的像素點進行連接,這是構建云圖仿真系統的關鍵。在設置云圖的高度值時,發現直接使用灰度值作為高度值,會造成云圖三維模型上下起伏過于明顯,三維云圖仿真效果不夠理想。因此在使用灰度值數據過程中,采用將灰度值數據除以10,作為云圖的高程值,能夠有效降低了云圖的上下起伏程度,提高云圖顯示效果,還不會造成云圖信息的丟失。此外,為了達到快速將三角形連接起來的目的,本系統選用OpenGL中的GL_TRIANGLE_STRIP線型連續填充函數來構造三角形,該函數在繪制三角形過程中,對比其他OpenGL幾何圖元函數,能夠使三角形更加具有連續性,其繪制方法是根據函數頂點的奇偶性來將云圖數據中的每3個像素點連接成為一個小三角形,如圖4所示。

圖4 GL_TRIANGLE_STRIP 函數幾何圖元示意圖Fig.4 GL_TRIANGLE_STRIP function geometric diagram

3.2 法向量的處理

在構建云圖的三維模型過程中,如果不對光照的反射進行處理,則會導致模型表面不夠光滑,出現棱角不夠分明,圖像看不出的情況發生,因此對頂點法向量進行處理就顯得尤為重要。在衛星云圖數據中,由于該類數據并沒有保存頂點的法向量信息,因此需要通過逐個計算得到頂點法向量數據,本系統通過構建云圖的三維模型過程中,共構造出了512*511個三角形,計算頂點法向量的過程如下:

(1)計算每個三角形的平面法向量;平面上有P0、P1、P2三個點,那么其法向量為N。

其中

(2)將平面法向量進行歸一化處理,得到法向單位向量e;

(3)一個點的法向量等于以該點為頂點的所有三角形的法向量之和平均值,在云圖的網格之中一個點法向量往往由8個三角形面求平均而得出,由8個單位法向量的平均值既可以得到該點的頂點法向量。

3.3 調色板及透明度處理

在構建完云圖的三維模型后,可以采用紋理映射的方式為云團進行著色,實現云圖的三維顯示。但是由于云系高低起伏不平,高云和低云之間存在著顏色上的差異,相對而言,使用紋理映射的方式會造成大量的數據進入到內存中。為此本文在實現過程中,采用glColor4ub函數為每個頂點以及組成三角形的邊,賦值相應的像素值顏色。在賦值過程中,由于OpenGL中的glColor4ub其顏色強度值為0-255,而 Micaps調色板中各顏色分量強度為0-65535,其轉換公式為

利用公式(8),可以將Micaps中的顏色強度進行轉換,得到適用于glColor4ub的顏色強度。

另外,在云系的顯示過程中,存在著一些云系不連續的過渡地帶,在系統在設計實現過程中,需要采用glColor4ub函數來控制Alpha的值,根據在多年工作中的經驗,系統將灰度值在112.5-176.25,設置為云團的過渡地帶,當灰度值小于112.5,則認為探測到的為地物向外的輻射,其透明度為 0;而大于 176.25,則默認為云圖的紅外輻射,全部進行顯示;其余則為過渡云團的顏色。

4 三維云圖仿真系統詳細設計

在三維云圖仿真過程中,主要步驟可以分為(一)讀取云圖文件,并實現云圖數據網格化;(二)利用OpenGL構造三角模型,并計算三角形中各個頂點的法向量,根據調色板為云團進行著色處理;(三)將得到的三維云圖和地圖進行融合顯示,系統的函數關系圖如圖5所示。

4.1 讀取云圖文件模塊設計

在應用MFC開發過程中,使用Doc類來管理、加載以及保存應用程序的數據。本系統在開發過程中,將云圖數據的加載、讀取以及獲取云圖的標題等功能在CCloudFile類中實現(如圖6所示),CDoc類依賴于File類實現相應的功能。其中由于云圖的灰度值范圍為0-255,因此將存儲云圖數據的數組設置成為unsigned char型,使其顯示的數據范圍為0-255。

圖5 函數關系圖Fig.5 Function relation graph

4.2 繪制云圖模塊設計

3dCloudView作為仿真系統的核心類,其在實現過程中數據來源于Doc類,在構建云圖的三維模型主要通過DrawCloud函數實現,首先將云圖數據網格化后,再使用OpenGL函數對云團進行透明化處理,為云團進行著色;另外,還需要在該類中還需要使用LoadMap函數實現地理底圖的加載,以及DrawMap函數實現地圖文件的繪制,其在實現過程中,還需要依賴Pal類獲取灰度的轉換信息和Graph類實現OpenGL的信息。

4.3 可視化功能實現

MainFrame該類主要用于實現仿真系統的各項功能,主要的功能有實現云圖的前后翻頁、動畫、全屏、保存、云圖的前后翻頁等功能。

5 系統的實現

本系統主要是基于 OpenGL函數庫和 MFC類庫,利用C++語言,進行的系統開發。在使用該系統進行顯示云圖過程中,能夠準確顯示云圖中所包含的信息,臺風等云系特征明顯,圖6為系統運行效果圖。

圖6 三維云圖仿真系統運行效果圖Fig.6 Running effect Map of 3D Cloud image simulation system

6 結論

本文詳細闡述了三維云圖仿真系統實現過程中所涉及到的關鍵問題,主要對云圖三維模型構建與調色板應用進行了詳細的闡述,并對系統的詳細設計進行了重點闡述。經過實例證明,應用該系統可以實現云圖的三維仿真顯示,有效提高了云圖數據的使用效率。但是,本系統目前只能夠提供三維云圖的瀏覽,功能上相對簡單,今后將擴展本系統的功能,進一步挖掘云圖中的信息。

[1] 申閆春, 朱幼虹, 曹莉, 溫轉萍. 基于OSG的三維仿真平臺的設計與實現[J]. 計算機仿真, 2007(06): 207-211.

[2] Mark J. Harris and Anselmo Lastra Department of Computer Science, University of North Carolina, Chapel Hill, North Carolina, USA Real- Time Cloud Rendering EUROGRAPHICS 2001/A. Chalmers and T.- M. Rhyne.

[3] 葛亮, 姜曉峰, 倪小軍. 一種云場景的實時渲染方法[J].計算機工程與應用, 2011, 47(11): 167-170.

[4] 汪歸歸, 宋歌, 陳安太, 楊紅雨. 飛行模擬場景中三維云的實時建模和繪制[J]. 計算機工程與設計, 2011, 32(07):2414-2416+2522.

[5] 佟志忠, 姜洪洲, 韓俊偉. 面向飛行模擬的云仿真及其實時繪制[J]. 吉林大學學報(工學版), 2008(06): 1434-1440.

[6] 孫文廣, 吳玲達, 宋漢辰, 張玉新. 基于紅外衛星云圖的云的三維表現[A]. 中國計算機學會、中國圖象圖形學學會、ACM SIGCHI中國分會、清華大學計算機科學與技術系.第一屆建立和諧人機環境聯合學術會議(HHME2005)論文集[C]. 中國計算機學會、中國圖象圖形學學會、ACM SIGCHI中國分會、清華大學計算機科學與技術系, 2005: 6.

[7] 李培軍, 譚永強. 一種基于衛星云圖定量估計的三維顯示方法[J]. 氣象科學, 2007(03): 329-334.

猜你喜歡
云團云圖灰度
采用改進導重法的拓撲結構灰度單元過濾技術
巴蜀少年齊上一堂云團課
基于灰度拉伸的圖像水位識別方法研究
成都云圖控股股份有限公司
黃強先生作品《雨后松云圖》
面陣探測下的污染云團紅外光譜仿真?
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
基于TV-L1分解的紅外云圖超分辨率算法
基于灰度線性建模的亞像素圖像抖動量計算
葡萄牙現明亮橘色云團似握著火球的拳頭
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合