吳 文,陳錦賦
(浙江農林大學,浙江 杭州311300)
隨著中國綠色碳匯基金會于2010年7月19日在民政部注冊成立,中國對CO2濃度的重視不言而喻。碳交易基本原理是:合同的一方通過支付另一方獲得溫室氣體減排額,買方可以將購得的減排額用于減緩溫室效應從而實現其減排的目標。碳匯,一般是指從空氣中清除二氧化碳的過程、活動、機制,在林業中主要是指植物吸收大氣中的二氧化碳并將其固定在植被或土壤中,從而減少該氣體在大氣中的濃度。3S技術發展速度迅猛。RS、GPS、GIS各有其優點,但是也各有其缺陷,隨著時代的發展,人們逐漸將它們結合起來。同時進行三維實時的交互OpenGL與其他圖形程序設計接口的最大不同是它提供了十分清晰明了的圖形函數接口,初學的程序開發人員能夠很快入門,OpenGL的圖形處理能力非常強大。3S和OpenGL技術的結合能夠真實模擬人類生活的場景,由此CO2濃度空間可視化成為熱門問題。
本文系統框架是基于GPS和OpenGL的一個.Net平臺研究系統。運用GPS采集研究地域地理信息,CO2傳感器采集GPS地理信息內的濃度。刻畫地圖和地圖空間內的濃度分別由AE、OpenGL、3D MAX模型描述。由前期測得的數據將信息數值化采集表示于系統,其系統結構框架分別有以下步驟。
(1)運用ArcGIS提供的工具將RS提供數據進行配準,坐標投影,創建要素類,勾畫,將其組合成GIS圖層。
(2)運用GPS和CO2傳感器得到的CO2濃度信息將其保存于數據庫中,然后將該信息做成CO2濃度圖層或者將濃度信息直接在開發AE上操作。
(3)將取得的CO2信息制作成為Tin,Dem文件,和將取得的CO2濃度信息通過OpenGL的方式加載與ArcScene二次編程的場景里。
(4)將組合的各種圖層添加于AE開發的ArcScene場景中,并且運用代碼實現某些成批量的操作和不能運用Arc Map操作的行為。
(5)在(1)步驟中或AE中有創建關于點的要素類,通過對要素類點的操作將3D Max文件和OpenGL CO2信息加入ArcScene場景中。
(6)在 ArcScene場景里面結合.net的優勢實現CO2濃度可視化效果。由以上步驟刻畫組成結構框架,將結構框架組成結構圖,見圖1。

圖1 系統框架
二維底圖制作主要過程是遙感圖像數值化操作。數值化過程主要通過用ArcGIS中Georeferencing數值化。Georeferencing中包括坐標投影、坐標配準、建立要素類、實物地圖勾畫等操作。運用這些操作,可以完成模型底圖刻畫,本文模型選自浙江農林大學學校圖。
3.1.1 投影
測量中,高程的基準面是大地水準面,地表某點距離大地水準面的垂直距離稱為該點的高程H;大地坐標系的基準是參考橢球,用大地經度L和大地緯度B表示點在參考橢球表面的位置,用大地方位角A表示球面上邊長的方向。定義參考橢球大小的元素值長短半軸a、b與扁率f。我國當前常采用的幾種參考橢球如表1。

表1 幾種參考橢球
我國大于等于50萬的大中比例尺地形圖多采用六度帶高斯-克呂格投影,三度帶高斯-克呂格投影多用于大比例尺1∶1萬測圖,如城建坐標多采用三度帶的高斯-克呂格投影。高斯-克呂格投影按分帶方法各自進行投影,故各帶坐標成獨立系統。以中央經線(L0)投影為縱軸X,赤道投影為橫軸Y,兩軸交點即為各帶的坐標原點[1,2]。為了避免橫坐標出現負值,高斯-克呂格投影北半球投影中規定將坐標縱軸西移500km當作起始軸。由于高斯-克呂格投影每一個投影帶的坐標都是對本帶坐標原點的相對值,所以各帶的坐標完全相同,為了區別某一坐標系統屬于哪一帶,通常在橫軸坐標前加上帶號。
如(4231898m,21655933m),其中21即為帶號。高斯-克呂格投影及分帶見圖2。

圖2 投影規則
3.1.2 坐標系統
地球橢球體表面是個曲面,日常生活中的地圖及量測空間通常是二維平面,因此在地圖制圖和線性量測時首先要考慮把曲面轉化成平面。由于球面上任何一點的位置是用地理坐標(λ,φ)表示的,而平面上的點的位置是用直角坐標或極坐標表示的,所以要想將地球表面上的點轉移到平面上,必須采用一定的方法來確定地理坐標與平面直角坐標或極坐標之間的關系。這種在球面和平面之間建立點與點之間函數關系的數學方法,就是地圖投影方法。投影所需要的必要條件是:第一,任何一種投影都必須基于一個橢球(地球橢球體);第二,將球面坐標轉換為平面坐標的過程(投影算法)。簡單地說投影坐標系是地理坐標系和投影過程[3]。
幾何透視法是利用透視的關系,將地球體面上的點投影到投影面(借助的幾何面)上的一種投影方法。如假設地球按比例縮小成一個透明的地球儀般的球體,在其球心或球面、球外安置一個光源,將球面上的經緯線投影到球外的一個投影平面上。
一幅遙感圖像是以位圖的形式存放在計算機內,一幅位圖需要按照一定的比例并配準進行本研究的課題才能進行底圖的刻畫。以下步驟是將遙感位圖配準的過程。
(1)打開Arc Map,增加Georeferencing工具條。
(2)把需要進行糾正的影像增加到Arc Map中,會發現Georeferencing工具條中的工具激活。在view/data frame properties的coordinate properties中選擇坐標系。如果是大地(投影)坐標系選擇predefined中的Projected coordinate system,坐標單位一般為m。如果是地理坐標系(坐標用經緯度表示)表示則選擇Geograp Hic coordinate system。
(3)糾正前可以去掉“auto adjust”前的勾。在校正中需要知道一些特殊點的坐標。
(4)首先將Georeferencing工具條的Georeferencing菜單下Auto Adjust不選擇。
(5)在Georeferencing工具條上,點擊Add Control Point按鈕。
(6)使用該工具在掃描圖上精確到找一個控制點點擊,然后鼠標右擊,Input X and Y輸入該點實際的坐標位置。采用地理坐標系時應輸入經緯度,經緯度用小數表示。
(7)用相同的方法,在影像上增加多個控制點,輸入它們的實際坐標。
(8)增加所有控制點后,在Georeferencing菜單下,點擊Update Display。
(9)更新后,就變成真實的坐標。
(10)在 Georeferencing下,用 Rectify,將校準后的影像另存。
一切坐標系統統一后,根據繪圖需要,在工程內建立要素類完成底圖勾畫。要素類建立本文提供兩種方式,這兩種方式要實現數字化過程都必須在Personal GeoDatabase內。創建Personal GeoDatabase在 Arc-Catalog內進行。
(1)通過 ArcGIS(手動)建立要素類。ArcCatalog下找到建立的Personal GeoDatabase,右鍵New->Feature Class。填上要素類名字和要素類類型以及投影屬性字段。
(2)代碼實現要素類建立。創建工作空間工廠;打開要素類;創建要素圖層;關聯圖層和要素類;添加到地圖空間。
已配準的遙感圖像,需用要素類存儲勾畫的內容。勾畫的過程是用圖層的形式保存遙感圖。勾畫操作運用ArcGIS內的Editor操作。以下為勾畫的步驟。
(1)將投影配準好的RS圖像加載Arc Map內。該圖像為光柵類圖像,可以直接加載于編輯場景中。
(2)將建立好的GeoDatabase內的要素類加載到Arc Map中。選擇需要進行素類圖層勾畫的圖層。
(3)在Editor內的Start editoring和End editoring開始和結束多邊形的勾畫。
(4)在勾畫的過程中按照需要勾畫的圖層樣貌進行勾畫。
AE在.Net平臺進行開發,需要進行必要的平臺搭建。本平臺是利用ArcGIS9.3和VS2008平臺進行開發,必 須將 Arcgis 9.3 Engine SDK NET 和 AE9.3 runtime for Windows文件搭建于其環境中。
用RS采集數字文件圖片,運用Arcmap提供Georeferencing工具進行對指定區域底圖配準。數字化主要通過在Arcgis自帶的GeoDataBase內的要素類進行勾畫。將勾畫的數字文件自動生成為圖層。由此某區域生成了二維。運用3D Analyst tool和Convertsion tools生成所需要的Tin和Dem 3D模型[4]。其中3D模型在ArcGIS內提供Arcscene操作。運用ArcScene內操作將3D Max文件導入場景內,得到的圖為三維圖。以上操作投影坐標均為BeiJing 54投影坐標系。本場景是基于ArcScene三維開發而開發。在環境搭建時已經將ArcScene控件等相關的空間加入場景內。因此可以在本場進內實現漫游,放大縮小等相關的操作。
SceneControl是單一的開發進程并且提供粗粒度ArcObjects組件對象,當然也提供了強大紋理著色的ArcObjects組件,SceneControl通過對象接口IScene V-iewer來表現,同樣ISceneViewer對象布署在ArcScene應用程序中,ISceneViewer對象中包含了一個Camera并且Camera又包含了一個Observer和Target位置,SceneControl提供方便的方式來設置屬性和方法操作對象,例如:SceneControl擁有 Camera、Scene、Scene-Grap H和Scene Viewer屬性,這個SceneControl也提供了一些共同任務的方法。
OpenGL通過ArcScene空間坐標系銜接一整體。運用OpenGL繪三維圖形的優勢將場景內的不和或缺的設置補全于ArcScene場景中。Arcgis內的DEM模型實現。Digital Elevation Model(DEM)是一定范圍內規則格網點的平面坐標(X,Y)及其高程(Z)的數據集,它主要是描述區域地貌形態的空間分布,是通過等高線或相似立體模型進行數據采集(包括采樣和量測),然后進行數據內插而形成的。DEM是對地貌形態的虛擬表示,可派生出等高線、坡度圖等信息,也可與DOM或其它專題數據疊加,用于與地形相關的分析應用,同時它本身還是制作DOM的基礎數據。DEM主要有3種模型:等高線模型、不規則三角網模型(TIN)和規則網格模型(GRID)[5,6]。
DEM是用一組有序數值陣列形式表示地面高程的一種實體地面模型,是數字地形模型(Digital Terrain Model,DTM)的一個分支。一般認為,DTM是描述包括高程在內的各種地貌因子,如坡度、坡向、坡度變化率等因子在內的線性和非線性組合的空間分布,其中DEM是零階單純的單項數字地貌模型,其他如坡度、坡向及坡度變化率等地貌特性可在DEM的基礎上派生。DTM的另外兩個分支是各種非地貌特性的以矩陣形式表示的數字模型,包括自然地理要素以及與地面有關的社會經濟及人文要素,如土壤類型、土地利用類型、巖層深度、地價、商業優勢區等。
霧化因子f是指沿著視線方向與視點到場景對象的距離有關的霧的濃度比例,它體現了像素顏色中霧的權重,其值越大則霧的顏色在像素顏色所占的比重就越大,從而霧看上去就越濃。線性霧化分布的霧化因子隨距離視點深度值的增加而線性減少。為此,定義沿觀察者所在z軸上霧化效果的開始位置Zstart、霧化終止位置Zend及計算霧化效果位置的像素的深度值Zp,則線性霧化的霧化因子是:

指數霧化分布的霧化因子是:

高斯霧化分布又稱為平方指數霧化,其霧化因子是:

在式(2)和式(3)中D是霧的濃度,Zp是霧化效果位置的像素的深度值。在上述霧化因子f的計算公式中,深度值z。是沿視點方向視點到像素的距離值。如果在計算公式中使用其它值就能實現其它特殊的霧化效果。使用霧坐標,可以實現隨著高度的改變由濃漸淡的霧化效果。
霧的顏色Cf是指與場景對象相融合的顏色。OpenGL中把霧的顏色Cf,和場景對象的表面顏色Cs根據式(4)相融合實現頂點層霧化效果:

本文研究是基于3S和OpenGL為基礎實現可視化。底層采用Arc Map進行勾畫,配準,創建要素類,坐標投影組成Arc Map圖層。CO2濃度信息建立CO2濃度圖層。通過利用圖層的優勢,將每個模塊分開實現。也可以不利用Arc Map內的操作,直接運用AE內提供的COM接口進行以上Arc Map操作。
本效果用AE開發比直接運用Arc Map靈活,方便功能的實現。將OpenGL、ArcEngine和.Net技術結合后將3D Max模塊導入ArcScene場景內進行操作。將Arcgis提供的Tin和DEM及OpenGL對CO2濃度進行可視化。其細化框架見圖3、圖4。

圖3 Arc Engine三維效果

圖4 Arc Engine CO2濃度分布
本框架主要是運用AE開發,運用其開發可將目標區域虛擬成一個三維場景,將CO2濃度加到目標場景內。圖4是運用圖3框架進行二次開發得出的效果。圖4是將CO2濃度分布狀況顯示于三維場景內,人的視覺可以在空間直觀地體會CO2濃度。圖中CO2濃度高的區域顏色為深紅色,濃度低的區域濃度為淺紅色。本圖中除了用霧表現CO2濃度,在圖中的柱形圖和顏色也表示了CO2濃度的高低。
本文采用3S和OpenGL以及ArcGIS組件技術進行二次開發,實現了對某空間區域CO2濃度可視化。系統地集成了CO2濃度空間區域分布狀況,為研究區域CO2濃度的研究者提供了一個良好的平臺,研究者能夠直觀地觀察和了解CO2濃度的分布狀況。本系統提供了三維漫游、空間查詢、縮放等功能為探究CO2濃度提供更好的服務,同時為研究全大氣中CO2濃度起到有效作用。
[1]常 河,羅志清,潘 萍.三維可視化展示系統在數字小區中的設計與應用[J].遼寧工程技術大學學報:自然科學版,2008(4):92~94.
[2]朱高龍.三維可視化技術在城市景觀規劃中的應用——以福州濱江景觀規劃為例[J].閩江學院學報,2008(7):17~18.
[3]丁 斌,祖家奎.三維可視化中的地形建模與實現技術研究[J].計算機仿真,2008(12):223~226.
[4]單業才.城市電網三維可視化規劃方法及應用研究[D].武漢:華中科技大學,2009.
[5]孫 莉,廖文和,劉長毅,等.基于VRm L-Java3D的交互式裝配可視化環境構建[J].機械制造與自動化,2006(2):56~57.
[6]梁鵬帥,馮冬敬.三維可視化的研究現狀和前景[J].科技情報開發與經濟,2009,19(7):74~76.