來源:《測繪通報》2017年第5期
作者:劉洪、黃軍勝
摘要:論述了數字地形圖中產生高程點與等高線錯誤的可能原因,分析了高程點和等高線在地形圖中的空間位置關係及作為判斷條件的數學關係,論述了解決問題的辦法和判斷規則,展示了通過編制電腦程式實現找出其錯誤的核心代碼。此研究對於減輕質檢人員在檢查數字地形圖的高程點與等高線錯誤時的勞動強度和提高工作效率很有意義。
關鍵詞:數字地形圖;等高線;高程點;點線不符;C#
因為科學技術的進步,在現階段地形圖的生產能力有了很大的提高,但由於人工智慧仍不夠發達且很多環節仍需要人工幹預,導致生產出的地形圖仍存在著高程點與等高線的錯誤。 對於質檢人員而言,如果僅憑藉著眼睛,要找出這些錯誤以提高地形圖的質量水平是非常困難的,勞動強度大不說,而且效率低下、極易出現遺漏。因此,找到一種高效率的辦法解決這個問題就顯得很有必要,本文正是據此分析產生錯誤的原因,找到解決的辦法,再利用C#+ObjectARX 對AutoCAD 二次開發編程實現查找數字地形圖中高程點與等高線的錯誤。
1、錯誤原因分析
1.1 高程點錯誤
目前大比例尺數字地形圖主要有3 種生產方式:一是老圖矢量數位化,在識別老圖中的高程註記點時,有些不能正確識別,需要人工修改,容易輸入錯誤;二是利用航片經畸變糾正等工序生成正射影像得到數字線劃圖並在立體模型中取得高程屬性值,取得高程值時讀取錯誤,與實際繪製的等高線形成矛盾;三是全野外數據採集內業編輯形成數字地形圖,其註記點的高程直接由數據文件讀取生成,這種直接註記高程點的方式不易出現錯誤,但作業員在調整自動繪製的等高線時,可能為了圓滑美觀而人為調整等高線上的節點位置,從而導致高程註記點的高程數值與等高線形成矛盾。
由以上方式生產得到的數字地形圖,都有可能因圖面高程註記點的數量達不到規範要求而人工加注高程點,而人工加點由於作業人員的疏忽,判斷等高線錯誤導致加注高程點錯誤,這是最易產生錯誤的原因。
有時,作業員在發現高程註記點的高程數值與等高線相互矛盾時,為圖方便,僅將其註記數值修改成正確數值而沒有對高程點特性的坐標Z 值進行相應修改,從而導致錯誤。
1.2 等高線錯誤
在調整不合理等高線時,作業員需刪除計算機繪製的部分不合理等高線,另行繪製補充,由於粗心,忘記修改等高線的高程屬性值,使其值為零或其他錯誤值,導致新繪製的等高線與已繪製好的等高線及高程點相互矛盾,或者又由於圖面元素太密集而在瀏覽時誤刪了某一條正確的等高線。
2、解決辦法探究
2.1 錯誤歸類
根據以上原因分析,可以看出數字地形圖中高程點與等高線產生錯誤的原因可以歸為如下4 類:即點的高程特性坐標Z 值與點的高程註記數值不符;等高線正確,但高程點不正確;高程點正確,但等高線不正確;等高線與高程點皆不正確。
2.2 解決辦法
2.2.1 點的高程特性坐標Z 值與點的高程註記值不符
對數字地形圖的∗.dwg 格式文件進行遍歷ꎬ在高程點圖層中找到全部高程點,讀取其高程特性坐標Z 值和高程註記數值(即高程點特性中的height屬性值),並將兩者比較,若兩不相等,即為作業員修改過高程點的高程註記數值,用圓圈將其標示出來。
如圖1 所示,高程點的高程特性坐標Z 值原為「61.355 0」,點的高程註記數值原為「61.36」,被作業員人為修改為「59.36」,導致兩者不符,這在入庫時或許會引起新的錯誤。
圖1 高程點自身屬性數據矛盾
2.2.2 等高線正確,但高程點不正確
如果等高線與高程點都是正確的,則高程點的高程註記值與其最近的一根等高線的高程值之差應該在一個等高距之內。
在AutoCAD 中,每一個圖元都對應著一個唯一的ID,可以從高程點開始,人為構造一條射線,與等高線相交ꎬ提取這些交點和與之對應的等高線ID,然後按高程點與這些交點的遠近距離進行排序,由此可按順序逐條找到高程點周邊的不同等高線。圖2 所示為構造線與等高線相交的可能順序。
圖2 排序前等高線的順序
相交後,即可獲得各交點的坐標,據此可計算出各相交點與此高程點的距離,根據其距離值的大小,再次按近遠順序排列,圖3 所示,為構造線與各等高線相交點距離的近遠順序。
圖3 排序後等高線的順序
經過這樣排序之後,便可按順序找到相應的等高線,讀取其高程值。
假設高程點的高程值為HA ,若|HA-H1|>等高距,則此高程點錯誤,以圓圈標記之,如圖4 所示(橫線為構造線,處理後程序自動刪去)。
圖4 高程點錯誤示例圖1
若|HA -H1| <等高距,同時HA -H1 >0 且H1 -H2 <0 或HA -H1 <0 且H1 -H2 >0,則此高程點錯誤,如圖5所示。
圖5 高程點錯誤示例圖2
若|HA -H1| <等高距,同時H1 = H2,則需要H2和H3 按上一條規則判斷,以確定H1 和H2 之間是鞍部還是山谷、山峰、鞍部、盆地或山脊,目的也是判斷出高程註記點A 沿構造線方向地形高低的走勢,從而判斷A 點高程是否正確。
如果, 此高程點錯誤。
如果,否則此高程點錯誤。
如圖6 所示,HA 點所在位置較為直觀地反映了|HA -H1| <等高距,同時H1 = H2,如果H2< H3,即H1<H3,HA 必大於H1 這一規則(此處A 點高程值錯誤)。
圖6 高程點錯誤示例圖3
2.2.3 高程點正確ꎬ但等高線不正確
(1) 等高線高程值為零這種情況存在於沿海一帶及海拔位於零左右的地方,在其他地方出現便是錯誤無疑, 作業員在調整修改等高線時,對部分不合理的等高線進行了刪除操作,然後由手工繪製補充,而未對其賦予正確的高程值可能會出現零或輸入了其他錯誤值, 這樣的等高線,在圖面上並不能看出不妥之處,但在建立立體模型生成DEM 等產品的過程中,必定會出現與實地不符的形狀,從而導致錯誤,嚴重影響產品質量。
0 米高程線在其線頭位置以圓圈標記,並註明此線高程為0,
(2) 假設A 點沿構造線方向相交有3 條以上多條等高線且等高線的高程值均不相等,
如果|H3-H1 |=等高距且|H2 -H1| ≠等高距,則臨近高程點A 的第1 條等高線錯誤,在其交點位置以圓圈標記。
如果|H3-H1 | = 2 倍等高距或者零且|H2 -H1| ≠等高距,則臨近高程點A 的第2 條等高線錯誤,在其交點位置以圓圈標記。
如果|H2 -H1| =等高距且|H3-H2 | ≠等高距,則臨近高程點A 的第3 條等高線錯誤,在其交點位置以圓圈標記。
以此類推,可以判斷出第4 條、第5 條甚至更多的等高線, 不過,此地形圖如果是按規範展繪高程點,其數量及位置涵蓋到了每個小區域,則不必每個點都判斷多條等高線,根據經驗,一般判斷3 條就夠了。
圖7 較為直觀地反映了|HA -H1| <等高距,同時H1- H2 >等高距,則此處等高線2 必定錯誤這一規則(此處為等高線2 錯誤)。
圖7 等高線錯誤示例圖1
圖8 較為直觀地反映了|H3 -H1| = 2 倍等高距或零且|H2 -H1| ≠等高距,則臨近高程點A 的第2 條等高線錯誤這一規則(此處為第2 條等高線錯誤)。
圖8 等高線錯誤示例圖2
2.2.4 等高線與高程點皆不正確
這種情況比較少,但如果採用以上規則進行判斷,則可以直接得出結論,無論是高程點還是等高線都將被圓圈標記,以示錯誤,需要人工幹預,理清緣由。
2.2.5 特殊情況
(1) 若高程點A 已在圖邊,則向圖邊構造線是無法判斷此高程點是否正確的,這種情況下,需要向另一方向構造線來與等高線相交,再用上述規則進行判斷。
如圖9 所示,若右側為圖框,A 點位於圖邊,向右的構造線已沒有等高線與其相交,這時,則需要向另一方向構造線段或射線來與等高線相交,如圖10所示。
圖9 構造線與等高線相交示例圖1
圖10 構造線與等高線相交示例圖2
(2) 若高程點A 一側只有一根等高線,則僅能判斷|HA -H1| 是否小於等高距,卻不能確定高程點或等高線是否正確,這時ꎬ也需要根據上一條規則向另一方向構造線來與等高線相交,再進行判斷。
(3) 若高程點A 一側只有兩根等高線,如果兩根等高線高程不同,則可用上述規則判斷點是否錯誤或等高線是否錯誤,但如果兩根等高線高程相同,則不能確定高程點或等高線是否正確,這時,也需要向另一方向構造線來與等高線相交,再進行判斷。
(4) 若高程點A 一側相交的第一條線為田埂線或陡坎(坡、崖)線,由于田的另一側地形與此高程點無太大聯繫且同一條坎(坡、崖)的各點高度絕大部分都不相同,因此無法判斷,需要向另一方向構造線來與等高線相交,再進行判斷, 因本程序的主要功能是查找高程點與相臨等高線的錯誤,如若點的各個方向的第一條交線都為田埂線或陡坎(坡、崖)線(如高程點在梯田中間),則不再對此點判斷。
3、編程實現
3.1 編程環境配置
作業系統: Microsoft Windows 10 中文旗艦版64位作業系統,硬體開發環境:聯想筆記本昭陽E49A。
軟體開發環境:Microsoft Visual Studio.NET 2008+ObjectARX 2010。
軟體運行環境:AutoCAD 2010。
3.2 編程核心算法
選擇出數字地形圖中的田埂線和陡坎(坡、崖)線及等高線,構建選擇集,遍歷數字地形圖中的所有高程點,將高程點逐個向一側構造線與臨近的田埂線或陡坎(坡、崖)線或等高線相交,剔除田埂線和陡坎(坡、崖)線,比較高程點註記與Z 值,高程點註記與鄰近等高線的高程值,以及臨近幾條等高線間的高程值,然後把錯誤的高程點在高程點位置用圓圈標記出來,把錯誤的等高線在等高線的交點處用另一半徑圓圈標記出來,部分核心代碼如下:
4、驗證效果
圖11 所示為查找程序運行的開始界面,此時可在對話框中輸入當前數字地形圖的等高距,其默認值為1 m,使用時可根據實際情況填寫。
圖11 程序運行開始界面
圖12 所示為查找程序運行的結束界面ꎬ點擊確定後即顯示檢查結果。
圖12 程序運行結束確認界面
圖13 所示為程序運行後結果顯示。
圖13 錯誤查找結果
5、結 語
經過以上論述過程可以看出,本文的研究結果是正確的,可以利用前述判斷規則編制的程序來完成數字地形圖中高程點與等高線的錯誤自動查找,據此改正即可提高數字地形圖的質量,可以明顯減輕質檢人員在檢查數字地形圖的高程點與等高線錯誤時的勞動強度,提高工作效率,解決了質檢人員人工查找點線矛盾的難題。
推薦閱讀
一種新型三維雷射掃描隧道測量點雲坐標定位方法的精度評估
ArcGIS 坐標轉換方法及其精度評估
利用GPS 擬合方法代替四等水準的可行性分析
不同空間域七參數選取對坐標系轉換的影響研究
2000 國家大地坐標系轉換常見問題分析
CAD知識匯總,滿滿的乾貨!
CAD,Word,Excel之間的轉換
經典平差軟體【南方平差易2005】 視頻教程
CAD測量坐標轉換教程
CAD測量數據處理教程(一)
CAD測量數據處理教程(二)
【CASS教程】從地形圖上繪製縱橫斷面
測量數據處理--CASS9道路斷面土方計算
CASS9提取坐標的幾種方法
測量數據處理--DTM土方計算的四種方法
地形圖繪製--CASS編碼法
測量數據處理--CASS9道路斷面土方計算
測量數據處理 --CASS 9方格網土方計算
【視頻教程】CASS9坐標轉換計算
- 推 廣