雷歡 胡惠菱
摘 要:在地質、氣象、環境等相關領域,等值線使用廣泛。文章基于Delaunay三角網等值線生成算法,在ArcMap中將離散點的文文章件轉化成Shapefile點數據文件,使用ArcGIS Engine讀取離散點生成三角網,利用等值點的插值、追蹤等技術尋找等值點并繪制等值線。
關鍵詞:等值線;Delaunay三角網;GIS
1 概述
近年來,隨著計算機技術的快速發展,等值線和等值面的應用廣泛,在氣象領域,降水等值線可表示某區域的降水情況;測繪領域,等高線可表示區域的地形地貌情況。等值線在國民生產和建設中發揮著越來越重要的作用。
在三維空間,數據采集點在空間上的分布往往呈離散形式。利用有限的離散空間信息盡量恢復地學變量的分布狀態,以研究在空間上的變化規律和分布特征,最常用、最普遍的方法就是繪制空間變量的等值線圖[1]。
2 設計思路
在ArcMap中將離散點的文文章件轉化成Shapefile點數據文件,使用ArcGIS Engine讀取離散點,得到離散點的坐標和高程值。對離散點進行插值,生成Delaunay三角網,基于Delaunay三角網使用追蹤等技術尋找等值點并繪制等值線。
2.1 Delaunay三角網的構建
Delaunay三角網的經典生成算法有三種:分治算法,逐點插入法,三角形生長法[2]。三種算法各有優劣,分治算法效率高,遞歸運算較多,占用內存大;逐點插入法容易實現,效率較低;三角形生長法占用內存少,效率較低。文章采用逐點插入法生成Delaunay三角網。
2.2 等值點的計算
三角形三個頂點的值分別為p1,p2,p3,等值線的值為H,三角網生成后,需要在三角網上插補等值點。如果三角形的三個頂點的值p1,p2,p3都不相等,其中有一個頂點的值等于當前等值線的值,例如p1=H,若該三角形還存在另一個等值點,則另一個等值點位于頂點p1所對應的三角形的邊上,確定三角形等值點所在的邊后,利用線性內插方法就可以求出等值點的坐標,其數學計算公式如圖1所示。
2.3 等值線的追蹤
基于Delaunay三角網追蹤等值線的主要過程包括:線頭的尋找、等值點的追蹤、尋找結束標志等。線頭的尋找主要包括尋找開曲線線頭及尋找閉曲線線頭。尋找開曲線、閉曲線的線頭后,需要找到某等值線的全部等值點,這就是等指點的追蹤。線尾的尋找同樣包括開曲線和閉曲線線尾的尋找。
3 等值線生成的實現
使用ArcMap通過Add XY Data方法,加載原始離散點文本數據,并保存為Shapefile文件,使用ArcGIS Engine組件式開發,基于上述等值線生成算法,由離散點坐標生成Delaunay三角網,最后確定等值線的值對三角網進行插值計算,找到等值點,將等值點連接起來就可以形成等值線。
3.1 數據預處理
原始離散數據文件中記錄了點號,坐標,屬性值,即(ID、X、Y、Z)。在ArcMap中通過Add XY Data方法,將離散點文本中的數據在Arcmap中以點的形式顯示,將這些點導出為shp格式的文件,完成離散點文文章件轉化為shp格式的文件,shp文件屬性表中記錄著點號,坐標,屬性值。將原始離散數據轉換成shp格式,便于在Map控件里讀取并顯示點的信息。
3.2 讀取shp文件
在VS環境下,引入MapControl(ArcGIS Engine地圖控件),編寫代碼實現shp文件的讀取并顯示。
3.3 離散點坐標生成三角網
根據三角網特征,由記錄在數組里的坐標X、Y,采用逐點插入法,得到三角網數組Triangle并生成Delaunay三角網。逐點插入法的思想是:根據離散點的信息構建一個三角網之后,逐個插入離散點,根據三角網的性質,調整現有的三角網,直至生成包括所有離散點的三角網。生成三角網結果如圖2所示。
根據給定的等間距,讀取存儲點的數組,求出等值線條數及每條等值線的數值。對每條等值線,在三角網里內插等值點,并追蹤繪制出等值線。生成等值線結果如圖3所示。
4 結束語
文章基于Delaunay三角網生成等值線算法,設計并用程序實現了由離散點數據生成Delaunay三角網,再利用三角網生成等值線的流程。在ArcMap中將離散點的文文章件轉化成Shapefile點數據文件,使用ArcGIS Engine讀取離散點生成三角網,利用等值點的插值、追蹤等技術尋找等值點并繪制等值線。存在得到的等值線沒有進行平滑處理、基于三角網進行等值點內插時,只是在三角網內部插值,沒有考慮外插情況等不足,將在后面進一步的完善。
參考文獻
[1]姜志偉,王山東,王伶俐,等.基于格網和方向法索引的Delaunay三角網生成算法[J].測繪工程,2014.
[2]遲文學,吳信才,于海洋,等.張力樣條函數在雨量等值線光滑中的應用研究[J].水文,2007.