摘 要: 利用三維GIS與ESRI公司的組件式GIS-ArcGIS Engine的基本思想技術,在Visual C#開發環境下開發廣西肝癌與氣候危險因素GIS系統。系統解決傳統三維可視化系統難以對山區分不同的高度建模存儲的問題,這對傳統醫學空間流行病學的研究是一個全新的突破。
關鍵詞: ArcGIS Engine;肝癌;三維GIS
第三次全國死因回顧抽樣的結果顯示,廣西是肝癌高發的省(市、自治區)之一,而且其發病地區分布很不均衡,肝癌的發病與地理氣候因素密切相關。然而對于肝癌與氣候、土壤、地形等環境氣候因素之間的關系國內外基本缺乏系統地研究,出現的客觀原因可能是地理、氣候等,其空間數據的復雜性與海量化,傳統的流行病學方法與手段對于空間數據的獲取與分析存在相當大的難度。再加上廣西是一個丘陵地貌為主的地區,傳統文字描述和地圖等語言根本沒有辦法完成廣西肝癌與氣候危險因素GIS[1-2]系統(下文稱“肝癌危險因素GSI系統”)開發,同一個山體不同高度也會有不同氣候因素,所以這套系統難點就是做到三維可視化系統對山體不同高度環境氣候進行建模存儲和開發設計。
組件式地理系統(CamGIS)[1-2]是GIS技術發展的潮流。ArcGIS Engine[3]是ESRI公司新推出的組件式GIS,它可以低成本為用戶提供用戶需要特點的GIS應用。另一方面,GIS能與以前的地理圖像進行對比和分析。所以可以使用AR(ArcGis)技術對廣西肝癌與氣候危險因素GIS系統中去解決開發的難題。
1 ArcGIS Engine組件式開發概述與開發方式
1.1 ArcGIS Engine組件式開發概述
ArcGIS Engine是ESRI公司新推出的GIS組件式開發引擎。組件式開發克服了傳統GIS與其他系統[4-5]集成困難的特點,便于與各種不同特性的組件無縫集成。
1.2 ArcGIS Engine的GIS組件開發方式
ArcGIS Engine的GIS組件系統開發的方式有三種:
(1)ArcGIS Engine的GIS組件系統的二次開發:利用ArcGIS Engine已經有的開發語言和環境進行再次開發,不能脫離ArcGIS Engine的GIS開發環境,屬于較簡單開發。
(2)ArcGIS Engine的組件系統開發:利用標準的通用開發程序語言結合ArcGIS Engine的GIS組件進行開發,如VC#語言的開發環境、調用ArcGIS Engine的GIS組件進行開發等。這種方法屬于比較高級的開發方式,不依賴ArcGIS Engine的開發平臺,可以自主單獨進行,自主開發部分可具有自主知識產權。
(3)ArcGIS Engine的底層系統開發:系統所有內容全部自主開發,其中包括底層圖像驅動等高難度開發,不依賴任何開發平臺,具有全部知識產權,開發難度非常大。
由于廣西肝癌與氣候危險因素GIS系統研究很復雜,圖像和數據非常多,在選擇VC#開發語言環境下,系統同時采用三種開發方式,數據和圖像部分處理采用第一和第二種開發方式,高級的圖像呈現必須要系統開發小組自己完成,也就是第三種開發方式。
2 肝癌危險因素GIS系統三維GIS定義與數據模型設計
2.1 肝癌危險因素GIS系統的定義及開發流程
因為肝癌危險因素GIS系統調查的對于山體氣候不同高度氣候是有要求的,所以傳統的基于平面的二維GIS不適合設計本文系統,必須使用三維GIS才能完成,特別在空間位置與拓撲關系的描述及空間分析的伸展上更能體現其優勢[6-7]。
肝癌危險GIS系統可以采用的開發方式有三種:(1)難度最大的底層開發,對開發小組要求最高,本系統山體底層立體成像細微部分即采用這種方式的;(2)對于系統大面積的顯示整體,本系統利用可視化的軟件實現三維信息的顯示過程;(3)借助成熟的GIS軟件進行三維二次開發,使系統能分山體不同高度建模,增強肝癌危險GIS系統可視化的功能,達到對危險因素準確的數據分析,這種開發是肝癌危險GIS系統[8]最主要的開發方式。
2.2 GIS系統Multipatch多片模塊三維數據模型
Multipatch多片模塊在Arc GIS開發系統中定義表示為:描述三維表面的元素集合,在肝癌危險GIS系統中主要是描述山體各種不同的元素集合。系統的多片模塊就是在二維山體圖形的基礎上,將垂直值作為系統山體高度坐標值,得到系統所要的山體三維圖形。
2.3 GIS因素系統Multipatch多片模塊獲取與建模
肝癌危險因素GIS系統的Multipatch多片模塊采用基于矢量結構的三維表面數據模型。而實際采集到的數據是二維的數據,與系統需要的三維數據有很大差距,要求用便捷的方式由二維數據變為三維數據。本文采用兩種方法進行二維數據與三維數據的轉換:(1)在二維數據生成的圖形基礎上直接建模轉換;(2)把二維數據導入三維模型中,由編程糾錯的方法把二維數據轉變成三維數據使用。
2.4 GIS系統Multipatch多片模塊創建的方式
肝癌GIS系統的采用在二維數據的圖形的基礎上直接建模的方式,通過SceneControl控件和C#圖形編程結合顯示,直接實現肝癌GIS系統對各個采集數據點肝癌發生區在同一個山體不同高度的查詢與立體式訪問。
建模方式為:(1)拉伸二維底面,用IconstructMultipatch接口實現;(2)使用IGeneraMultipatch接口結合C#編程,并利用GeometryMaterailList實現肝癌GIS系統中更加逼真的多維模塊。
可以用IConstructMultipatch接口去創建多維模塊的圖形的起始底面,從而得到山體不同高度的模型。其代碼如下:
For Altitude=0 TO Altitude(MAX)
//從山體最低處到山體最高處
Set cylinder=Shape
Set IConstructMultipatch=New AltitudeMultipatch
IConstructMultipatch point=100meter
//假設每百米列出數據
……
Next Altitude
3 肝癌危險因素GIS系統設計與開發
3.1 GIS系統設計
肝癌危險因素GIS系統提供一個廣西肝癌與氣候危險因素與三維信息的互相操作和查詢的平臺,在該平臺上的用戶可以很方便看到廣西肝癌與氣候危險因素在各個地區情況,特別是可以看到同一座山上不同高度不同氣候條件下各種因素對肝癌危險的關系。
3.1.1 GIS系統開發環境
肝癌危險因素GIS系統采用的語言是Visual C#2008,GIS系統的GIS平臺是ArcGIS Engine,GIS系統存放空間數據和屬性數據采用Geodatabase空間數據庫。
3.1.2 GIS系統實現功能目標
(1)圖層不同高度的操作:對肝癌危險因素GIS系統中各種不同山體三維的圖層進行增加、刪除和轉換。
(2)多角度數據的瀏覽操作:能實現肝癌危險因素在山體的三維空間多角度的放大、縮小、漫游、縮放、拖動等功能及顯示相應危險數據。
(3)查詢功能:能在三維視圖中快速地查詢到所需要的山體不同對于高度系統的數據。
(4)屬性查詢:顯示山體選中三維不同高度肝癌危險因素信息。
3.2 GIS系統功能實現
3.2.1 圖層不同高度的操作實現
使用Visual C#對系統進行對接編程,裝載ArcGIS Engine中的SceneControl和MapConrrtrol用于顯示系統圖形,然后再裝載ArcGIS Engine中的TocControl控件進行對山體三維層的增加、刪除和轉換。
3.2.2 多角度數據實現
使用Visual C#對系統進行對接編程,使用SSTab控件裝載ArcGIS Engine可視化控件SceneControl和MapConrrtrol的容器,實現山體的三維空間的放大、縮小、漫游、縮放、拖動等功能,以及顯示相應危險因素數據。
3.2.3 查詢功能實現
肝癌危險因素GIS系統查詢功能指系統用戶能在三維視圖中快速地查詢到所需要的山體不同高度系統對應的數據。使用Visual C#編程工具快速按字段關鍵字(如“高度”,“溫度”,“肝癌患者數”等)查詢。使用Visual C#對系統進行對接編程。
4 肝癌危險因素GIS系統實例分析
系統開發與展示環境:1臺數據服務器、1臺應用服務器和65個鄉鎮衛生站的統計客戶端,2臺服務器配置基本需要四核八線程CPU,內存4 GB,采用Win7系統。
根據以上所討論的技術與方案設計開發了廣西肝癌與氣候危險因素GIS系統,在廣西肝癌與氣候項目中進行了示范應用,實現項目組與各個部門統計數據的集成與共享,并對該系統進行一體化的存儲與管理。特別是在三維展示各自與肝癌有關系的因素上發揮出了不錯的效果。如圖1所示為廣西肝癌與氣候危險因素GIS系統在廣西某山區統計部分數據展示圖。
圖中每組數據的3個數值分別表示:海拔高度、該地區溫度、肝癌數量。
本文針對廣西肝癌與氣候危險因素GIS系統的實際需求,提出了基于AE和C#聯合開發的三維GIS系統,突破了傳統醫學統計的局限性,通過傳統醫學統計學與現代GIS計算機技術有效結合,使得醫學統計學更加高效率和更加直觀化。但由于這方面研究剛剛起步,在實際開發中,很多現代醫學統計技術與GIS的結合上還存在學科融合問題,有待進一步的改進。
參考文獻
[1] 鄭坤,劉修國.基于啟發式規則的網頁主題信息精確定位方法[J].地球科學-中國地質大學學報,2010,35(3):369-374.
[2] 顧洪祥,李建忠.基于ArcObjects的環境規劃與管信息支持系統[J].計算機系統應用,2010,35(3):369-374.
[3] 張賜,吳健平.基于AE的校園房產三維GIS系統開發與研究[J].計算機技術與發展,2011,21(2):215-222.
[4] 孫棟,陳莉.基于數據倉庫的決策支持系統[J].微機發展,2005,15(10):67-72.
[5] 程亮,張友靜.Web環境下房產測繪信息三維可視化技術研究[J].測繪科學,2008,33(1):119-121.
[6] 范力銘.基于ArcObjects的三維GIS系統開發與應用[M].上海:華東師范大學,2007.
[7] 汪明沖,趙軍,李玉琳.空間數據庫引擎及其解決方案分析[J].地理信息時間,2006,8(4):63-6.
[8] He Xubin, Ou Li, KOSA M, et al. A unified cache for high perfman cluster storage Systems[J]. International Journal HighPer formace Computering and Networking 2007,5(1/2):97-100.