利用AutoCAD二次開發實現地形圖高程點與等高線錯誤自動查找

2021-02-13 勘測聯合網

來源:《測繪通報》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坐標轉換計算

-    推  廣    

相關焦點

  • 等高線地形圖剖面圖的繪製
    等高線地形圖剖面圖的繪製及剖面線的判斷等高線地形圖剖面圖的繪製方法是學生必須掌握的基本方法,在考題中常以做某條線的剖面圖
  • 【一輪專題】等高線地形圖的判讀
    2.登錄下面網頁,去學科網下載:http://www.zxxk.com/user/44737528/等高線地形圖的判讀要點精講等高線地形圖是用等高線來描述某地區地形起伏的地圖,作為一種基礎的、重要的地圖類型,在高考考查的等值線圖中一直佔有重要地位。
  • 等高線地形圖剖面圖的繪製及剖面線的判斷
    2.在等高線地形圖上畫出剖面方向線AB,按AB的長度繪一條水平線作為剖面基線(若剖面圖與地形圖的水平比例尺相同,則圖1、圖2兩圖中的AB線長度相等),並確定基線所代表的高程。基線高程一般略低於圖上最低高程。3.作基線的平行線。平行線的間隔按垂直比例尺和等高距計算。
  • 快速處理地形數據,總圖中高程點等高線的識別
    工業總圖地形模塊,可快速識別、定義自然等高線,外部地形數據文件自動導入,利用自然標高數據自動生成曲面、三維地形模型,繪製任意地形斷面圖。 曲面創建後,需要進行地形當中的高程點和等高線進行識別,下面看如何識別高程點、等高線。 一、高程點識別 1)高程點屬性 高程點識別,首先看一下地形當中的高程點的屬性。是文本屬性並且他有代表高程位置的一個符號。
  • 如何利用南方CASS製作地形圖
    製作地形圖好了,我們做好了準備工作以後,就可以開始作圖了。1.將野外測好的點從手薄裡導出來,要後綴為.dat格式的記事本,具體導出的內容可以根據自己的實際需要自定義導出,有些野外錯誤的點也可以在Excel中進行修改。
  • 如何利用地形圖判斷光伏場址可行性
    大比例尺地形圖指1∶500、1:1000、1:2000、1:5000;中比例尺地形圖指1:1萬、1:2.5萬、1:5萬、1:10萬;小比例尺地形圖指1:25萬、1:50萬、1:100萬。在項目前期階段,我們常用的比例地形圖是1:1萬;1:5000,在項目實施階段,我們經常用到1:500;1:1000;1:2000。6、等高線:地形圖上高程相等的相鄰各點所連成的閉合曲線。
  • 高中地理等高線地形圖中的幾個關注點,學霸們都注意到了
    如圖中甲點海拔為1500m,乙點海拔為500m。相對高度:一個地點高出另一個地點的垂直距離。如圖中甲與乙的相對高度是1000m。2.在等高線地形圖中,地形坡度的大小隻與等高線的疏密有關嗎?提示 在等高線地形圖中,地形坡度的大小取決於等高距、比例尺的大小和等高線分布的疏密等因素。
  • 【專題突破】等高線地形圖的判讀技巧
    2.等高(深)線等高線是地面上高程相等的各有關相鄰點所聯成的封閉曲線,高程都是整數(整米、整分米)。用等高線在地形圖上表示地貌,不僅能正確反映地面的高低起伏、山脈走向、山體形狀、坡度大小和山谷寬窄深淺等,而且能清楚顯示一定地區的山勢總貌。
  • ||基於ArcGIS的高程值自動修複方法的探討
    ,藉助ESRI二次開發組件ArcObject所提供的空間分析和數據操作接口和函數,採用C#語言實現了對於 ArcGIS格式入庫數據的高程點高程值的自動檢查和修改,並在此基礎上提出了高程值修復的改進算法。
  • 【重磅整理】高中地理等高線地形圖中的幾個關注點,學霸們都注意到了
    如圖中甲點海拔為1500m,乙點海拔為500m。 相對高度:一個地點高出另一個地點的垂直距離。如圖中甲與乙的相對高度是1000m。 2.在等高線地形圖中,地形坡度的大小隻與等高線的疏密有關嗎? 提示 在等高線地形圖中,地形坡度的大小取決於等高距、比例尺的大小和等高線分布的疏密等因素。
  • 中考地理:等高線地形圖的判讀,是初中的重難點考點!建議收藏
    等高線指的是地形圖上高程相等的相鄰各點所連成的閉合曲線。關於這個知識點是學生必須要掌握的內容,而且,這部分知識還有一個口訣是我們需要掌握:同線等高,同圖等距。密陡疏緩,凸低為脊,重疊為崖,大小小大,大大小小,肚大口小。
  • 中考地理複習:等高線地形圖的判讀,專題訓練,拿去好好複習
    等高線地形圖是初中七年級地理學習的重點和難點,並且是考試要點,初中七年級的學生剛開始接觸地理,缺乏空間想像力,所以學習這部分知識還是有難度的。我們所見的山峰,儘管千姿百態,但不外乎是由山頂、山脊、山谷、斜坡、鞍部等基本心態組成,了解這些基本形態及它們的表示方法,是識別等高線地形圖的關鍵。等高線是地面上高程相等的各有關相鄰點所聯成的封閉曲線,高程都是整數(整米、整分米)。
  • 解析等高線地形圖和地形剖面圖
    ,而頂部明顯稀疏——高原判地形部位等高線閉合,數值從中心向四周逐漸降低——山頂;反之,數值從中心向四周逐漸升高——盆地或窪地;兩個山頂中間的低地——鞍部;等高線彎曲部分向低處凸出——山脊;等高線彎曲部分向高處凸出——山谷;等高線交會處——陡崖判海拔和相對高度根據等高線的特徵即標高為海拔、同線等高、等高距全圖一致等,判斷該地形區的最大海拔
  • 如何利用Google Map「自製」CAD等高線?——康石石藝術留學問答錄No.59
    「如何自動獲得場地的等高線圖」一直是很多同學比較困惑的問題,尤其是學習景觀設計的同學,因為景觀設計是一門與土地特質結合最為緊密的學科,經常會涉及到場地分析以及對於場地高程的重新設計
  • 科普| 測繪等高線詳解,你想知道的都有
    等高線的定義等高線是地面上高程相同的相鄰點所連的一條閉合曲線。水面靜止的湖泊和池塘的水邊線,實際上就是一條閉合的等高線。如圖所示,設有一座位於平靜湖水中的小山頭,山頂被湖水恰好淹沒時的水面高程為100m,然後水位下降5m,露出山頭,此時水面與山坡就有一條交線,面且是閉合曲線,曲線上各點的高程是相等的,這就是高程為5m的等高線,隨後水位又下降5m,山坡與水面又有一條交線,這就是高程為90m的等高線。依此類推,水位每降落5m,水面就與地表面相交留下一條等高線,從而得到一組高差為5m的等高線。
  • 等高線地形圖判讀技巧
    等高線地形圖判讀是初中地理教學的重難點之一。
  • 知識解析等高線地形圖的判讀
    等高線地形圖判讀的九點突破等高線地形圖的判讀一直是高考地理的重難點,本文旨在通過總結相關題型作答技巧,為同學們提供更系統的解題思維
  • 等高線地形圖的特點、判讀方法及應用
    高中地理的等高線地形圖,它可以充分考查學生的空間概念,空間想像以及分析計算能力,歷年高考都非常重視對等高線地形圖的考查
  • 2 等高線地形圖和地形剖面圖
    【基礎回顧】 一、等高線的基本特徵 二、地形剖面圖的繪製與判讀 1.繪製步驟    (1)確定剖面線:在等高線圖上畫出一條剖面線(可能為已知,如右圖中的AB)  (2)建坐標:縱坐標表示高度,橫坐標表示水平距離  (3)描點:將剖面線與等高線的所有交點(或僅描關鍵點,如最高點、最低點)按其水平距離和高程轉繪到坐標圖中