林春峰 程 昂
(中鐵二院工程集團有限責任公司,四川成都 610031)
基于AutoCAD的高程點和等高線快速賦值軟件設計與實現
林春峰 程 昂
(中鐵二院工程集團有限責任公司,四川成都 610031)
設計并實現了一種基于AutoCAD平臺的高程點和等高線快速賦值軟件,該軟件能夠實現高程點自動、批量賦值。針對等高線賦值,提出了“區(qū)分計曲線和首曲線,先程序自動、后人工交互”的作業(yè)模式,該模式可以使用已賦值的高程點實現計曲線快速賦值,然后利用已賦值的計曲線對首曲線賦值。在實現過程中考慮了實際作業(yè)習慣,提供多級檢查機制,確保各環(huán)節(jié)各類數據賦值正確無誤。工程實踐證明,該軟件能夠極大地提高生產效率,降低錯誤率。
高程點 首曲線 計曲線 賦值
地形圖中,高程點和等高線是表示地形地貌非常重要的地理實體要素,分別以帶有高程值的注記和帶有不同寬度的曲線來表示。在AutoCAD中,有時表示高程點和等高線實體的塊和線元素本身沒有高程信息?;贏utoCAD軟件設計并實現了一種針對數字地形圖中高程點和等高線賦值的軟件,能夠根據數字地形圖中包含的相關信息快速實現高程點和等高線賦值工作。
工程應用中,數字地形圖通常以AutoCAD軟件所支持的DWG格式存儲,DWG數據中包含點、線、塊、填充、圓、弧、注記等實體類型,且包含圖層。一個圖層中可以包含一種實體類型,也可以包含多種實體類型[1-3]。
高程點和等高線是數字地形圖中兩種非常重要的地理實體要素,能夠表示地形地貌特征。在DWG數據中,高程點通常以“塊”或“塊+注記”的形式存在于圖面上[4],即:塊在地形圖中的平面位置表示高程點實際所在的平面位置,注記的內容即為高程值,塊和注記實體本身的高程值為0,高程點賦值的目的就是將注記內容表示的高程值賦予塊和注記實體。
在DWG數據中,等高線分為首曲線和計曲線兩種,都是線實體類型,不同種類的等高線按照圖層和線寬區(qū)分。未賦值的等高線,本身實體對象的高程值為0,在工程應用時,等高線高程值的判讀需要根據其周邊高程點、等高距等要素人工判識。等高線賦值的目的就是將表示等高線的線實體對象的高程改正為正確的高程值。圖1為高程點和等高線在數字地形圖中的形式。
圖1 高程點和等高線
圖1中,紅色粗線為計曲線,黃色細線為首曲線,白色塊和注記為高程點。根據計曲線是加粗首曲線,且高程值為10的整數倍[5]等特性,可以根據圖面上的高程點對計曲線高程值進行判斷;首曲線則可以根據判斷完成的計曲線進行判斷。
高程點和等高線賦值有兩種作業(yè)模式:一種是人工模式,即通過人工方式,逐個逐條的錄入高程點和等高線的高程值;另一種是半自動模式,即針對等高線由人工指定起始等高線,根據等高距及高差,自動通過空間關系完成等高線的高程賦值[6,7]。第一種模式工作量巨大,在生產中基本不予采用;第二種模式雖然部分實現自動化,但仍需人工干預,特別是出現地貌突變或等高線因為注記壓蓋等因素斷開等情況等,自動賦值往往失敗。
常見的具有高程點和等高線賦值功能的軟件有GeoWay、MapGis、清華山維等,但是采購軟件具有較高成本,且不一定符合本單位的具體需求。因此,設計了一種基于AutoCAD軟件的高程點和等高線快速賦值軟件,軟件能夠全自動實現高程點賦值,然后根據已賦值的高程點信息構建TIN,利用TIN和計曲線的空間關系及計曲線的特性對計曲線進行自動賦高程值,并提供對計曲線高程值進行檢查的功能,確保計曲線賦值完全正確;最后,根據已賦值的計曲線對首曲線進行交互式賦值。軟件實現流程如圖2所示。
圖2 高程點和等高線賦值流程
2.1 高程點賦值
數字地形圖中,高程點一般是由“塊”或“塊+文本”注記的形式存在,且是單獨存放于一個圖層。“塊”或“塊+文本”在數字地形圖上的平面位置為其真實的平面位置,高程信息則存儲于圖面的文字信息中,高程點賦值就是將圖面中文字信息中存儲的高程值賦給“塊”或“塊+文本”。實現流程如圖3所示。
圖3 高程點賦值流程
高程點賦值可以通過程序自動完成,無需人工交互操作。
2.2 計曲線賦值
計曲線為加粗等高線,其高程值一般為10的整數倍,且單獨存放于一層。利用該性質,可以通過已經賦值的高程點數據對其賦高程值。
(1)高程點構建TIN。構建的TIN能夠反映數據范圍內地形的整體情況。
(2)取一根計曲線,獲得其與TIN三角形邊的交點,并計算交點的高程值,具體計算方法如下:
假設某條等高線與TIN中某邊(頂點A和頂點B,并已知其平面坐標)的交點為J,點A的高程值為Za,點B的高程值為Zb,如圖4所示。
圖4 計算交點高程值
可以通過計算得到:點A到點B的距離為Dab,點J到點A的距離為Dja,則點J的高程值Zj可以按照“權重與距離成反比”的原則進行計算,即為
(1)
(3)按照式(1)對等高線上所有的交點進行計算,圖5為等高線與TIN交點示意。
圖5 等高線與TIN相交
(4)對交點高程值進行統(tǒng)計。
統(tǒng)計時,可以設置區(qū)間{……[-15,-5),[-5,5),[5,15),[15,25),[25,35)……},統(tǒng)計交點的高程值落入哪一個區(qū)間,計算方法如下:
首先按照式(2)計算交點高程值所在的區(qū)間索引值,每一個區(qū)間索引值對應一個前閉后開的區(qū)間
(2)
其中,(int)Math.Floor(m)函數的意思為取小于m值的最大整數部分數值。
區(qū)間索引值與區(qū)間所對應的高程值關系為
(3)
最后統(tǒng)計出每一個區(qū)間中交點的個數,圖5所示的計曲線與TIN交點統(tǒng)計結果如圖6所示。
圖6 交點統(tǒng)計結果
(5)對所有計曲線進行(2)-(4)步驟的操作,這樣就完成了計曲線賦值操作。
由于地形突變、高程點位置分布不均勻等因素,通過程序自動進行計曲線賦值時,部分計曲線賦值會出錯,需要進行改正。設計了一種交互式計曲線賦值錯誤查找、改正的方法,即提供對等高線交互式注記的功能,在數字地形圖上注記已經賦值的計曲線,通過顯示出的高程值與周邊高程點進行快速判定計曲線是否賦值正確,若不正確,立即改正。圖7為計曲線注記結果。
圖7 計曲線注記結果
2.3 首曲線賦值
因為首曲線是在相鄰兩條計曲線中線的基本等高線,利用已賦值的計曲線對首曲線進行交互式賦值,即:拉選一組計曲線,獲得相鄰兩條計曲線中間的首曲線,按照等距的原則將這兩條計曲線的高程值分配給首曲線。
假設相鄰兩條計曲線分別為J1、J2,其高程值分別為Zj1和Zj2,J1和J2中間有n條首曲線分別為S1、S2……Sn,拉選線方向為J1-J2方向,如圖8所示。
圖8 交互式首曲線賦值示意
則首曲線Si(i∈{1,2,3...,n})的高程值為
(4)
依次拉選所有計曲線,則可以完成對首曲線的賦值。
工程用數字地形圖一般以AutoCAD軟件的DWG格式存儲,且AutoCAD軟件提供開發(fā)接口,支持插件開發(fā)[8,9]。因此,以AutoCAD為基礎平臺,采用其提供的ObjectArX.net開發(fā)接口進行高程點和等高線賦值軟件的實現。
依照上述高程點賦值的實現思路,設計了如圖9所示的“高程點賦值”工作界面,只需要指定待賦值的高程點所在的圖層和數據源,即可進行自動賦值。
圖9 高程點賦值界面
圖10為計曲線賦值的工作界面,在該工作界面上,需要選擇高程點圖層、高程點類型以及待注記計曲線所在的圖層信息,就可以對計曲線進行注記。
圖10 計曲線賦值
圖11為通過計曲線為首曲線賦值的工作界面,只需要設置計曲線和首曲線所在的圖層,然后利用交互式的方式在地形圖中拉選成組的計曲線,則可以實現首曲線賦值。
圖11 首曲線賦值
某鐵路工程項目收集到了90幅、約2 250 km2數字地形圖數據,高程點和等高線未賦值,為了工程設計需要,需要對高程點和等高線進行賦值。采用高程點和等高線快速賦值軟件進行數據處理。由于高程點賦值可以實現自動、批量處理,因此耗時較短,且正確率為100%。計曲線賦值分為自動賦值、交互式檢查和交互式賦值三部分,由于針對作業(yè)習慣提供了相應的檢查和賦值功能,交互式方式較手動方式效率有較大的提高。首曲線賦值則是在計曲線賦值的基礎上進行交互式操作,可以一次選擇多條計曲線,效率也較高。經過多人較短時間作業(yè),為該項目提供了確實可靠的地形圖成果。
提出了針對高程點和等高線賦值的完整的解決方案,設計的算法思想簡便,計算簡單,易于實現編程,且符合作業(yè)流程習慣,具有很高的實用價值。在開發(fā)軟件時,需要考慮算法優(yōu)化,才能使得作業(yè)效率更高。
[1] AutoCAD R13/R14/R2000 DWG file Spercification Version 2.0. Published by OpenDWG Alliance[EB/OL]. www.openDwg.org 2002
[2] 孫炎,羅曉沛.基于DWGDirect實現AutoCAD 與ArcGIS的數據交換[ J].計算機工程與設計,2009,30(7)
[3] 陳能,施蓓琦.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8):4-17
[4] 段琪慶,席志芳,郝光榮.高程點與等高線快速賦值方法設計[J].濟南大學學報:自然科學版,2005,19(4):346-350
[5] GB/T 202571—2007國家基本比例尺地圖圖式第一部分:1∶500 1∶1000 1∶2000地形圖圖式[S]
[6] 梁佳,魏金占,韋俊部.一種實用的等高線高程自動賦值方法研究[J].科技資訊,2013(16):39-41
[7] 安如,張琴,賢榮,等.長江河道AutoCAD數據轉換為GIS數據的方法[J].河海大學學報:自然科學版,2009,37(5):523-528
[8] 杜剛,劉學東,張磊.基于ObjectArx的AutoCAD二次開發(fā)及應用實例[J].機械設計與制造,2004(3):30-32
[9] 于蕭榕,郭昌言,陳剛.結合Objectarx和C#進行AutoCAD二次開發(fā)框架的研究[J].科學技術與工程,2010,10(20):5085-5090
BasedonAutoCADElevationPointsandContourFastElevationvalueAssignmentSoftwareDesignandImplementation
LIN Chun-feng CHENG Ang
2014-09-29
林春峰(1987—),男,2011年畢業(yè)于武漢大學遙感信息工程學院地圖學與地理信息系統(tǒng)專業(yè),工程師。
1672-7479(2014)06-0011-04
P284
: A