【文章內容簡介】
地形模型動態(tài)構網算法[J]. 測繪學報, 2003, 32(1): 4752.[4] 王永君, 龔健雅. 用于大范圍虛擬地形環(huán)境的動態(tài)場景管理方法 [J]. 測繪學院學報, 2003, 20(3): 231234. 可視化的地球空間數學模型一般來說,遙感數據圖片都是使用在WGS84坐標下的UTM投影。對于WorldWind來說,其地球模型為圓形,半徑與WGS84坐標的長半徑相等(也可以另設),在實時顯示時,必須將平面的高程數據、紋理數據分塊并映射到給定的球面上。 地球三維LOD模型 (1)地球模型的經緯網分割由于地球橢球模型可以在球的基礎上沿自轉軸方向壓縮得到(利用三維圖形庫中的縮放函數很容易做到),所以我們先將橢球模型簡化為球面模型。球面可以看作由分布均勻的經緯網組成,經緯網越密,地球模型的精度就越高。要實現視點相關球面LOD最簡單有效的方法就是根據視點到球面的距離來動態(tài)調整經緯網的密度,這樣就在保證視覺效果的前提下實現球面模型簡化,圖253顯示了在不同視點距離下,球面模型的簡化程度。 (2)球面經緯網格的可見性判斷在近地空間環(huán)境中漫游時,由于一個時刻我們所能看見的都是地球表面的一部分,因此,我們沒有必要繪制看不見的部分。本文利用視景體裁剪的方法來判斷經緯網格是否可見。 (3)利用凹凸貼圖(Bump Map)表現地球表面起伏情況基于球面的三維地球繪制方法不能用幾何形狀來表達地面起伏,但我們可以采用凹凸貼圖的方法,在一定程度上彌補這個缺陷。在凹凸貼圖實現過程中,為每一個頂點計算光線向量是一個非常費時的工作,為了加快凹凸貼圖的速度,可以采用基于象素著色的硬件加速方法實現。 (2)海量數據的全球地形LOD模型(SROAM)我們將ROAM}Z6} ( Realtime Optimal Adaptive Meshes,實時優(yōu)化適應性網格)算法引入到具有海量地形與影像數據的全球地形三維建模中。ROAM算法是目前應用最廣的一種視點相關地形實時LOD算法。其基本思想是:在對地形進行三維顯示時,依據視點的位置和視線的方向等多種因素,對于表示地形表面的三角形片元進行一系列的基于二叉樹的分裂與合并,最終形成和原始表面近似且無縫無疊的簡化連續(xù)網格。本文在ROAM算法的基礎上,提出連續(xù)球面地形LOD算法—SROAM ( Spherical ROAM簡稱SROAM ),突破了經典的ROAM算法只適合于平面地形數據的限制。①SROAM算法基本思想 由于經典的ROAM是從分裂一個正方形網格開始不斷細分地形的,在SROAM中,我們采用正方體作為球面地形的頂層,如圖254(a)。正方體的6個面分別作為ROAM算法分裂的最頂層正方形。這些正方形的公共邊設置好拓撲關系,以保證不同ROAM面在分裂、合并操作時邊界上網格的連續(xù)性。 當SROAM的頂層正方體分裂成12個三角形,并設置好三角形之間正確的拓撲關系后,ROAM的原理和方法就可以完全適用了。事實上,SROAM算法比經典的ROAD更容易實現,由于球面沒有邊界,因此不需要判斷地形網格的邊界條件,可以獲得更修的繪制速度。唯一不同的是,我們需要將平面的高程數據、紋理數據分塊并映射到給定的球面上。②數據模型的簡化[27][28][29] 要建立全球的地LOD模型,其數據從覆蓋全球的分辨率為幾分或幾秒的DEM數拒和分辨率為幾百米的衛(wèi)星影像,到局部區(qū)域高分辨率的DEM數據和正射航空影像,數據量是巨大的。對于如此大的數據,要想在中低檔微機上達到實時交互的目的,必須對數據分級、分塊管理[z7],如圖255。對于地形的分級,本文采用小波變換對地形進行簡化,并分塊構建金字塔。 小波理論是本世紀八十年代后期發(fā)展起來的一種新的信號處理工具,在時空域和頻率域都具有良好的局部化性質,可以根據不同的尺度要求,由粗到細地觀察信號,被譽為信號分析的數學顯微鏡,在圖形圖像領域得到了廣泛的應用,如:基于小波變換的圖象壓縮、圖象邊緣檢測、圖象拼接、立體視覺與匹配、曲面插值等,而基于小波變換的圖象壓縮是其目前最成功的應用之一。由于規(guī)則格網實際上為一二維數組表示的高度值,完全可以將高度域看成圖像的灰度,將圖像處理的算法引入格網簡化中。本文采用多進制小波簡化DEM數據。M進制小波變換公式為: 其中,aj,k,l為小波的低頻成分,j為任意整數。k,1 = 0,1,2,...n0、nn2為正整數,C為常量。根據四進制小波將全球數據簡化為金字塔數據結構[[29]。然后,根據計算機硬件的性能把每一層分為若千塊。最后,將組織好的數據寫入文件或數據庫。 近年來對于大數據量紋理數據的處理方法研究大紋理數據調度、映射的文獻并不少見。如基于原始紋理圖像分割的傳統(tǒng)方法[[30]和MPGrid方法[32],都是采用預先把大紋理分割成小的紋理片,使每個小紋理片生成的Mipmap圖適應硬件存儲,然后根據視野的覆蓋范圍調度相關紋理片的Mipmap圖組合生成要顯示的數據。韓慧健等人提出了使用Clipmap(裁剪Mipmap)實現大紋理映射[31 ],他的思路是先為原始大紋理生成Mipmap圖存儲在硬盤,再分割Mipmap各層,調入各層與視野有關的分割片數據到有限內存,相當于把視域覆蓋的紋理部分裁剪下來,這樣可以把整個紋理指定在單個坐標系中??傊鉀Q大紋理貼圖的問題目前都采用分級、分塊的方法,該方法可以較好的解決硬件的存儲和帶寬瓶頸問題。本文也采用分級建立影象金字塔、在每一級上分塊隨視點動態(tài)調度的方法實現。 ③高程數據球面映射 對于某一塊DEM數據來說,通常表示為一個二維數組fDEM[nRow][nCol],nRow和nCol分別表示地形在緯度、經度方向的采樣點數。由于ROAM算法的三角形網格的分裂、合并操作可以看作是在二維平面上進行,三角形頂點的高程用頂點的平面位置(x,y)可以很方便的在fDEM數組中查找得到。而球面LOD算法則不然,因為三角形分裂合并操作是在三維球面上進行的。假設要繪制的地球的中心在原點,在某個三角形分裂過程中,網格中新生成的某一個頂點計算坐標(即被分裂的三角形斜邊中點坐標)為P (Px,Py,Pz ),根據球面經緯度投影的原理,向量P的方向決定了該點在球面上的經緯度坐標。因此,我們首先建立P (Px,Py,PZ)與經緯度平面坐標(α,β)之間的映射關系(如圖256 ) 根據球面幾何關系,經緯度(α,β)與P的關系為: 其中,坐標α,β弧度表示。再分別將α,,β規(guī)劃到[01]區(qū)間內后,我們容易得到經緯度與fDEM坐標m, n之間的關系。 綜合(252)(253 )式,得到位置P (x, y,z)與DEM高程數據fDEM的坐標映射關系:最終我們得到P點對應的的實際坐標為:其中R為地球半徑。|P|為向量P的長度。④地圖投影模型 當前大地坐標系是統(tǒng)一的, 能準確、唯一地描述地球上任一點的位置, 并能動態(tài)適應歷史的、現代的越來越精密的各種參考橢球體, 它可作為地球數字產品和大型G IS 最為適當的坐標系, 即采用(B, L ,H) 描述地理實體幾何特征點。這時二維場(B,L ) 是三維地理信息空間沿法線的一個二維投影, 可以用地圖投影把它展平到XO Y 平面上, 也可不展, 它本身為規(guī)則的三維橢球面。由于其數學規(guī)則, 采用二維的曲線族(B, L ) 來表示其上坐標顯得簡便得多, 人們也更易理解, 它是地理信息的水平坐標系, 而H可視為垂直坐標。大型G IS 作用空間由小范圍局部擴展到地學大范圍, 甚至全球范圍, 地球數字產品的覆蓋區(qū)域也遍布全球, 在這樣大的區(qū)域內實現信息共享和互操作, 除統(tǒng)一采用上述橢球坐標系外,“地圖投影”的標準化也是十分重要的。(詳細描述見文章《大型GIS 與數字地球的空間數學基礎研究》)⑤誤差分析(后加)⑥視見體的計算 在視點漫游時,ROAM等平面LOD算法通常要對視景體范圍內所有網格點進行動態(tài)誤差計算。而球面LOD算法有其特殊性,因為,當視點在球面上漫游時,地平線以下的網格是看不見的。如圖2580 視點E距離地球高度為H(先不考慮地表起伏),地球平均半徑為R, EC為視線方向,那么地平線到視點的距離為:對于在球面上三角形網格誤差計算,我們采用的是屏幕誤差P,綜合考慮了網格靜態(tài)誤差、三角形到視點距離、視線方向等多個方面的因素。計算公式為: 其中,K為比例系數,s(c。)為要判斷的三角形的靜態(tài)誤差,D為三角形到視點距離。 采用上述動態(tài)誤差計算公式可以代替視景體裁減,因為,在地平面以下的三角形滿足D幾條件,動態(tài)誤差p =0,繪制時,將被忽略。 關于在每一塊地形上SROAM的三角形分裂、合并以及繪制優(yōu)化方法,與ROAM[26]算法完全相同,本文不再重復。⑥實驗結果與分析 本節(jié)介紹了基于橢球的地球LOD建模,提出了考慮地形的地球LOD模型(SROAM )。為了驗證這些方法的可行性與實際效果,我們在DELL 4550(配置同前)的微機上實現了這些算法,軟件平臺為WindowsNT/2000, Visual C十+6. 0和三維圖形標準OnenGL,結果如下:基于橢球的地球LOD建模結果 圖259為視點到地球不同距離時的地球網格,從圖中可以看出,當地球遠離視點的時候,網格較稀疏,表示精度變低:當視點靠近地球的時候,網格變密,表示精度提局。為了研究使用凹凸貼圖表現地面起伏實際效果,我們分別做了不進行凹凸貼圖的地球繪制和進行凹凸貼圖的地球繪制兩個試驗,結果如圖2510所示。很明顯,使用凹凸紋理后,地面質感明顯增強(如圖2510b )。地球SROAM建模結果 圖2511為SROAM算法繪制帶有地形的地球表面的結果,左圖為網格顯示,右圖為填充效果。在該圖中,視點在P位置,視線方向如圖箭頭方向,扇形區(qū)域為可見范圍。從圖中可以看出,在球面上視點區(qū)域模型繪制時具有最高的細節(jié)層次,而離視點較遠時細節(jié)層次較低。SROAM算法平均每幀繪制20, 000個三角形,速度平均30fps,基本可以滿足實時系統(tǒng)的需要。由于受數據來源的限制,該算法對大數據量的DEM的實際效果還未進行驗證。三、 Geospatial image processing:(準備知識:LOTD:0層瓦片大?。籘ileSize: )1. 獲得帶有地理參考的geotiff 并將他重新投影到WGS84坐標2. 找出geotiff的邊界3. 從geotiff左下角坐標開始,把整個的經緯度范圍切割成最接近LOTD的倍數。4. 在3處理的的geotiff在左下角切下一塊L0TD大小的圖塊5. 將4的圖塊重采樣為瓦片(512512大小或其他,),轉換圖像格式6. 將瓦片放到相應的文件夾下,并以WW的命名規(guī)則命名瓦片的名字7. 重復切下L0TD大小的圖塊直到將TIFF右上角邊界8. 將原圖片以N=(L0TD/2)大小繼續(xù)切割,從3開始重復9. 直到變成1:1比例,即切割大小N=TileSize(小于或等于); NLT Landsat處理技術范例() 這是NASA生產第一個版本Landsat 7 Mosaic(可視波段)的方法。 By Chris Maxwell (Lead Developer, NASA World Wind) ①首先從from the Global Land Coverage Facility下載Landsat7的全球衛(wèi)片Remarks: The scenes e as a set of grayscale GeoTiff files for each row/path/date scene ②然后使用波段1 (Blue),2 (Green),3 (Red)合成RGB的GeoTiff image。 Remarks: 由于我不不想編程實現,我使用了PixelSense,但是PixelSense 提供了一個 linear clip contrast 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 square, find the leastsquares 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 pensate for this for a more pleasing image. Next, use a cubic convolution to smooth out the stretch information in the grid squar