国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種海洋水體虛擬現(xiàn)實(shí)的建模方法

      文檔序號(hào):6575868閱讀:273來(lái)源:國(guó)知局

      專利名稱::一種海洋水體虛擬現(xiàn)實(shí)的建模方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及海洋水體建模方法,具體涉及一種海洋水體虛擬現(xiàn)實(shí)的建模方法。用于實(shí)現(xiàn)海洋水體的快速、實(shí)時(shí)建模,運(yùn)用該方法可在中國(guó)海區(qū)域內(nèi)任意劃定觀測(cè)區(qū)進(jìn)行三維建模。
      背景技術(shù)
      :海洋約占地球表面積的71%,是一個(gè)開(kāi)放的、具有多樣性的復(fù)雜系統(tǒng),其中有各種不同的時(shí)空尺度和不同層次的物質(zhì)存在和運(yùn)動(dòng)形態(tài)。目前海洋水體的表達(dá)主要以電子海圖等二維地圖方式,海洋溫度、鹽度、透明度等反演數(shù)據(jù)多以文本的形式存在。隨著海洋資源的開(kāi)發(fā)與利用,對(duì)于海洋水體與海洋環(huán)境反演數(shù)據(jù)三維建模與可視化的需求逐漸增加。海洋資源的開(kāi)發(fā)與利用要以海洋特征和規(guī)律為基礎(chǔ),計(jì)算機(jī)技術(shù)、虛擬現(xiàn)實(shí)技術(shù)等相關(guān)技術(shù)的發(fā)展為海洋水體三維建模提供了強(qiáng)有力的技術(shù)支撐。本發(fā)明的虛擬現(xiàn)實(shí)海洋水體實(shí)時(shí)建模是了解海洋綜合環(huán)境的重要手段,是再現(xiàn)海洋溫度、鹽度、透明度等相關(guān)物理量指標(biāo)的新方法。本研究提出的基于RS和GIS的海洋水體虛擬現(xiàn)實(shí)建模方法可以實(shí)現(xiàn)海洋水體的快速、實(shí)時(shí)建模,并能對(duì)中國(guó)海任意劃定區(qū)域的水體建模。隨著"數(shù)字海洋"的提出,國(guó)內(nèi)外海洋三維實(shí)時(shí)建模研究日益成為熱點(diǎn),見(jiàn)[l]RinehartR,WrightD.BenthicHabitatClassificationand3-DVisualizations[C].AssociationofAmericanGeographersCentennialMeeting,American,Samoa,2004.[2]AlanM,etal.Visually-enabledGeo~collaborationtoSupportDataExploration&Decision-making[C].Proceedingsofthe21stInternationalCartographicConference,Durban,SouthAfrica,2003[3]上官偉,等.真實(shí)海洋環(huán)境視景仿真技術(shù)研究[J].系統(tǒng)仿真學(xué)報(bào).2006:18(增2)。此外,國(guó)內(nèi)外商用軟件也不斷推出,例如MultiGen-Pamdigm.Inc的Vega。但海洋三維實(shí)時(shí)建模研究尚處于起步階段,實(shí)時(shí)性不高,數(shù)據(jù)來(lái)源多樣、復(fù)雜,商用軟件價(jià)格昂貴都是目前存在的主要問(wèn)題。虛擬現(xiàn)實(shí)(VirtualReality)是在計(jì)算機(jī)中構(gòu)造出一個(gè)形象逼真的模型,從而生成一種具有三維世界效果的模擬環(huán)境。它是利用計(jì)算機(jī)對(duì)復(fù)雜數(shù)據(jù)進(jìn)行可視化操作與交互的一種高科技手段,通過(guò)模擬的仿真虛擬環(huán)境使參觀者得到身歷其境的感覺(jué)。OpenGL(OpenGraphicsLibrary)圖形系統(tǒng)是一個(gè)軟件接口,讓程序員能夠創(chuàng)建交互式程序,使用計(jì)算機(jī)圖形學(xué)技術(shù)生成具有真實(shí)感的圖像。使用OpenGL可以控制計(jì)算機(jī)圖形學(xué)技術(shù)來(lái)生成真實(shí)感圖形。OpenGL包括大約250個(gè)函數(shù),用戶可以使用它們來(lái)指定物體和操作,以創(chuàng)建交互式三維應(yīng)用程序。本發(fā)明中涉及到的OpenGL坐標(biāo)系統(tǒng)包括以下三種世界坐標(biāo)是OpenGL中用來(lái)描述場(chǎng)景的坐標(biāo),Z軸垂直屏幕向外,X軸從左到右,Y軸從下到上,是右手笛卡爾坐標(biāo)系統(tǒng)。物體坐標(biāo)是以物體某一點(diǎn)為原點(diǎn)而建立的"世界坐標(biāo)",該坐標(biāo)系僅對(duì)該物體適用,用來(lái)簡(jiǎn)化對(duì)物體各部分坐標(biāo)的描述。物體放到場(chǎng)景中時(shí),各部分經(jīng)歷的坐標(biāo)變換相同,相對(duì)位置不變,所以可視為一個(gè)整體,與人類的思維習(xí)慣一致。眼坐標(biāo)是以視點(diǎn)為原點(diǎn),以視線的方向?yàn)閆軸正方向的坐標(biāo)系中的方向。隨著海洋環(huán)境衛(wèi)星遙感的發(fā)展,大量的RS數(shù)據(jù)己經(jīng)或正在應(yīng)用GIS技術(shù)進(jìn)行管理與維護(hù),海洋環(huán)境衛(wèi)星遙感數(shù)據(jù)具有范圍廣、實(shí)時(shí)性高等特點(diǎn),通過(guò)方便可行的數(shù)據(jù)處理方法和虛擬現(xiàn)實(shí)實(shí)時(shí)建??梢允勾罅康腞S數(shù)據(jù)成為反映海洋水體的最直觀的資料之一。
      發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種海洋水體虛擬現(xiàn)實(shí)的建模方法。海洋水體虛擬現(xiàn)實(shí)的建模方法如下步驟1)通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集;2)對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速查詢;3)OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、坐標(biāo)系沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置;4)根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體;5)以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模;6)由平行輪廓線"投影"和地形模擬拉伸獲得柵格數(shù)據(jù)集物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果。所述的通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集步驟是將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭和數(shù)據(jù)體以文件流的形式讀入內(nèi)存,再將其按照柵格數(shù)據(jù)集的數(shù)據(jù)組織方式寫入柵格數(shù)據(jù)集,利用Internet信息服務(wù)器檢測(cè)目標(biāo)文件夾下的數(shù)據(jù)文件,轉(zhuǎn)換入庫(kù)后刪除源文件。所述的對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速査詢步驟基于時(shí)間可視化方式的存儲(chǔ)是將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭中的產(chǎn)品周期、產(chǎn)品生成時(shí)間段、產(chǎn)品生成時(shí)間點(diǎn)分別保存在產(chǎn)品元數(shù)據(jù)表、周期性時(shí)間元數(shù)據(jù)表和瞬時(shí)性時(shí)間元數(shù)據(jù)表中,以標(biāo)準(zhǔn)的SQL時(shí)間査詢語(yǔ)句可快速的査詢出時(shí)間集合內(nèi)的數(shù)據(jù)集。所述的OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、XY軸坐標(biāo)平面沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置步驟OpenGL默認(rèn)的世界坐標(biāo)系統(tǒng)的X軸、Y軸和Z軸坐標(biāo)單位長(zhǎng)度是統(tǒng)一的,但考慮到海洋水體數(shù)據(jù)的特征,即水平方向(X,Y)坐標(biāo)范圍為(東經(jīng)180度至西經(jīng)180度,北緯90度至南緯90度),而全球海洋深度由0米至-10000多米不等,X軸、Y軸方向與Z軸方向的坐標(biāo)單位長(zhǎng)度相差2倍數(shù)量級(jí)以上,則會(huì)造成Z軸方向過(guò)于陡峭,建模效果不佳。所以,將Z軸坐標(biāo)的單位長(zhǎng)度縮小為原始長(zhǎng)度的1/100,即X軸、Y軸的1單位長(zhǎng)度,在Z軸上為100。OpenGL場(chǎng)景的世界坐標(biāo)系統(tǒng)與眼坐標(biāo)系統(tǒng)的XY軸平面是重合于屏幕平面的,所以需要將坐標(biāo)系統(tǒng)沿垂直屏幕方向向屏幕內(nèi)平移。世界坐標(biāo)系統(tǒng)為右手笛卡爾坐標(biāo)系統(tǒng),XY軸平面與屏幕平行,生成場(chǎng)景的海平面與屏幕相平行,這與海平面應(yīng)處于水平方向的常識(shí)不符,因此,要將坐標(biāo)系旋轉(zhuǎn)至Z軸向上,X軸水平向右為正方向、Y軸向上為正方向。代碼如下GL.glScaled(l.0,1.0,1.0/100.0);GL.glTranslatef(0.0f,-200.0f,0.0f);GL.glRotated(90.0,1.0,0.0,0.0);所述的根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體步驟:根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線,利用GIS的方法裁剪、掩膜海表輪廓線外的區(qū)域,構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體。將輪廓線沿Z軸向下移動(dòng)至海底地形數(shù)字高程模型的最大深度,兩平行輪廓線之間以上下輪廓線上的拐點(diǎn)利用OpenGL構(gòu)造矩形面,并透明顯示。海洋水體柱狀體X軸、Y軸平面內(nèi)的尺寸取決于用戶在二維電子地圖中繪制的閉合多邊形的尺寸,海洋水體深度Z軸方向是海底地形數(shù)字高程模型的最大深度。所述的以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模步驟利用OpenGL在頂面進(jìn)行海洋波浪紋理映射,貼圖的位置信息來(lái)源于二維輪廓線,因海表為任意多邊形,所以采用環(huán)繞模式"鏡像"重復(fù)與裁剪來(lái)"補(bǔ)足"海表多邊形映射或裁剪紋理,把海底地形數(shù)字高程模型先轉(zhuǎn)換為文本文件格式,再用OpenGL原語(yǔ)描述出來(lái),從而轉(zhuǎn)化成OpenGL可識(shí)別的圖形函數(shù),海底地形采用單一顏色渲染,利用光照視點(diǎn)位置、視線方向、光照參數(shù)設(shè)置反映高程的變化。所述的由平行輪廓線"投影"和地形模擬拉伸獲得柵格數(shù)據(jù)集物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果步驟海洋水體柱狀體的側(cè)面用來(lái)表達(dá)海洋環(huán)境反演數(shù)據(jù)隨深度變化的情況,通過(guò)平行輪廓線"投影"的方式將海表輪廓線映射到海洋環(huán)境反演數(shù)據(jù)的各分層信息上,得到海洋環(huán)境反演數(shù)據(jù)的二維輪廓線范圍內(nèi)的橫截面。經(jīng)預(yù)處理的海洋環(huán)境柵格數(shù)據(jù)集的像素為(x,y,value),其中包含坐標(biāo)和物理量。海洋環(huán)境柵格數(shù)據(jù)集經(jīng)由文本文件轉(zhuǎn)換至OpenGL原語(yǔ),再由地形模擬拉伸,即將物理量值value作為高程方向Z的坐標(biāo),以數(shù)字高程模型的方式拉伸獲得顯著直觀的分層信息。海洋水體表面采用透明顯示以便從任意角度透視各分層海洋環(huán)境反演數(shù)據(jù)。本發(fā)明與現(xiàn)有技術(shù)相比具有有益效果1)實(shí)時(shí)的三維海洋水體建模,有效的利用了海洋環(huán)境衛(wèi)星遙感數(shù)據(jù),提出了從衛(wèi)星數(shù)據(jù)到OpenGL建模的解決方法,大大縮短了數(shù)據(jù)處理周期,與傳統(tǒng)船測(cè)數(shù)據(jù)相比,時(shí)效性有了很大的提高;2)對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速査詢;3)通過(guò)海表試驗(yàn)區(qū)輪廓線構(gòu)建方法可以構(gòu)造出任意觀測(cè)區(qū)的海洋水體立方體。這種實(shí)時(shí)的體構(gòu)造方法能夠更好的適應(yīng)用戶的需要;4)海洋水體虛擬現(xiàn)實(shí)建模是海洋環(huán)境監(jiān)測(cè)的新手段。在建模完成后,能夠清晰的反映出海洋溫度、鹽度、透明度等海洋環(huán)境反演數(shù)據(jù)物理量的變化情況,能夠很好的對(duì)海洋環(huán)境進(jìn)行監(jiān)測(cè),預(yù)報(bào)海洋自然災(zāi)害的發(fā)生,例如赤潮等;5)本發(fā)明是基于RS和GIS環(huán)境下,利用OpenGL作為建模工具實(shí)現(xiàn)三維海洋水體建模的新手段。有效的利用了海洋環(huán)境衛(wèi)星遙感資料,通過(guò)劃定中國(guó)海范圍內(nèi)任意觀測(cè)區(qū)實(shí)現(xiàn)實(shí)時(shí)的三維海洋水體建模,可視化結(jié)果清晰、直觀。本發(fā)明在海洋環(huán)境監(jiān)測(cè)領(lǐng)域應(yīng)用前景非常廣闊。圖l為本發(fā)明中RS海洋環(huán)境反演數(shù)據(jù)源文件格式示意圖;圖2為本發(fā)明基于GIS的海洋環(huán)境反演數(shù)據(jù)處理方法示意圖;圖3為本發(fā)明基于時(shí)間的可視化存儲(chǔ)方法示意圖;圖4為本發(fā)明建模前坐標(biāo)系統(tǒng)轉(zhuǎn)換示意圖;圖5為本發(fā)明海表試驗(yàn)區(qū)輪廓線構(gòu)建海表示意圖;圖6為本發(fā)明環(huán)繞模式"鏡像"重復(fù)與裁剪示意圖;圖7為本發(fā)明場(chǎng)景生成的數(shù)據(jù)準(zhǔn)備步驟示意圖;圖8為本發(fā)明生成的海洋水體場(chǎng)景示意圖。具體實(shí)施例方式海洋水體虛擬現(xiàn)實(shí)的建模方法如下步驟1)通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集;2)對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于吋間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速查詢;3)OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、坐標(biāo)系統(tǒng)沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置;4)根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體;5)以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模;6)由平行輪廓線"投影"和地形模擬拉伸獲得柵格數(shù)據(jù)集物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果。所述的通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集步驟原始海洋環(huán)境反演數(shù)據(jù)是十六進(jìn)制的文本文件格式,如圖1所示,具體格式如下表所示<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭和數(shù)據(jù)體以文件流的形式讀入內(nèi)存,使用循環(huán)行與列的方法讀取數(shù)據(jù)塊中的物理量。再將其按照柵格數(shù)據(jù)集的數(shù)據(jù)組織方式寫入柵格數(shù)據(jù)集,即按照頭文件的信息設(shè)置柵格數(shù)據(jù)集的寬度、高度、象元大小、空間參考、波段數(shù),將數(shù)據(jù)塊中的數(shù)據(jù)寫入像素塊中的像素。圖2是基于GIS的海洋環(huán)境反演數(shù)據(jù)處理方法示意圖。利用Internet信息服務(wù)器檢測(cè)目標(biāo)文件夾下的數(shù)據(jù)文件,轉(zhuǎn)換并入庫(kù)后刪除源文件。System.Timers.TimersetTimer=newSystem.Timers.Timer(2000);setTimer.Elapsed+=newElapsedEventHandler(setTimer—Elapsed);setTimer.Enabled=true;setTimer.AutoReset=true;setTimer.Start();所述的對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速查詢步驟基于時(shí)間可視化方式的存儲(chǔ)是將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭中的周期性產(chǎn)品的周期值存放在產(chǎn)品元數(shù)據(jù)表中,非周期性產(chǎn)品存儲(chǔ)為0;周期性時(shí)間元數(shù)據(jù)表存儲(chǔ)起始日期(SDate)、終止日期(EDate)字段分別存儲(chǔ)產(chǎn)品的開(kāi)始年月日和終止年月日;起始時(shí)間(STime)、終止時(shí)間(ETime)字段存儲(chǔ)產(chǎn)品的開(kāi)始時(shí)分秒和終止時(shí)分秒。瞬時(shí)性時(shí)間元數(shù)據(jù)表存儲(chǔ)瞬時(shí)性時(shí)間點(diǎn)的日期(Date)和時(shí)間(Time)。產(chǎn)品時(shí)間采用以上字段的集合來(lái)存儲(chǔ)。以上時(shí)間存儲(chǔ)對(duì)象與SQL標(biāo)準(zhǔn)中的時(shí)間類型一致,所以采用標(biāo)準(zhǔn)的SQL語(yǔ)言即可快速的査詢出時(shí)間集合內(nèi)的數(shù)據(jù)集。具體的表存儲(chǔ)方式如圖3所示。所述的OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、XY軸坐標(biāo)平面沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置步驟OpenGL默認(rèn)的世界坐標(biāo)系統(tǒng)的X軸、Y軸和Z軸坐標(biāo)單位長(zhǎng)度是統(tǒng)一的,但考慮到海洋水體數(shù)據(jù)的特征,即水平方向(X,Y)坐標(biāo)范圍為(東經(jīng)180度至西經(jīng)180度,北緯90度至南緯90度),而全球海洋深度由0米至-10000多米不等,X軸、Y軸方向與Z軸方向的坐標(biāo)單位長(zhǎng)度相差2倍數(shù)量級(jí)以上勢(shì)必會(huì)造成Z軸方向過(guò)于陡峭,建模效果不佳。所以,將Z軸坐標(biāo)的單位長(zhǎng)度縮小為原始長(zhǎng)度的1/100,即X軸、Y軸的1單位長(zhǎng)度,在Z軸上為100。OpenGL場(chǎng)景的世界坐標(biāo)系統(tǒng)與眼坐標(biāo)系統(tǒng)的XY軸平面是重合于屏幕平面的,所以需要將坐標(biāo)系統(tǒng)沿垂直屏幕方向向屏幕內(nèi)平移。世界坐標(biāo)系統(tǒng)為右手笛卡爾坐標(biāo)系統(tǒng),XY軸平面與屏幕平行,生成場(chǎng)景的海平面與屏幕相平行,這與海平面垂直于人眼視線方向的常識(shí)不服,要將坐標(biāo)系旋轉(zhuǎn)至Z軸向上,X軸水平向右為正方向、Y軸向上為正方向。坐標(biāo)系統(tǒng)轉(zhuǎn)換前后效果圖如圖4所示。代碼如下GL.glScaled(l.O,l.O,1.0/100.0);GL.glTmnslatef(0.0f,-200.0f,0.0f);GL.glRotated(90.0,1.0,0.0,0.0);所述的根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體步驟:根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線,利用GIS的方法裁剪、掩膜海表輪廓線外的區(qū)域,構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體。將輪廓線沿z軸向下移動(dòng)至海底地形數(shù)字高程模型的最大深度,兩平行輪廓線之間以上下輪廓線上的拐點(diǎn)利用OpenGL構(gòu)造矩形面,并透明顯示。海洋水體柱狀體X軸、Y軸平面內(nèi)的尺寸取決于用戶在二維電子地圖中繪制的閉合多邊形的尺寸,海洋水體深度Z軸方向是海底地形數(shù)字高程模型的最大深度。所述的根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體步驟設(shè)置OpenGL的三維空間坐標(biāo)系統(tǒng)后,將其X軸、Y軸與空間數(shù)據(jù)的經(jīng)緯度空間坐標(biāo)相一致,根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線利用GIS的方法裁剪、掩膜海表輪廓線外的區(qū)域,構(gòu)建三維海洋水體表面,如圖5。以平行輪廓線"投影"生成海洋水體立方體模型的主體,海洋水體柱狀體X軸、Y軸平面內(nèi)的尺寸取決于用戶在二維電子地圖中繪制的任意多邊形的尺寸,海洋水體深度Z軸方向是海底地形數(shù)字高程模型的最大深度。所述的以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模步驟利用OpenGL在頂面進(jìn)行海洋波浪紋理映射,貼圖的位置信息來(lái)源于二維輪廓線,因海表為任意多邊形,所以采用環(huán)繞模式"鏡像"重復(fù)與裁剪來(lái)"補(bǔ)足"海表多邊形映射或裁剪紋理,把海底地形數(shù)字高程模型先轉(zhuǎn)換為文本文件格式,再用OpenGL原語(yǔ)描述出來(lái),從而轉(zhuǎn)化成OpenGL可識(shí)別的圖形函數(shù),海底地形采用單一顏色渲染,利用光照視點(diǎn)位置、視線方向、光照參數(shù)設(shè)置反映高程的變化。光源和視線設(shè)置方法如下//定義一個(gè)隨相機(jī)移動(dòng)的移動(dòng)光源staticfloat[]ambient={0.5f,0.5f,0.5f,l.Of};staticfloat[]diffUseLight={l.Of,l.Of,l.Of,l.Of};staticfloat[]specularLight={l.Of,l.Of,l.Of,l.Of};staticfloat[]lightPosition={O.Of,400.0f,200.0f,l.Of};〃初始化光源GL,glEnable(GL.GL一LIGHTING);〃設(shè)置光源GL.glLightfV(GL.GL—LIGHT0,GL.GL一AMBIENT,ambient);GL.glLightfv(GL.GL—LIGHT0,GL.GL—DIFFUSE,diffbseLight);GL.glLightfv(GL.GL—LIGHTO,GL.GL_SPECULAR,specularLight);GL.glLightfv(GLGL一LIGHTO,GL.GL一POSITION,lightPosition);GL.glEnable(GLGL_LIGHT0);〃動(dòng)態(tài)設(shè)置光源函數(shù)publicstaticvoidSetLight()Vector3vec=MyView.MyCamera.getPosition();lightPosition=newfloat[]{vec.x+0.0000000100f,vec.y-0.000000003f,vec.z-0.180f,l.Of};〃視線初始化向量值Vector3zero=newVector3(0.0f,0.0f,0.0f);Vector3view=newVector3(0.0f,l.Of,0.5f);Vector3up=newVector3(0.0f,0.0f,l.Of);//Vector3為自定義的數(shù)據(jù)類型,是一個(gè)三維向量數(shù)據(jù)Position=zero;View—view;UpVector=up;〃設(shè)置視點(diǎn)位置publicvoidsetLook(){GL.gluLookAt(Position.x,Position.y,Position.z,View.x,View.y,View.z,UpVector.x,UpVector.y,UpVector.z);所述的由平行輪廓線"投影"和地形模擬拉伸獲得海洋環(huán)境反演數(shù)據(jù)物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果步驟海洋水體柱狀體的側(cè)面用來(lái)表達(dá)海洋環(huán)境反演數(shù)據(jù)隨深度變化的情況,通過(guò)平行輪廓線"投影"的方式,即利用GIS的方法裁剪、掩膜海表輪廓線外的區(qū)域?qū)⒑1磔喞€映射到海洋環(huán)境反演數(shù)據(jù)的各分層信息上,得到海洋環(huán)境反演數(shù)據(jù)的二維輪廓線范圍內(nèi)的橫截面。經(jīng)預(yù)處理的海洋環(huán)境柵格數(shù)據(jù)集的像素為(x,y,value),包含坐標(biāo)和物理量。海洋環(huán)境柵格數(shù)據(jù)集經(jīng)由文本文件轉(zhuǎn)換至OpenGL原語(yǔ),再由地形模擬拉伸,即將物理量值value作為高程方向Z的坐標(biāo),以數(shù)字高程模型的方式拉伸獲得顯著直觀的分層信息。海洋水體表面采用透明顯示以便從任意角度透視各分層海洋環(huán)境反演數(shù)據(jù)。實(shí)施例以2006年3月的海洋遙感溫度反演數(shù)據(jù)為例,首先以文件流方式讀取其頭文件內(nèi)的信息如下<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>第二、將頭文件內(nèi)的信息存儲(chǔ)到元數(shù)據(jù)表中。其中,周期性產(chǎn)品的周期值存放在元數(shù)據(jù)表中,非周期性產(chǎn)品存儲(chǔ)為0,以此數(shù)據(jù)為例,周期值為31;將儒略日轉(zhuǎn)換為月和日,此處周期性產(chǎn)品時(shí)間記錄表存儲(chǔ)起始日期(2006-03-01)、終止日期(2006-03-31);以上時(shí)間存儲(chǔ)對(duì)象與SQL標(biāo)準(zhǔn)中的時(shí)間類型一致,所以采用標(biāo)準(zhǔn)的SQL語(yǔ)言即可快速的查詢出時(shí)間集合內(nèi)的數(shù)據(jù)集。第三、Z軸縮放、XY軸坐標(biāo)平面沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置。第四、用戶在海表劃定任意閉合多變形,柵格數(shù)據(jù)掩膜輪廓線以外的象元,矢量數(shù)據(jù)裁剪輪廓線以外的線段。海洋水體采用平行輪廓線"投影"的方法。將輪廓線投影至海底地形曲面,取該投影范圍的曲面內(nèi)水深DEM的最大谷值點(diǎn),以該點(diǎn)構(gòu)造一個(gè)平行于海表的平面。這樣就構(gòu)成了兩相鄰平行面。然后,依次連接上下輪廓線上各點(diǎn)形成矩形曲面。第五、紋理對(duì)象釆用二維的海面波紋BMP格式圖像。在進(jìn)行海表紋理映射時(shí)要確保各個(gè)頂點(diǎn)都指定了紋理坐標(biāo)。用戶在中國(guó)海區(qū)域內(nèi)劃定的觀測(cè)區(qū)范圍不定,而B(niǎo)MP紋理的寬度與高度固定,所以海面波紋的BMP圖像的左側(cè)、右側(cè)以及上方、下方邊緣相鄰時(shí)為了達(dá)到較好的銜接效果,采用環(huán)繞模式"鏡像"重復(fù)與裁剪,海表邊緣不滿一副紋理大小的部分利用裁剪的方式補(bǔ)足。第六、海底地形采用單一顏色渲染,利用OpenGL繪制三維海底地形模型之前,設(shè)置光源、視點(diǎn)位置、視線方向等參數(shù)。第七、同樣采用試驗(yàn)區(qū)輪廓線構(gòu)建方法獲得海洋溫度、鹽度、透明度物理量橫截面,以物理量值作為高程值,采用與地形建模相同的方式,以單一顏色和設(shè)置光源參數(shù)的方式表達(dá)出物理量的變化。由于物理量是位于體中的斷面,所以體表需要設(shè)置透明度,透明度在(0,1)區(qū)間內(nèi),根據(jù)需要選擇。圖7是利用上述方法創(chuàng)建的2006年3月近南海海域海洋水體與海洋環(huán)境反演數(shù)據(jù)三維模型。這里的海洋環(huán)境數(shù)據(jù)包括了溫度和透明度,采用了分層設(shè)色、按物理量拉伸的方式,利用高低起伏的地形模擬方式再現(xiàn)了物理量變化的趨勢(shì)。權(quán)利要求1.一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于包括如下步驟1)通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集;2)對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速查詢;3)OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、坐標(biāo)系沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置;4)根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線“投影”生成海洋水體立方體模型的主體;5)以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模;6)由平行輪廓線“投影”和地形模擬拉伸獲得柵格數(shù)據(jù)集物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果。2.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的通過(guò)數(shù)據(jù)轉(zhuǎn)換服務(wù)的方式,將原始海洋遙感環(huán)境反演數(shù)據(jù)文本格式自動(dòng)轉(zhuǎn)換為柵格數(shù)據(jù)集步驟是將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭和數(shù)據(jù)體以文件流的形式讀入內(nèi)存,再將其按照柵格數(shù)據(jù)集的數(shù)據(jù)組織方式寫入柵格數(shù)據(jù)集,利用Internet信息服務(wù)器檢測(cè)目標(biāo)文件夾下的數(shù)據(jù)文件,轉(zhuǎn)換入庫(kù)后刪除源文件。3.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行了基于時(shí)間可視化方式的存儲(chǔ),支持對(duì)海量遙感柵格數(shù)據(jù)集的時(shí)空特性進(jìn)行快速查詢步驟基于時(shí)間可視化方式的存儲(chǔ)是將原始海洋環(huán)境反演數(shù)據(jù)的Head文件頭中的產(chǎn)品周期、產(chǎn)品生成時(shí)間段、產(chǎn)品生成時(shí)間點(diǎn)分別保存在產(chǎn)品元數(shù)據(jù)表、周期性時(shí)間元數(shù)據(jù)表和瞬時(shí)性時(shí)間元數(shù)據(jù)表中,以標(biāo)準(zhǔn)的SQL時(shí)間查詢語(yǔ)句,可快速的查詢出時(shí)間集合內(nèi)的數(shù)據(jù)集。4.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的OpenGL三維海洋水體場(chǎng)景的空間坐標(biāo)系統(tǒng)設(shè)定,經(jīng)過(guò)Z軸縮放、坐標(biāo)系沿垂直屏幕方向向屏幕內(nèi)平移、坐標(biāo)系旋轉(zhuǎn)以及X、Y軸坐標(biāo)單位統(tǒng)一至經(jīng)緯度坐標(biāo)完成場(chǎng)景坐標(biāo)系統(tǒng)設(shè)置步驟OpenGL默認(rèn)的世界坐標(biāo)系統(tǒng)的X軸、Y軸和Z軸坐標(biāo)單位長(zhǎng)度是統(tǒng)一的,但考慮到海洋水體數(shù)據(jù)的特征,即水平方向X坐標(biāo)范圍為東經(jīng)180度至西經(jīng)180度,Y坐標(biāo)范圍為北緯90度至南緯90度,而全球海洋深度由0米至-10000多米不等,X軸、Y軸方向與Z軸方向的坐標(biāo)單位長(zhǎng)度相差2倍數(shù)量級(jí)以上,則會(huì)造成Z軸方向過(guò)于陡峭,建模效果不佳,所以,將Z軸坐標(biāo)的單位長(zhǎng)度縮小為原始長(zhǎng)度的1/100,即X軸、Y軸的1單位長(zhǎng)度,在Z軸上100,OpenGL場(chǎng)景的世界坐標(biāo)系統(tǒng)與眼坐標(biāo)系統(tǒng)的XY軸平面是重合于屏幕平面的,所以需要將坐標(biāo)系統(tǒng)沿垂直屏幕^"向向屏幕內(nèi)平移,世界坐標(biāo)系統(tǒng)為右手笛卡爾坐標(biāo)系統(tǒng),XY軸平面與屏幕平行,生成場(chǎng)景的海平面與屏幕相平行,這與海平面應(yīng)處于水平方向的常識(shí)不符,因此,要將坐標(biāo)系旋轉(zhuǎn)至Z軸向上,X軸水平向右為正方向、Y軸向上為正方向。5.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體步驟:根據(jù)用戶構(gòu)造的任意海域多邊形輪廓線,利用GIS的方法裁剪、掩膜海表輪廓線外的區(qū)域,構(gòu)建三維海洋水體表面,以平行輪廓線"投影"生成海洋水體立方體模型的主體,將輪廓線沿Z軸向下平移至海底地形數(shù)字高程模型的最大深度,兩平行輪廓線之間以上下輪廓線上的拐點(diǎn)相連利用OpenGL構(gòu)造矩形面,并透明顯示,海洋水體柱狀體X軸、Y軸平面內(nèi)的尺寸取決于用戶在二維電子地圖中繪制的閉合多邊形的尺寸,海洋水體深度Z軸方向是海底地形數(shù)字高程模型的最大深度。6.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的以海面波浪紋理對(duì)海表進(jìn)行貼圖,海底地形經(jīng)由數(shù)字高程模型轉(zhuǎn)換為OpenGL原語(yǔ),用單一顏色渲染與多光源參數(shù)設(shè)置建模步驟利用OpenGL在頂面進(jìn)行海洋波浪紋理映射,貼圖的位置信息來(lái)源于二維輪廓線,因海表為任意多邊形,所以采用環(huán)繞模式"鏡像"重復(fù)與裁剪來(lái)"補(bǔ)足"海表多邊形映射或裁剪紋理,把海底地形數(shù)字高程模型先轉(zhuǎn)換為文本文件格式,再用OpenGL原語(yǔ)描述出來(lái),從而轉(zhuǎn)化成OpenGL可識(shí)別的圖形函數(shù),海底地形采用單一顏色渲染,利用光照視點(diǎn)位置、視線方向、光照參數(shù)設(shè)置反映高程的變化。7.根據(jù)權(quán)利要求所述的一種海洋水體虛擬現(xiàn)實(shí)的建模方法,其特征在于所述的由平行輪廓線"投影"和地形模擬拉伸獲得柵格數(shù)據(jù)集物理量橫截面,透明顯示海洋水體表面獲得各個(gè)角度的可視化效果步驟海洋水體柱狀體的側(cè)面用來(lái)表達(dá)海洋環(huán)境反演數(shù)據(jù)隨深度變化的情況,通過(guò)平行輪廓線"投影"的方式將海表輪廓線映射到海洋環(huán)境反演數(shù)據(jù)的各分層信息上,得到海洋環(huán)境反演數(shù)據(jù)的二維輪廓線范圍內(nèi)的橫截面,經(jīng)預(yù)處理的海洋環(huán)境柵格數(shù)據(jù)集的像素為(x,y,value),其中包含坐標(biāo)和物理量,海洋環(huán)境柵格數(shù)據(jù)集經(jīng)由文本文件轉(zhuǎn)換至OpenGL原語(yǔ),再由地形模擬拉伸,即將物理量值value作為高程方向Z的坐標(biāo),以數(shù)字高程模型的方式拉伸獲得直觀的分層信息,海洋水體表面采用透明顯示以便從任意角度透視各分層海洋環(huán)境反演數(shù)據(jù)。全文摘要本發(fā)明公開(kāi)了一種海洋水體虛擬現(xiàn)實(shí)的建模方法。利用RS(遙感)數(shù)據(jù)通過(guò)方便、高效的數(shù)據(jù)處理過(guò)程和科學(xué)存儲(chǔ)方式,并以O(shè)penGL技術(shù)構(gòu)建模型的主體,采用海表試驗(yàn)區(qū)輪廓線構(gòu)建三維海洋水體的立體建模方法,由紋理映射表現(xiàn)海面波浪,利用平行輪廓線“投影”構(gòu)造水體柱狀體來(lái)表達(dá)RS數(shù)據(jù)的水深和水質(zhì)等物理量變化情況,以體透明的方式再現(xiàn)了海洋水體和海底地形。本發(fā)明是在RS和GIS(地理信息系統(tǒng))技術(shù)支持下,利用OpenGL作為建模工具實(shí)現(xiàn)三維海洋水體建模的新方法。本發(fā)明有效的利用了長(zhǎng)期積累的RS資料,經(jīng)過(guò)方便可行的數(shù)據(jù)處理,通過(guò)以上的模型繪制方法來(lái)實(shí)現(xiàn)三維海洋水體實(shí)時(shí)建模。本發(fā)明在海洋環(huán)境監(jiān)測(cè)領(lǐng)域中應(yīng)用前景非常廣泛。文檔編號(hào)G06T17/00GK101650837SQ200910100669公開(kāi)日2010年2月17日申請(qǐng)日期2009年7月16日優(yōu)先權(quán)日2009年7月16日發(fā)明者南劉,劉仁義,豐張,昭李,杜震洪,黃克玲申請(qǐng)人:浙江大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1