版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、寫在前面雖說是技術(shù)手冊,但是沒有源碼的研究就算是一個教程吧。由于本人能力有限,文章中有很多不當之處,請各位原諒。 Bigheader 聯(lián)系:gdsqz2worldwind技術(shù)手冊目錄:1. WorldWind軟件架構(gòu) WW功能介紹WW與XMLClient與ServerWW使用鏈接本地緩存路徑本地功能配置http請求與aspWMS、WFS2. WorldWind金字塔體系瓦片金字塔詳解及其對應公式NASA World Wind Tile Structure NASA World Wind Map Tile System 瓦片請求調(diào)度策略 2.2.1 當前顯示請求及其顯示(客戶端)2.2.2目標瓦
2、片快速搜索算法2.2.3瓦片數(shù)據(jù)的請求預測(服務器)2.3 可視化的地球空間數(shù)學模型2.3.1 地球三維LOD模型3. Geospatial image processing 3.1步驟:(準備知識:LOTD:0層瓦片大??;TileSize: ) 3.2 NLT Landsat處理技術(shù)范例 3.3 dstile howto4. Creat a new world 4.1World Wind本地文件說明4.1.1. Worlds4.1.2. 在安裝目錄下4.2 創(chuàng)建新的世界模型5. Making layer 5.1 添加新圖層(更詳細可參考)5.2 Point5.3 Lines5.4 Polyg
3、on5.5 Model Feature5.6 Effects and Multi-Texturing5.7 Shapefile5.8 KML/KMZ6. ddons與pluginsaddons與plugins區(qū)別插件總匯及其功能7. script腳本8. 編譯調(diào)試9. 讀書籍和論文10. 1.4.1版本發(fā)展一、 WW軟件結(jié)構(gòu)1.1 功能介紹World Wind(簡稱WW,中文有人直翻譯為世界風),是NASA發(fā)布的一個開放源代碼(Open Source)的地理科普軟件(由NASA Research開發(fā),由NASA Learning Technologies來發(fā)展),它是一個可視化地球儀,將NAS
4、A、USGS以及其它WMS服務商提供的圖像通過一個三維的地球模型展現(xiàn),近期還包含了月球、金星、火星、天文星系等的展現(xiàn)。用戶可在所觀察的行星上隨意地旋轉(zhuǎn)、放大、縮小, 同時可以看到地名和行政區(qū)劃.軟件還包含了一個軟件包,能夠瀏覽地圖及其它由因特網(wǎng)上的OpenGIS Web Mapping Service提供的圖像。目前軟件所使用的數(shù)據(jù):低分辯率的Blue marble數(shù)據(jù)現(xiàn)在包含的初始安裝內(nèi),當用戶放大到特定區(qū)域時,附加的高分辯率數(shù)據(jù)將會自動從NASA服務器上被下載。 A 靜態(tài)數(shù)據(jù)層:en:Blue marble 圖像 en:Landsat 圖像 en:USGS 圖像 en:SRTM 地形數(shù)據(jù)
5、B 動畫數(shù)據(jù)層:en:Animated Earth en:MODIS en:GLOBE1.2 WW與XMLWorldWind是一個優(yōu)秀的客戶端框架引擎,XML實現(xiàn)數(shù)據(jù)描述和軟件設置,通過WW的WorldModel、圖層、插件、http和WMS請求、三維渲染等實現(xiàn)交互式瀏覽。也就是說XML是數(shù)據(jù)。WorldWind則是數(shù)據(jù)執(zhí)行的引擎,WW可擴展性和開發(fā)性非常強大。1.3 Clinet與Server1.3.1 WW使用鏈接(附表1)1.3.2本地緩存路徑(附表1)1.3.3本地功能配置(附表1)1.3.4 http請求與aspBlue marble、:Landsat、SRTM使用直接的http請求
6、。Why not use WMS? NASA Learning Technologies and the NWW user community has tried in the pastto use WMS to serve World Wind tiles. The immense demand of the NWW user base has crippled any WMS server weve tried to date. Instead of using an overly complex format(for serving predefined chunks that is)
7、we opted to go with pre-rendered, pre-defined tiles that are just stored in the file system, and can be served to the client with no further processing server side. This reduces the strain on the server incredibly. If you believe you can setup a WMS server that would be able to withstand the NWW use
8、r base, feel free,wed be happy to see that. In the mean time we are working on creating a WMS server that can read the World Wind tile structure (for compatibility with other programs).1.3. WMS、WFSWMSweb Map server 網(wǎng)絡地圖服務 WFSweb Fundation server 網(wǎng)絡要素服務USGS和所有動畫數(shù)據(jù)層使用符合OGC協(xié)議的和實現(xiàn)數(shù)據(jù)網(wǎng)絡共享。二、 WorldWind金子塔體
9、系2.1 瓦片金字塔詳解及其對應公式 2.1.1 NASA World Wind Tile Structure采取笛卡爾坐標,原點(X = 0, Y = 0.)在投影坐標左下方,即南極點(-90 -180 in latitude and longitude),如圖: 圖1 圖2如圖2,World Wind使用“Level Zero Tile Size”來決定每一個瓦片寬和高的大?。ㄋ械耐咂际钦叫巍藴实膌evel zero tile size 還沒有制定,但是它必須滿足能被180整除。The level zero tile size (以后稱作 lzts)是層與層間轉(zhuǎn)換的最簡單的距離。在
10、 NLTLandsat 7 中,lzts被默認設置為2.25度。可用以下公式計算第N層的tile size:size=lzts2N次方。也就是說下一層將上一層一分為四。:圖3 顯示坐標軸在X、Y方向值的增量: 2.1.2 NASA World Wind Map Tile System坐標與圖片編號對應公式:(1)利用下面公式,求某點坐標X,Y(緯,經(jīng)),在某層N的文件號,圖片號(X+90)/值*2的N次方=文件夾號(取整數(shù)如256.65即為256)(Y+180)/值*2的N次方=圖片后綴(取整數(shù))(2)利用求得的圖片編號A_B反求這張圖片的左下角坐標A*值/2的N次方-90=緯度 B*值/2的
11、N次方-180=經(jīng)度 這樣求得圖片起始分割點坐標,然后以值/2的N次的間隔分割圖片,把整幅圖分成256*256 or 512*512BMNG(500m)LandSatGeocover(30m/15m)OnEarth(15m)USGS(1m)SRTM(90m/3m0(US)36 36。2.252.25。2.02.0。0.80.8。2020。2.2 瓦片請求調(diào)度策略2.2.1 當前顯示請求及其顯示(客戶端)(1)瓦片金字塔模型構(gòu)建金字塔是一種多分辨率層次模型。在地形場景繪制時,在保證顯示精度的前提下為提高顯示速度,不同區(qū)域通常需要不同分辨率的數(shù)字高程模型數(shù)據(jù)和紋理影像數(shù)據(jù)。數(shù)字高程模型金字塔和影像
12、金字塔則可以直接提供這些數(shù)據(jù)而無需進行實時重采樣。盡管金字塔模型增加了數(shù)據(jù)的存儲空間,但能夠減少完成地形繪制所需的總機時。分塊的瓦片金塔模型還能夠進一步減少數(shù)據(jù)訪問量,提高系統(tǒng)的輸入輸出執(zhí)行效率,從而提升系統(tǒng)的整體性能。當?shù)匦物@示窗口大小固定時,采用瓦片金字塔模型可以使數(shù)據(jù)訪問量基本保持不變。瓦片金字塔模型的這一特性對海量地形實時可視化是非常重要的。在構(gòu)建地形金字塔時,首先把原始地形數(shù)據(jù)作為金字塔的底層,即第0 層,并對其進行分塊,形成第0 層瓦片矩陣。在第0 層的基礎上,按每2 2個像素合成為一個像素的方法生成第1 層,并對其進行分塊,形成第1 層瓦片矩陣。如此下去,構(gòu)成整個瓦片金字塔。以影
13、像為例,設第l 層的像素矩陣大小為irlicl,分辨率為resl,瓦片大小為isis,則瓦片矩陣的大小trl tcl 為:trl = irl/istcl = icl/is其中“ ”為向下取整符,下同。按每22 個像素合成為1 個像素后生成的第l+1 層的像素矩陣大小irl+1icl+1 為:irl+1 = irl/2icl+1 = icl/2其分辨率resl+1 為:resl+1 = resl 2不失一般性,我們規(guī)定像素合成從像素矩陣的左下角開始,從左至右從下到上依次進行。同時規(guī)定瓦片分塊也從左下角開始,從左至右從下到上依次進行。在上述規(guī)定的約束下,影像與其瓦片金字塔模型是互逆的。同時,影像的
14、瓦片金字塔模型也便于轉(zhuǎn)換成具有更明確拓撲關系的四叉樹結(jié)構(gòu)。(2)線性四叉樹瓦片索引(WW中應用QST,即quadrat size tree)四叉樹是一種每個非葉子節(jié)點最多只有四個分支的樹型結(jié)構(gòu),也是一種層次數(shù)據(jù)結(jié)構(gòu),其特性是能夠?qū)崿F(xiàn)空間遞歸分解。圖2 是瓦片金字塔模型的四叉樹結(jié)構(gòu)示意圖,其中矩形符號代表葉子節(jié)點,圓形符號代表非葉子節(jié)點。本文采用四叉樹來構(gòu)建瓦片索引和管理瓦片數(shù)據(jù)。在瓦片金字塔基礎上構(gòu)建線性四叉樹瓦片索引分三步:即邏輯分塊、節(jié)點編碼和物理分塊。邏輯分塊與構(gòu)建瓦片金字塔對應,規(guī)定塊劃分從地形數(shù)據(jù)左下角開始,從左至右,從下到上依次進行。同時規(guī)定四叉樹的層編碼與金字塔的層編碼保持一致,
15、即四叉樹的底層對應金字塔的底層。設(ix,iy)為像素坐標,is 為瓦片大小,io 為相鄰瓦片重疊度,以像素為單位;(tx,ty)為瓦片坐標,以塊為單位;l為層號。若瓦片坐標(tx,ty)已知,則瓦片左下角的像素坐標(ixlb,iylb)為:ixlb = tx isiylb = ty is瓦片右上角的像素坐標(ixrt,iyrt)為:ixrt = (tx + 1) is + io 1iyrt = (ty + 1) is + io 1如果像素坐標(ix,iy)已知,則像素所屬瓦片的坐標為:tx = ix/isty = iy/is由像素矩陣行數(shù)和列數(shù)以及瓦片大小,可以計算出瓦片矩陣的行數(shù)和列數(shù),然
16、后按從左至右,從下到上的順序依次生成邏輯瓦片,邏輯瓦片由(ixlb,iylb), (ixrt,iyrt), (tx,ty), l)唯一標識。節(jié)點編碼假定用一維數(shù)組來存儲瓦片索引,瓦片排序從底層開始,按從左至右,從下到上的順序依次進行,瓦片在數(shù)組中的偏移量即為節(jié)點編碼。為了提取瓦片(tx,ty,l),必須計算出其偏移量。我們采用一個一維數(shù)組來存儲每層瓦片的起始偏移量,設為osl。若第l 層瓦片矩陣的列數(shù)為tcl,則瓦片(tx,ty,l)的偏移量offset 為:offset = ty tcl + tx + osl 物理分塊在邏輯分塊的基礎上對地形數(shù)據(jù)進行物理分塊,生成地形數(shù)據(jù)子塊。對上邊界和右邊
17、界瓦片中的多余部分用無效像素值填充。物理分塊完畢,按瓦片編號順序存儲。(3) 瓦片拓撲關系瓦片拓撲關系包括同一層內(nèi)鄰接關系和上下層之間的雙親與孩子關系兩個方面2。鄰接關系分別為東(E)、西(W)、南(S)、北(N)四個鄰接瓦片,如圖3(a)所示;與下層四個孩子的關系分別為西南(SW)、東南(SE)、西北(NW)、東北(NE)四個孩子瓦片,如圖3(b)所示;與上層雙親的關系是一個雙親瓦片,如圖3(c)所示。若已知瓦片坐標為(tx,ty,l),則該瓦片相關的拓撲關系可表示為:1) 東、西、南、北四個鄰接瓦片的坐標分別為:(tx+1,ty,l)、(tx-1,ty,l)、(tx,ty-1,l)、(tx
18、,ty+1,l);2) 西南、東南、西北、東北四個孩子瓦片的坐標分別為(2tx,2ty,l-1) 、(2tx+1,2ty,l-1) 、(2tx,2ty+1,l-1) 、(2tx+1,2ty+1,l-1);3) 雙親瓦片的坐標為(tx/2,ty/2,l+1)。 (a) 鄰接瓦片 (b) 孩子瓦片 (c) 雙親瓦片(4)地形場景數(shù)據(jù)的動態(tài)管理可見區(qū)域及最佳地形分辨率計算根據(jù)視點的坐標和視線的方向,就可以計算出視景體與地形平均水平面相交的平面區(qū)域范圍,即地形可見區(qū)域范圍。圖4 為地形可見區(qū)域示意圖,圖中XOY 為地形平均水平面,E 為視點,視線EM 與地形平均水平面的交點為M,視點在XOY 上的投影
19、為M0。視景體E_ABCD 與平面XOY的四個交點分別為A、B、C和D,則地形可見區(qū)域范圍即為四邊形ABCD。有關點A、B、C和D的坐標的詳細計算方法,可參考文獻3。地形可見區(qū)域的表示若用于地形顯示的屏幕窗口寬和高分別為Xw 和Yw(以像素為單位),視景體的水平視場角和垂直視場角分別為FovX 和FovY。設當可見區(qū)域ABCD恰好充滿顯示窗口時,窗口水平方向和垂直方向平均每個像素所對應的地面距離分別為Dx 和Dy,則有:Dx = EM tan(FovX / 2) 2.0 / XwDy = EM tan(FovY / 2) 2.0 / Yw即當?shù)匦畏直媛蔢 方向低于Dx 或Y 方向低于Dy時,地
20、形顯示的精度將會降低;反之,將會產(chǎn)生不必要的數(shù)據(jù)冗余,影響繪制效率。也就是說,此時的Dx和Dy即為理論上地形繪制所需的最佳分辨率。由于通常地形X 方向和Y 方向的采樣間距相同,因此我們在實際應用中取Dx 和Dy 中的小值作為最佳地形分辨率,用作后續(xù)瓦片搜索的重要依據(jù)。需要指出的是,通常該最佳分辨率被用作窗口中心瓦片所對應的分辨率,而窗口其它位置所對應的瓦片分辨率則根據(jù)瓦片中心到視點的距離作適當?shù)慕档驼{(diào)整,因為這不僅符合人眼的視覺規(guī)律,而且還可以減少用于地形繪制的三角形數(shù)量。 World Wind當前視角高度值與圖層調(diào)度間關系探討How does altitude relate to a lev
21、el in a layer being displayed?在WW中,從N-1st 轉(zhuǎn)換到 Nth level的高度值是: ( Level0TileSize * 390km / 2N ) X(因子)例如對于NLT LS7圖層,它的L0TS=2.25deg。它的0 level從390*2.25 = 877km開始可見,level 1在小于439km可見等;(但這只是從WW的行為分析得到而不是從源代碼)對于較小的高程(小于2000km),X因子近似為1。然而,高于2000km因子就減少(可能是arctan(x)/x,或者其他) 但是,為什么剛好390km?為什么非線性非常量的因子?肯能只有WW開發(fā)
22、者才知!A Small Analyse:(假定屏幕默認尺寸為wWidth=992px 和 wHeight=653px, 南北方向的視角范圍為FOV=45deg) 打開OnEarth layer(L0TS=2.0deg)并飛行到高度Alt=195km, 這時level2的瓦片開始顯示。那么圖片區(qū)域的南北范圍尺寸((N-S)dimension- nsDim)是多少? nsDim = Alt * 2*tan(FOV/2),所以在這里nsDim = 195km * 2*tan(22.5deg) = 161.5km. 將它轉(zhuǎn)換為度數(shù)(1deg=111km),得到nsDim = 1.454deg。每個le
23、vel2的瓦片覆蓋0.5 0.5 degree的區(qū)域,因此“照相機”(可視屏幕范圍)相應有1.454/0.5 = 2.91個瓦片(南北方向上),或者2.91*512 = 1489 個像素。數(shù)值1489/653=2.28可以稱之為線性重采樣因子(LOF- Linear Oversampling factor);平方后,得到區(qū)域重采樣因子(AOF-real oversampling factor)。在我們這例子為5.20。這意味著什么?5.2個瓦片圖片的像素在屏幕上顯示為1個像素。在沒有進入下一圖層時,這些參數(shù)能減少到什么程度?在例子中,下一層的開端為 Alt=97.5km,即195km的一半。當
24、我們達這里時,the level2 tiles減少到只有L.O.F.=1.14或者A.O.F.=1.30。Now lets generalize it:When are these LOF and AOF becoming big (giving evidence about vasting)? When the user has - reduced the WW windows height, - increased the FOV (aka zoomed out), - tilted significantly, - gone near the Pole, -.what else have
25、 I forgot? 在這些情況下,AOF可能變得非常巨大,例如值為幾十,是否意味著100-or-so megabyte of tiles are needed for rendering of about-1 Mpix picture. 還有很多問題例如 (e.g. the When do you know when to stop? (ie. how do you know you are at 1:1) question) 2.2.2目標瓦片快速搜索算法目標瓦片搜索實際上伴隨著分辨率搜索。如果采用一種分辨率,則只涉及層搜索和區(qū)域搜索。對于采用視點相關LOD 技術(shù)的地形可視化系統(tǒng),要求不同
26、的區(qū)域?qū)煌直媛实牡匦螖?shù)據(jù),因此在瓦片搜索過程中需要進行分辨率測試,圖5 為地形瓦片分辨率需求示意圖,圖中E 為視點,白色矩形表示與視景體相交且需要參與地形繪制的瓦片數(shù)據(jù)。矩形越小表示瓦片分辨率越高。本文目標瓦片搜索采用由粗到細、層層推進的策略。首先判斷可見區(qū)域是否在地形數(shù)據(jù)所表示的范圍內(nèi),測試與可見區(qū)域交疊的頂層瓦片是否滿足分辨率要求,如果不滿足,則繼續(xù)測試瓦片的分支,直到搜索出所有滿足分辨率要求的瓦片。完整的算法描述如下:第1 步: 判斷可見區(qū)域是否與地形數(shù)據(jù)交疊。如果交疊,轉(zhuǎn)第2 步;否則,算法結(jié)束。第2 步: 逐個判斷頂層瓦片是否滿足分辨率要求。如果滿足,將其插入到繪制鏈表;否則,
27、將其4 個分支瓦片插入到測試鏈表1。第3 步: 判斷測試鏈表1 是否為空。如果為空,算法結(jié)束;否則,轉(zhuǎn)第4 步。第4 步: 逐個判斷測試鏈表1 中的瓦片是否與可見區(qū)域交疊。如果交疊,將其插入到測試鏈表2;否則,將其舍棄。第5 步: 清空測試鏈表1,轉(zhuǎn)第6 步。第6 步: 逐個判斷測試鏈表2 中的瓦片是否滿足分辨率要求。如果滿足,將其插入到繪制鏈表;否則,將其4 個分支瓦片插入到測試鏈表1。第7 步: 清空測試鏈表2,轉(zhuǎn)第3 步。交疊測試時,只要瓦片四個角點的任何一點在可見區(qū)域內(nèi),即表示該瓦片與可見區(qū)域交疊。對于分辨率測試,首先計算瓦片四個角點的目標分辨率,如果四個角點的目標分辨率數(shù)值都大于或等
28、于瓦片所處金字塔層的分辨率數(shù)值,則表示該瓦片滿足分辨率要求,否則需要測試其四個分支。如圖6 所示,假設被測試瓦片的分辨率為2,由于瓦片左上角點目標分辨率數(shù)值小于2,則必須對瓦片進行細分,然后再進行交疊測試和分辨率測試。上述目標瓦片搜索算法是一個遞歸過程。在進行分辨率判斷時只需對瓦片的四個角點進行判斷,因而效率很高。另外,從瓦片索引數(shù)組中提取瓦片的分支無需進行空間位置判斷,只需計算出瓦片偏移量即可,這同樣能夠顯著地提高算法的性能。2.2.3瓦片數(shù)據(jù)的請求預測(服務器)(在高分辨率遙感衛(wèi)星應用中,本文作者有遙感數(shù)據(jù)庫的詳細理論)(1) 預讀取:合適的數(shù)據(jù)緩沖機制可以提高系統(tǒng)的性能,海量地形實時可視
29、化也不例外。當?shù)匦螆鼍斑B續(xù)運動時,如果應用程序能夠提前預測系統(tǒng)即將需要的數(shù)據(jù),并能提前從磁盤把這些數(shù)據(jù)讀到緩沖區(qū),那么當應用程序真正需要這些數(shù)據(jù)的時候,便可以直接從緩沖區(qū)讀取,從而省去了從磁盤讀取這些數(shù)據(jù)的時間。由于在海量地形漫游時,數(shù)據(jù)預測調(diào)度和場景繪制需要同時進行,因此,我們利用操作系統(tǒng)的多線程能力,將數(shù)據(jù)預測調(diào)度和場景繪制分別采用兩個獨立的線程來完成。數(shù)據(jù)緩沖通過預測瓦片請求來實現(xiàn)。我們將瓦片請求劃分為高、中、低三種優(yōu)先級。高優(yōu)先級瓦片請求被立即處理并參與地形繪制;中優(yōu)先級瓦片請求在沒有高優(yōu)先級瓦片請求的情況下被讀取到緩沖區(qū),但不參與地形繪制,即所謂數(shù)據(jù)緩沖;低優(yōu)先級瓦片請求只是在系統(tǒng)“
30、空閑”時才被讀取到緩沖區(qū),并且也不參與地形繪制,同樣是數(shù)據(jù)緩沖。瓦片請求優(yōu)先級的確定方法如下:為表述方便,假設連續(xù)的三個場景窗口分別為窗口1、窗口2 和窗口3。為了實現(xiàn)瓦片數(shù)據(jù)緩沖,系統(tǒng)在發(fā)送窗口1 的瓦片請求時應附帶發(fā)送窗口2 和窗口3 的瓦片請求,只是瓦片請求的優(yōu)先級有所不同,這便是瓦片請求預測。顯然,窗口1 中的瓦片請求應該設為高優(yōu)先級,而窗口2 中的瓦片請求除窗口1 的公共部分外被設為中優(yōu)先級,窗口3 中的瓦片請求除與窗口1 及窗口2 的公共部分外被設為低優(yōu)先級,如圖7 所示。這樣,當場景運動到窗口2 時,系統(tǒng)在發(fā)送窗口2 的瓦片請求后,數(shù)據(jù)預測調(diào)度線程就可以直接從緩沖區(qū)提取數(shù)據(jù)參與地
31、形繪制,而無需即時從磁盤讀取數(shù)據(jù)。設場景運動速度為v 瓦片/秒,運動方向與瓦片x 方向的夾角為,刷新頻率為f 幀/秒,則中、低優(yōu)先級瓦片請求的擴展幅度tx、ty 為:tx = v cos / fty = v sin / f例如,當v = 33.94 瓦片/秒, = 45,f = 24 幀/秒時,中、低優(yōu)先級瓦片請求的擴展幅度tx、ty 都為1 個瓦片,即在當前場景窗口的基礎上沿運動方向的x、y 分解方向各擴展1 個瓦片為中優(yōu)先級瓦片請求,再擴展1 個瓦片為低優(yōu)先級瓦片請求。(2)異構(gòu)磁盤系統(tǒng)的瓦片分布方式(高分辨率遙感衛(wèi)星應用P205)(3)應用實例本文的研究成果已成功應用于多個地區(qū)的海量地形
32、數(shù)據(jù)實時可視化。以某地區(qū)地形三維可視化為例,該地區(qū)所采用的規(guī)則格網(wǎng)數(shù)字高程模型共有2376923536 個高程點,分辨率為60 米,彩色紋理影像大小為4753647070,分辨率為30 米。數(shù)字高程模型數(shù)據(jù)為2.13GB,紋理影像數(shù)據(jù)為6.40GB。分別對數(shù)字高程模型數(shù)據(jù)和紋理影像數(shù)據(jù)構(gòu)建9層和10 層瓦片金字塔和相關索引文件,瓦片大小均為128128,相鄰數(shù)字高程模型瓦片間重疊為1,相鄰影像瓦片間沒有重疊,生成的數(shù)字高程模型瓦片金字塔數(shù)據(jù)為2.94GB,紋理影像瓦片金字塔數(shù)據(jù)為8.77GB。實驗計算機配置:P4 CPU 1.5GHz,512MB 內(nèi)存,GeForce4 64MB 顯卡,操作系
33、統(tǒng)為Windows2000 SP4,開發(fā)語言為Visual C+ 6.0,三維圖形標準為OpenGL。利用本文研究的算法實現(xiàn)了實驗區(qū)真實紋理映射地形的三維實時可視化,并可實現(xiàn)地形的實時漫游及縮放旋轉(zhuǎn)等交互操作。當顯示窗口為800600 像素,屏幕顯示誤差為1 個像素時,不采用瓦片請求預測時平均幀頻為18.3 幀/秒,采用瓦片請求預測后的平均幀頻為25.6 幀/秒,緩沖區(qū)中的瓦片總數(shù)維持在70 到120 之間;屏幕顯示誤差為2 個像素時,不采用瓦片請求預測時平均幀頻為23.2 幀/秒,采用瓦片請求預測后的平均幀頻為30.1 幀/秒,緩沖區(qū)中的瓦片總數(shù)維持在50 到90 之間。圖8 為部分實驗結(jié)果
34、。 (4)結(jié)論實驗表明,本文提出的瓦片金字塔模型和線性四叉樹索引相結(jié)合的數(shù)據(jù)管理模式,能夠滿足海量地形數(shù)據(jù)實時可視化的需要,并且在實現(xiàn)海量地形幾何數(shù)據(jù)實時繪制的同時完成了海量紋理數(shù)據(jù)的實時映射;通過對視景體可見區(qū)域外地形數(shù)據(jù)的裁剪和基于分辨率測試的目標瓦片快速搜索算法,大大減少了地形繪制的數(shù)據(jù)量,提高了系統(tǒng)的執(zhí)行效率;采用基于高、中、低優(yōu)先級的地形瓦片請求預測方法,進一步提高了三維地形交互漫游的速度。本文的研究成果已擴展應用于基于網(wǎng)絡的分布式海量地形數(shù)據(jù)三維可視化。本文研究所采用的地形數(shù)據(jù)為規(guī)則格網(wǎng)數(shù)據(jù),今后將對用不規(guī)則三角網(wǎng)表示的海量地形數(shù)據(jù)可視化進行進一步研究。此外,在海量目標數(shù)據(jù)實時三維
35、可視化、基于全球框架的空間數(shù)據(jù)可視化等方面,作者還將作進一步的研究。1 David Luebke, Martin Reddy, Jonathan D. Cohen, et al. Level of Detail for 3D Graphics M. San Francisco: Morgan Kaufmann Publishers, 2002.2 鄧雪清. 柵格型空間數(shù)據(jù)服務體系結(jié)構(gòu)與算法研究D. 鄭州: 解放軍信息工程大學, 2003.3 王源, 劉建永, 江南, 等. 視點相關實時LoD 地形模型動態(tài)構(gòu)網(wǎng)算法J. 測繪學報, 2003, 32(1): 47-52.4 王永君, 龔健雅. 用
36、于大范圍虛擬地形環(huán)境的動態(tài)場景管理方法 J. 測繪學院學報, 2003, 20(3): 231-234.2.3 可視化的地球空間數(shù)學模型一般來說,遙感數(shù)據(jù)圖片都是使用在WGS84坐標下的UTM投影。對于WorldWind來說,其地球模型為圓形,半徑與WGS84坐標的長半徑相等(也可以另設),在實時顯示時,必須將平面的高程數(shù)據(jù)、紋理數(shù)據(jù)分塊并映射到給定的球面上。2.3.1 地球三維LOD模型 (1)地球模型的經(jīng)緯網(wǎng)分割由于地球橢球模型可以在球的基礎上沿自轉(zhuǎn)軸方向壓縮得到(利用三維圖形庫中的縮放函數(shù)很容易做到),所以我們先將橢球模型簡化為球面模型。球面可以看作由分布均勻的經(jīng)緯網(wǎng)組成,經(jīng)緯網(wǎng)越密,地
37、球模型的精度就越高。要實現(xiàn)視點相關球面LOD最簡單有效的方法就是根據(jù)視點到球面的距離來動態(tài)調(diào)整經(jīng)緯網(wǎng)的密度,這樣就在保證視覺效果的前提下實現(xiàn)球面模型簡化,圖2-5-3顯示了在不同視點距離下,球面模型的簡化程度。 (2)球面經(jīng)緯網(wǎng)格的可見性判斷在近地空間環(huán)境中漫游時,由于一個時刻我們所能看見的都是地球表面的一部分,因此,我們沒有必要繪制看不見的部分。本文利用視景體裁剪的方法來判斷經(jīng)緯網(wǎng)格是否可見。 (3)利用凹凸貼圖(Bump Map)表現(xiàn)地球表面起伏情況基于球面的三維地球繪制方法不能用幾何形狀來表達地面起伏,但我們可以采用凹凸貼圖的方法,在一定程度上彌補這個缺陷。在凹凸貼圖實現(xiàn)過程中,為每一個
38、頂點計算光線向量是一個非常費時的工作,為了加快凹凸貼圖的速度,可以采用基于象素著色的硬件加速方法實現(xiàn)。(2)海量數(shù)據(jù)的全球地形LOD模型(SROAM)我們將ROAMZ6 ( Real-time Optimal Adaptive Meshes,實時優(yōu)化適應性網(wǎng)格)算法引入到具有海量地形與影像數(shù)據(jù)的全球地形三維建模中。ROAM算法是目前應用最廣的一種視點相關地形實時LOD算法。其基本思想是:在對地形進行三維顯示時,依據(jù)視點的位置和視線的方向等多種因素,對于表示地形表面的三角形片元進行一系列的基于二叉樹的分裂與合并,最終形成和原始表面近似且無縫無疊的簡化連續(xù)網(wǎng)格。本文在ROAM算法的基礎上,提出連續(xù)
39、球面地形LOD算法SROAM ( Spherical ROAM簡稱SROAM ),突破了經(jīng)典的ROAM算法只適合于平面地形數(shù)據(jù)的限制。SROAM算法基本思想 由于經(jīng)典的ROAM是從分裂一個正方形網(wǎng)格開始不斷細分地形的,在SROAM中,我們采用正方體作為球面地形的頂層,如圖2-5-4(a)。正方體的6個面分別作為ROAM算法分裂的最頂層正方形。這些正方形的公共邊設置好拓撲關系,以保證不同ROAM面在分裂、合并操作時邊界上網(wǎng)格的連續(xù)性。 當SROAM的頂層正方體分裂成12個三角形,并設置好三角形之間正確的拓撲關系后,ROAM的原理和方法就可以完全適用了。事實上,SROAM算法比經(jīng)典的ROAD更容易
40、實現(xiàn),由于球面沒有邊界,因此不需要判斷地形網(wǎng)格的邊界條件,可以獲得更修的繪制速度。唯一不同的是,我們需要將平面的高程數(shù)據(jù)、紋理數(shù)據(jù)分塊并映射到給定的球面上。數(shù)據(jù)模型的簡化272829 要建立全球的地LOD模型,其數(shù)據(jù)從覆蓋全球的分辨率為幾分或幾秒的DEM數(shù)拒和分辨率為幾百米的衛(wèi)星影像,到局部區(qū)域高分辨率的DEM數(shù)據(jù)和正射航空影像,數(shù)據(jù)量是巨大的。對于如此大的數(shù)據(jù),要想在中低檔微機上達到實時交互的目的,必須對數(shù)據(jù)分級、分塊管理z7,如圖2-5-5。對于地形的分級,本文采用小波變換對地形進行簡化,并分塊構(gòu)建金字塔。 小波理論是本世紀八十年代后期發(fā)展起來的一種新的信號處理工具,在時空域和頻率域都具有
41、良好的局部化性質(zhì),可以根據(jù)不同的尺度要求,由粗到細地觀察信號,被譽為信號分析的數(shù)學顯微鏡,在圖形圖像領域得到了廣泛的應用,如:基于小波變換的圖象壓縮、圖象邊緣檢測、圖象拼接、立體視覺與匹配、曲面插值等,而基于小波變換的圖象壓縮是其目前最成功的應用之一。由于規(guī)則格網(wǎng)實際上為一二維數(shù)組表示的高度值,完全可以將高度域看成圖像的灰度,將圖像處理的算法引入格網(wǎng)簡化中。本文采用多進制小波簡化DEM數(shù)據(jù)。M進制小波變換公式為: 其中,aj,k,l為小波的低頻成分,j為任意整數(shù)。k,1 = 0,1,2,.n0、n1、n2為正整數(shù),C為常量。根據(jù)四進制小波將全球數(shù)據(jù)簡化為金字塔數(shù)據(jù)結(jié)構(gòu)29;然后,根據(jù)計算機硬件
42、的性能把每一層分為若千塊;最后,將組織好的數(shù)據(jù)寫入文件或數(shù)據(jù)庫。 近年來對于大數(shù)據(jù)量紋理數(shù)據(jù)的處理方法研究大紋理數(shù)據(jù)調(diào)度、映射的文獻并不少見。如基于原始紋理圖像分割的傳統(tǒng)方法30和MP-Grid方法32,都是采用預先把大紋理分割成小的紋理片,使每個小紋理片生成的Mipmap圖適應硬件存儲,然后根據(jù)視野的覆蓋范圍調(diào)度相關紋理片的Mipmap圖組合生成要顯示的數(shù)據(jù)。韓慧健等人提出了使用Clipmap(裁剪Mipmap)實現(xiàn)大紋理映射31 ,他的思路是先為原始大紋理生成Mipmap圖存儲在硬盤,再分割Mipmap各層,調(diào)入各層與視野有關的分割片數(shù)據(jù)到有限內(nèi)存,相當于把視域覆蓋的紋理部分裁剪下來,這樣
43、可以把整個紋理指定在單個坐標系中??傊?,解決大紋理貼圖的問題目前都采用分級、分塊的方法,該方法可以較好的解決硬件的存儲和帶寬瓶頸問題。本文也采用分級建立影象金字塔、在每一級上分塊隨視點動態(tài)調(diào)度的方法實現(xiàn)。 高程數(shù)據(jù)球面映射 對于某一塊DEM數(shù)據(jù)來說,通常表示為一個二維數(shù)組fDEMnRownCol,nRow和nCol分別表示地形在緯度、經(jīng)度方向的采樣點數(shù)。由于ROAM算法的三角形網(wǎng)格的分裂、合并操作可以看作是在二維平面上進行,三角形頂點的高程用頂點的平面位置(x,y)可以很方便的在fDEM數(shù)組中查找得到。而球面LOD算法則不然,因為三角形分裂合并操作是在三維球面上進行的。假設要繪制的地球的中心在
44、原點,在某個三角形分裂過程中,網(wǎng)格中新生成的某一個頂點計算坐標(即被分裂的三角形斜邊中點坐標)為P (Px,Py,Pz ),根據(jù)球面經(jīng)緯度投影的原理,向量P的方向決定了該點在球面上的經(jīng)緯度坐標。因此,我們首先建立P (Px,Py,PZ)與經(jīng)緯度平面坐標(,)之間的映射關系(如圖2-5-6 ) 根據(jù)球面幾何關系,經(jīng)緯度(,)與P的關系為: 其中,坐標,弧度表示。再分別將,,規(guī)劃到0-1區(qū)間內(nèi)后,我們?nèi)菀椎玫浇?jīng)緯度與fDEM坐標之間的關系。 綜合(2-5-2)(2-5-3 )式,得到位置P (x, y,z)與DEM高程數(shù)據(jù)fDEM的坐標映射關系:最終我們得到P點對應的的實際坐標為:其中R為地球半徑
45、。|P|為向量P的長度。地圖投影模型 當前大地坐標系是統(tǒng)一的, 能準確、唯一地描述地球上任一點的位置, 并能動態(tài)適應歷史的、現(xiàn)代的越來越精密的各種參考橢球體, 它可作為地球數(shù)字產(chǎn)品和大型G IS 最為適當?shù)淖鴺讼? 即采用(B, L ,H) 描述地理實體幾何特征點。這時二維場(B,L ) 是三維地理信息空間沿法線的一個二維投影, 可以用地圖投影把它展平到XO Y 平面上, 也可不展, 它本身為規(guī)則的三維橢球面。由于其數(shù)學規(guī)則, 采用二維的曲線族(B, L ) 來表示其上坐標顯得簡便得多, 人們也更易理解, 它是地理信息的水平坐標系, 而H可視為垂直坐標。大型G IS 作用空間由小范圍局部擴展到
46、地學大范圍, 甚至全球范圍, 地球數(shù)字產(chǎn)品的覆蓋區(qū)域也遍布全球, 在這樣大的區(qū)域內(nèi)實現(xiàn)信息共享和互操作, 除統(tǒng)一采用上述橢球坐標系外,“地圖投影”的標準化也是十分重要的。(詳細描述見文章大型GIS 與數(shù)字地球的空間數(shù)學基礎研究)誤差分析(后加)視見體的計算 在視點漫游時,ROAM等平面LOD算法通常要對視景體范圍內(nèi)所有網(wǎng)格點進行動態(tài)誤差計算。而球面LOD算法有其特殊性,因為,當視點在球面上漫游時,地平線以下的網(wǎng)格是看不見的。如圖2-5-80 視點E距離地球高度為H(先不考慮地表起伏),地球平均半徑為R, EC為視線方向,那么地平線到視點的距離為:對于在球面上三角形網(wǎng)格誤差計算,我們采用的是屏幕
47、誤差P,綜合考慮了網(wǎng)格靜態(tài)誤差、三角形到視點距離、視線方向等多個方面的因素。計算公式為: 其中,K為比例系數(shù),s(c;)為要判斷的三角形的靜態(tài)誤差,D為三角形到視點距離。 采用上述動態(tài)誤差計算公式可以代替視景體裁減,因為,在地平面以下的三角形滿足D幾條件,動態(tài)誤差p =0,繪制時,將被忽略。 關于在每一塊地形上SROAM的三角形分裂、合并以及繪制優(yōu)化方法,與ROAM26算法完全相同,本文不再重復。實驗結(jié)果與分析 本節(jié)介紹了基于橢球的地球LOD建模,提出了考慮地形的地球LOD模型(SROAM )。為了驗證這些方法的可行性與實際效果,我們在DELL 4550(配置同前)的微機上實現(xiàn)了這些算法,軟件
48、平臺為WindowsNT/2000, Visual C十+6. 0和三維圖形標準OnenGL,結(jié)果如下:基于橢球的地球LOD建模結(jié)果 圖2-5-9為視點到地球不同距離時的地球網(wǎng)格,從圖中可以看出,當?shù)厍蜻h離視點的時候,網(wǎng)格較稀疏,表示精度變低:當視點靠近地球的時候,網(wǎng)格變密,表示精度提局。為了研究使用凹凸貼圖表現(xiàn)地面起伏實際效果,我們分別做了不進行凹凸貼圖的地球繪制和進行凹凸貼圖的地球繪制兩個試驗,結(jié)果如圖2-5-10所示。很明顯,使用凹凸紋理后,地面質(zhì)感明顯增強(如圖2-5-10b )。地球SROAM建模結(jié)果 圖2-5-11為SROAM算法繪制帶有地形的地球表面的結(jié)果,左圖為網(wǎng)格顯示,右圖為
49、填充效果。在該圖中,視點在P位置,視線方向如圖箭頭方向,扇形區(qū)域為可見范圍。從圖中可以看出,在球面上視點區(qū)域模型繪制時具有最高的細節(jié)層次,而離視點較遠時細節(jié)層次較低。SROAM算法平均每幀繪制20, 000個三角形,速度平均30fps,基本可以滿足實時系統(tǒng)的需要。由于受數(shù)據(jù)來源的限制,該算法對大數(shù)據(jù)量的DEM的實際效果還未進行驗證。三、 Geospatial image processing3.1步驟:(準備知識:LOTD:0層瓦片大??;TileSize: )1. 獲得帶有地理參考的geotiff 并將他重新投影到WGS84坐標2. 找出geotiff的邊界3. 從geotiff左下角坐標開始
50、,把整個的經(jīng)緯度范圍切割成最接近LOTD的倍數(shù)。4. 在#3處理的的geotiff在左下角切下一塊L0TD大小的圖塊5. 將#4的圖塊重采樣為瓦片(512512大小或其他,),轉(zhuǎn)換圖像格式6. 將瓦片放到相應的文件夾下,并以WW的命名規(guī)則命名瓦片的名字7. 重復切下L0TD大小的圖塊直到將TIFF右上角邊界8. 將原圖片以N=(L0TD2)大小繼續(xù)切割,從#3開始重復9. 直到變成1:1比例,即切割大小N=(小于或等于);3.2 NLT Landsat處理技術(shù)范例(這是NASA生產(chǎn)第一個版本Landsat 7 Mosaic(可視波段)的方法。- By Chris Maxwell (Lead D
51、eveloper, NASA World Wind) 首先從from the Global Land Coverage Facility下載Landsat7的全球衛(wèi)片Remarks: The scenes come as a set of grayscale GeoTiff files for each row/path/date scene 然后使用波段1 (Blue),2 (Green),3 (Red)合成RGB的GeoTiff image。 Remarks: 由于我不不想編程實現(xiàn),我使用了PixelSense,但是PixelSense 提供了一個 linear clip contrast
52、 stretch,因此必須 replace the image data after PixelSense outputted the RGB GeoTiff。再對RGB Landsat GeoTiff使用顏色增強算法Remarks: The basic idea for the algorithm I used is to divide the image into a grid with each grid square being n by n pixels, where n is about 25 for a 30meter/pixel Landsat scene. For each
53、square, find the least-squares for both the high and low, and then save this information in order to later apply a linear stretch of the pixels in that square, weighting the R, G, B bands individually to the desired tastes. I found that generally, the source Landsat scenes have too much blue and red, and I weight the stretch to compensate for this for a more pleasing image. Next, use a cubic convolution to smooth out the stretch information in the grid squares. This is only app
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽楚雄州祿豐市資源開發(fā)建設投資有限公司招聘筆試參考題庫附帶答案詳解
- 2025年貴州湄潭縣茗城農(nóng)商旅發(fā)展投資集團有限公司招聘筆試參考題庫附帶答案詳解
- 2025年中石油西北銷售分公司招聘筆試參考題庫含答案解析
- 2025年固達機械制造有限公司招聘筆試參考題庫含答案解析
- 2025年華夏保險股份有限公司招聘筆試參考題庫含答案解析
- 2025年兵器工業(yè)集團激光公司招聘筆試參考題庫含答案解析
- 2025年中國交通報社有限公司招聘筆試參考題庫含答案解析
- 浙江省紹興市(2024年-2025年小學六年級語文)部編版階段練習((上下)學期)試卷及答案
- 二零二五年度環(huán)保材料研發(fā)合同標的調(diào)整協(xié)議
- 二零二五年度文化娛樂產(chǎn)業(yè)投資基金交易服務合同3篇
- Q-GDW 738-2012 配電網(wǎng)規(guī)劃設計技術(shù)導則及編制說明
- 經(jīng)編結(jié)構(gòu)與編織原理課件
- 2023年礦井應急救援理論考試試題及答案
- 2024年全國版圖知識競賽(小學組)考試題庫大全(含答案)
- 腹腔鏡手術(shù)設備、工作原理與操作應用
- 中集集團招聘題庫
- 大學生國家安全教育意義
- 海域租賃協(xié)議
- 財務對標工作總結(jié)匯報
- 血透管的固定和護理
- 寒假彎道超車主題勵志班會課件
評論
0/150
提交評論