• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于南方CASS的等高線內(nèi)插功能的改進(jìn)*1

      2016-07-16 03:03:43韋相任
      地礦測(cè)繪 2016年2期
      關(guān)鍵詞:矢量化輔助線等高線

      韋相任

      (廣東有色金屬地質(zhì)局九三三隊(duì),廣東 肇慶 526060)

      ?

      基于南方CASS的等高線內(nèi)插功能的改進(jìn)*1

      韋相任

      (廣東有色金屬地質(zhì)局九三三隊(duì),廣東 肇慶526060)

      摘要:在進(jìn)行數(shù)字化地形測(cè)量或紙質(zhì)地形圖矢量化成圖時(shí),利用南方CASS的等高線內(nèi)插功能繪制的等高線存在震蕩波、內(nèi)插失效等問題,這往往需要大量的人工修改才能滿足出圖要求。針對(duì)此問題,文章提出了步長(zhǎng)濾波優(yōu)化方法。實(shí)踐證明,該方法能有效解決等高線內(nèi)插不合理問題,且能大大減少等高線手工編輯的工作量,提高工作效率。

      關(guān)鍵詞:地形圖矢量化;等高線內(nèi)插;存在問題;步長(zhǎng)濾波;LISP語言

      0引言

      以AutoCAD應(yīng)用軟件為平臺(tái)的南方CASS,其自帶的柵格圖矢量化功能只需插入柵格圖像并對(duì)圖像坐標(biāo)進(jìn)行校正后就能對(duì)其進(jìn)行矢量化。其等高線內(nèi)插功能能夠快速對(duì)柵格圖片的等高線進(jìn)行矢量化,應(yīng)用起來十分方便,但在實(shí)際應(yīng)用中存在不少問題,如對(duì)較復(fù)雜地形進(jìn)行等高線內(nèi)插時(shí),會(huì)出現(xiàn)震蕩甚至內(nèi)插失效等問題。針對(duì)以上問題,本文對(duì)等高線局部?jī)?nèi)插方法進(jìn)行了探討,提出“步長(zhǎng)濾波法”,并利用LISP語言編程解決了此問題[1-4]。

      1利用CASS內(nèi)插等高線時(shí)存在的問題

      等高線局部?jī)?nèi)插是對(duì)局部等高線的加密,即在兩條等高線之間插入若干條首曲線。實(shí)際操作過程為:先手工矢量化兩條等高線作為內(nèi)插的母線,再內(nèi)插加密首曲線。內(nèi)插結(jié)果要求盡量做到合理,等高線盡量貼近實(shí)際。利用南方CASS軟件進(jìn)行等高線內(nèi)插時(shí),多數(shù)情況下能取得較好的效果,如應(yīng)用于地形變化不大的地方,但對(duì)于一些突變地形內(nèi)插出的等高線會(huì)出現(xiàn)震蕩,嚴(yán)重失真,如圖1所示。這種情況還需手動(dòng)修改,由于曲線節(jié)點(diǎn)較多,手工修改的工程量較大。利用CASS內(nèi)插等高線時(shí),可以通過改變?yōu)V波值的大小來改善所內(nèi)插出的等高線的震蕩問題,但如果濾波太大則會(huì)出現(xiàn)等高線節(jié)點(diǎn)太少,內(nèi)插的等高線不合理,甚至出現(xiàn)首曲線與母線相交的情況,如果濾波值太小,又會(huì)出現(xiàn)等高線震蕩、不夠圓滑等問題(見圖1)。較合理的內(nèi)插結(jié)果應(yīng)該如圖2所示。

      圖1 CASS內(nèi)插的等高線Fig.1 Contour interpolated by CASS

      圖2 合理的等高線內(nèi)插Fig.2 Reasonable interpolation contour

      2等高線內(nèi)插的基本原理與存在問題

      2.1基本原理

      等高線內(nèi)插主要是利用等高線曲線上離散的節(jié)點(diǎn),按照一定方法進(jìn)行輔助線構(gòu)造(見圖3)。在兩條母線之間插值,實(shí)際就是要在這些離散的點(diǎn)間構(gòu)造合理的輔助線,根據(jù)內(nèi)插等高線條數(shù),以一定距離提取輔助線節(jié)點(diǎn)坐標(biāo),然后對(duì)同一條等高線上節(jié)點(diǎn)進(jìn)行連線、擬合,繪制出等高線。

      圖3 等高線節(jié)點(diǎn)構(gòu)造輔助線Fig.3 Auxiliary lines constructed with contour nodes

      如圖3所示,首先取得兩等高線母線1與2的線長(zhǎng),從末點(diǎn)開始按一固定距離遞減取得等高線上的系列節(jié)點(diǎn)坐標(biāo),并保存為plist1和plist2。等高線1與等高線2的起點(diǎn)為a1和b1,并分別記a1、b1為final1、final2,表示最后用過的點(diǎn)。final1和final2的坐標(biāo)分別為(X1,Y1,Z1)和(X2,Y2,Z2),連線a1、b1,此時(shí)輔助線a1b1兩端點(diǎn)坐標(biāo)分別為(X1,Y1,Z1)和(X2,Y2,Z2),那么第m條內(nèi)插等高線對(duì)應(yīng)輔助線等分點(diǎn)的坐標(biāo)為:

      (1)

      式中:num表示等高線內(nèi)插總根數(shù)。

      根據(jù)式(1)內(nèi)插得到第一個(gè)點(diǎn),然后取得等高線1上第二個(gè)節(jié)點(diǎn)a2和等高線2上的第二個(gè)節(jié)點(diǎn)b2。a1、a2和b1連成∠a1a2b1,b1、b2和a1連成∠b1b2a1。用余弦定理,求得∠a1a2b1和∠b1b2a1,比較這兩個(gè)角大小,如果∠a1a2b1>∠b1b2a1,取a2點(diǎn)并記a2為final1,并連final1和final2;反之取b2點(diǎn),記為final2,同樣連final1和final2。再按式(1)內(nèi)插出節(jié)點(diǎn),并用多段線與前一個(gè)點(diǎn)連線,如此反復(fù)直到取得其中一條等高線母線最后一個(gè)點(diǎn)時(shí)停止。這時(shí)再把兩條等高線末點(diǎn)按始點(diǎn)方法插出最后點(diǎn),并與之前點(diǎn)相連線,即以多段線的形式繪出第一條內(nèi)插等高線,最后將多段線賦予等高線首曲線屬性。再循環(huán)將剩下等高線繪完。

      2.2存在問題

      2.2.1節(jié)點(diǎn)過多造成內(nèi)插出的等高線形成震蕩

      若等高線母線節(jié)點(diǎn)數(shù)量過多,會(huì)導(dǎo)致輔助線過多,造成最終繪制出的等高線形成震蕩,如圖4所示。

      圖4 母線節(jié)點(diǎn)過多內(nèi)插效果圖Fig.4 The effect chart of more interpolation nodes in busbar

      2.2.2節(jié)點(diǎn)過少造成內(nèi)插出的等高線與母線相交或無法內(nèi)插

      若等高線母線節(jié)點(diǎn)過少,會(huì)導(dǎo)致構(gòu)造出的輔助線太少,造成內(nèi)插出的等高線走向出現(xiàn)錯(cuò)誤,并與母線相交,如果不與母線相交則又無法內(nèi)插,如圖5所示。

      圖5 母線節(jié)點(diǎn)過少內(nèi)插效果Fig.5 The effect chart of less interpolation nodes in busbar

      3步長(zhǎng)濾波優(yōu)化方法

      步長(zhǎng)濾波是根據(jù)已經(jīng)繪制好的等高線母線,按小步長(zhǎng)提取適當(dāng)密度母線節(jié)點(diǎn),再按2.1節(jié)的方法內(nèi)插出帶有較多小波的首曲線;在此基礎(chǔ)上將內(nèi)插的首曲線按一定步長(zhǎng)提取等高線節(jié)點(diǎn),利用提取的節(jié)點(diǎn)重新繪制等高線,并將原內(nèi)插線刪除,這樣就能有效解決等高線震蕩問題,使繪制的等高線更合理。具體方法如下。

      3.1母線重新構(gòu)點(diǎn)

      母線重新構(gòu)點(diǎn)就是不需要原等高線節(jié)點(diǎn),而是在等高線母線上按一定距離步長(zhǎng)提取節(jié)點(diǎn),距離適當(dāng)縮短,使提取的節(jié)點(diǎn)適當(dāng)密些。

      3.2首曲線重新構(gòu)點(diǎn)繪線

      按最大角原理[2]內(nèi)插出首曲線,此時(shí)首曲線仍可能存在震蕩,可不必理會(huì),但要將內(nèi)插出的首曲線進(jìn)行n等分,重新提取點(diǎn)并繪線,也就是在內(nèi)插出的等高線基礎(chǔ)上,根據(jù)一定距離提取節(jié)點(diǎn)并重新繪線,這樣既能保證等高線走向正確又能有效刪除等高線的不合理節(jié)點(diǎn),達(dá)到濾波效果。與CASS根據(jù)濾波閥值減少節(jié)點(diǎn)方法相比,該方法內(nèi)插出的等高線走向更加合理。

      3.3判斷方向一致性

      在手工繪制等高線母線時(shí),畫線的起點(diǎn)方向情況可能不同,提取節(jié)點(diǎn)時(shí),節(jié)點(diǎn)坐標(biāo)前后順序可能不一致。這就要求對(duì)兩條等高線進(jìn)行判斷,并將起點(diǎn)方向不一致的一條等高線的節(jié)點(diǎn)坐標(biāo)先后順序倒置。本文使用交點(diǎn)法判斷兩條等高線是否相交,具體方法為:分別取兩條等高線的端點(diǎn)坐標(biāo),將兩端點(diǎn)坐標(biāo)的起點(diǎn)與起點(diǎn),末點(diǎn)與末點(diǎn)分別相連,判斷它們是否相交,如果相交則起點(diǎn)方向不一致,否則一致。

      3.4重復(fù)濾波

      如果對(duì)內(nèi)插出的首曲線不太滿意,可多次按一定距離提取內(nèi)插線節(jié)點(diǎn),重新繪線以使曲線更加圓滑。

      以上優(yōu)化方法可以有效解決2.2節(jié)中提到的問題。

      4程序設(shè)計(jì)

      4.1程序設(shè)計(jì)流程

      程序設(shè)計(jì)流程,如圖6所示。

      圖6 程序設(shè)計(jì)流程Fig.6 Flow of program degin  注:圖6中,num為內(nèi)插的等高線數(shù)量;ql為提取節(jié)點(diǎn)的步長(zhǎng);n1和n2分別為提取的兩條等高線的節(jié)點(diǎn)數(shù)量;Final1和Final2分別為用過的最后節(jié)點(diǎn)。

      4.2具體編程過程

      根據(jù)等高線內(nèi)插最大角原則[2]構(gòu)造輔助線,并利用余弦定理計(jì)算角度,再判斷角的大小,取最大角度輔助線兩端點(diǎn)坐標(biāo)并按式(1)插出內(nèi)插線節(jié)點(diǎn),按步長(zhǎng)提取插出線節(jié)點(diǎn)重新繪線,具體實(shí)現(xiàn)代碼如下:

      余弦定理計(jì)算角度

      (setq w1(+(expt(-x11 x2)2)(expt(-y11 y2)2))w2(+(expt(-x11 x1)2)(expt(-y11 y1)2))w3(+(expt(-x1 x2)2)(expt(-y1 y2)2))w4(*(* 2(sqrt w1))(sqrtw2))w5(/(-(+ w1 w2)w3)w4)));

      (setq v1(+(expt(-x22 x2)2)(expt(-y22 y2)2))v2(+(expt(-x22 x1)2)(expt(-y22 y1)2));

      (Setq v3(+(expt(-x1 x2)2)(expt(-y1 y2)2))v4(*(* 2(sqrt v1))(sqrt v2))v5(/(-(+ v1 v2)v3)v4)));

      判斷角度的大小,并取較大角輔助線另一端點(diǎn)坐標(biāo)。

      (if(>= w5 v5)

      (setq final2 final22 i(-i 1))

      (setq final1 final11 j(-j 1)));;; 結(jié)束if

      按距離提取插入線節(jié)點(diǎn)并重新畫線。

      (entdel dline);;刪除原插出線

      (setq ndl(length subplist));;;取得曲線長(zhǎng)度

      (vl-cmdf "pline");

      (while(> ndl 0)

      (vl-cmdf(nth(-ndl 1)subplist))

      (setq ndl(-ndl 1))

      (if(= ndl 0)(vl-cmdf "")));;;;結(jié)束while

      (setq dlinename(entlast))

      給畫出的多段線賦等高線屬性值。

      (command "change"dlinename """p" "c" "bylayer" "lw" "bylayer" "la" "dgx" "lt" "continuous" "s" 1 "t" 0 "");

      (vl-cmdf "putp" "c" "201101" dline "")

      (vl-cmdf "pedit" dlinename "s" ""));;結(jié)束賦值

      (setvar "osmode"osmod1);;;還原捕捉狀態(tài)

      (command "regen");;刷新。

      4.3內(nèi)插結(jié)果比較

      步長(zhǎng)濾波編程內(nèi)插處理結(jié)果與CASS自帶程序內(nèi)插結(jié)果的

      比較,如圖7(a)、(b)所示。由圖可見,編程內(nèi)插處理取得的效果更好。

      圖7 CASS及優(yōu)化法內(nèi)插結(jié)果比較Fig.7 The comparison of interpolation results obtained between using CASS and optimization method

      5結(jié)束語

      等高線內(nèi)插的關(guān)鍵是構(gòu)造合理的輔助線以及正確的慮波方法,而輔助線的構(gòu)造是由等高線母線上的節(jié)點(diǎn)決定的。合理的等高線內(nèi)插,需要合理提取等高線母線節(jié)點(diǎn),使構(gòu)得的輔助線在提取節(jié)點(diǎn)并繪制內(nèi)插線時(shí),線的走向與母線一致,并且位置合理。步長(zhǎng)濾波優(yōu)化法,是以內(nèi)插出的等高線為基礎(chǔ),按一定步長(zhǎng)提取節(jié)點(diǎn),并根據(jù)提取的節(jié)點(diǎn)重新繪制新的內(nèi)插線,這樣能有效解決等高線震蕩問題。本文通過LISP語言編程實(shí)現(xiàn)了等高線內(nèi)插的自動(dòng)化,不僅大大減少了等高線手工修改的麻煩,同時(shí)也提高了等高線繪制的準(zhǔn)確性和精確度。

      [參考文獻(xiàn)]

      [1]胡衛(wèi)明,吳兵,凌海濱.地圖等高線自動(dòng)內(nèi)插算法[ J].計(jì)算機(jī)學(xué)報(bào),2000,23(8):847~ 851.

      [2]李洪玉,唐詩(shī)華,李景文,李永香.在CAD中實(shí)現(xiàn)等高線自動(dòng)內(nèi)插的一種方法[J].海洋測(cè)繪,2004,24(3):52-53.

      [3]張寶雷,宋孟強(qiáng),周萬村.棕版地形圖上等高線的自動(dòng)提取和批量賦值[J].測(cè)繪科學(xué),2006,31(4)::81-83.

      [4]王玉琨,任衛(wèi)紅,矛艷,等.CAD二次開發(fā)技術(shù)及其工程應(yīng)用[M].1版.北京:清華大學(xué)出版社,2008.

      Improvement of Contour Interpolation Function Based on SOUTH CASS

      WEI Xiang-ren

      (933TeamofGeologyBureauforNonferrousMetalsofGuangdongProvince,ZhaoqingGuangdong526060,China)

      Abstract:Using the contour interpolation function in SOUTH CASS software to draw contour, there are some problems such as shock wave, interpolation failure and so on when carried out digital topographic survey or vectorization of existing papery maps, which often need to make a lot of artificial modification to meet the requirements of specification of topographic mapping. To solve these problems,the optimization method of step filtering was presented in this paper. Practice has proved that this method can effectively solve the problems of contour interpolation,and also can greatly reduce the workload of manual editing contour and improve work efficiency.

      Key words:vectorization of topographic map;contour interpolation; existing problems; step filtering; LISP language

      * 收稿日期:2016-03-08

      中圖分類號(hào):P 208; TP 391.4

      文獻(xiàn)標(biāo)識(shí)碼:B

      文章編號(hào):1007-9394(2016)02-0035-04

      作者簡(jiǎn)介:韋相任(1990~),男(壯族),廣西桂平人,學(xué)士,助理工程師,現(xiàn)主要從事工程測(cè)量以及變形監(jiān)測(cè)方面的工作。

      地礦測(cè)繪2016,32(2):35~38

      CN 53-1124/TDISSN 1007-9394

      Surveying and Mapping of Geology and Mineral Resources

      猜你喜歡
      矢量化輔助線等高線
      怎樣添輔助線證全等
      兩種重要的輔助線
      淺談?shì)o助線在數(shù)控切割中的應(yīng)用
      地形圖的閱讀
      一種基于Fréchet距離的斷裂等高線內(nèi)插算法
      “等高線地形圖的判讀”專題測(cè)試
      地理教育(2016年10期)2016-11-09 00:32:53
      交互式矢量化技術(shù)在水文站網(wǎng)分布圖編繪中的應(yīng)用
      科技視界(2016年10期)2016-04-26 21:12:24
      基于VP Studio和CASS的柵格地形圖矢量化方法
      遙感圖像多尺度分割算法與矢量化算法的集成
      Have Fun with Math
      武定县| 台南县| 康平县| 靖西县| 铜陵市| 普洱| 萍乡市| 宁城县| 南部县| 翼城县| 三亚市| 客服| 将乐县| 元氏县| 德兴市| 景泰县| 孟津县| 中西区| 沛县| 安阳县| 红原县| 高雄县| 西贡区| 阿鲁科尔沁旗| 江永县| 兴义市| 阿图什市| 鄂尔多斯市| 津市市| 云阳县| 定安县| 九寨沟县| 大关县| 华宁县| 洛扎县| 修文县| 甘孜县| 大理市| 新兴县| 晋州市| 新野县|