劉哲 劉瀟鵬 吳洪濤
?
基于分形理論的線狀要素的地圖自動綜合算法實現(xiàn)
劉哲 劉瀟鵬 吳洪濤
(安徽理工大學(xué)測繪學(xué)院 安徽淮南 232000)
線狀要素的制圖綜合往往由于數(shù)據(jù)容量過大在選擇比例尺可視化輸出時不能進行清晰圖形表達(dá)。本文基于分形理論中的步距算法,在visual studio中開發(fā)系統(tǒng)窗口平臺,以線狀要素為研究對象,實現(xiàn)對線要素的地圖自動綜合計算,從而以少量控制點清晰表達(dá)出圖形的輪廓特征。該方法較好的保持了地圖的形狀特征和細(xì)節(jié),使化簡的圖形與原始數(shù)據(jù)的圖形在形狀結(jié)構(gòu)特征上基本保持了一致性。
地圖自動綜合 線狀要素 分形 步距法
分形的理念最初提出來,其原義是不規(guī)則的,分?jǐn)?shù)的,支離破碎的物體。人類無時無刻都在接觸幾何學(xué)。在歷史上,科學(xué)技術(shù)的發(fā)展與幾何學(xué)的進步始終是密切相關(guān)的。在生產(chǎn)實踐和科學(xué)研究中,人們用以描述客觀世界的幾何學(xué)是歐幾里德幾何學(xué)以及解析幾何、射影幾何、微分幾何等。但是,自然界大多數(shù)的圖形都是十分復(fù)雜而且不規(guī)則的。例如:海岸線、河川、云團、閃電等等。用傳統(tǒng)的幾何學(xué)研究這一類形體是無能為力的。這時分形概念就應(yīng)運而生了。粗略地說,分形是對沒有特征長度但具有一定意義下的自相似性圖形和結(jié)構(gòu)的總稱[1]。
下面給出“分形”的兩個定義,在物理上易于理解,但不夠精確,也不夠數(shù)學(xué)化[2]。
定義1(Mandelbrot,1986),部分以某種形式與整體相似的形狀叫分形。
定義2(Edgar,1990),分形集合是這樣一種集合,它比傳統(tǒng)幾何學(xué)研究的所有集合還更加不規(guī)則(irregular),無論是放大還是縮小,甚至進一步縮小,這種集合的不規(guī)則性仍然是明顯的。
自相似性是分形的兩大基本性質(zhì)之一。一個系統(tǒng)的自相似性是指某種結(jié)構(gòu)或過程的特征從不同的空間尺度或時間尺度來看都是相似的。另外,在整體與整體之間或部分與部分之間,也會存在自相似性。一般情況下自相似性有比較復(fù)雜的表現(xiàn)形式,而不是局域放大一定倍數(shù)以后簡單地和整體完全重合[3]。
自然界的分形,其自相似性并不是嚴(yán)格的,而是在統(tǒng)計意義下的自相似性,海岸線也是其中一個例子。凡是滿足統(tǒng)計自相似性的分形稱之為無規(guī)分形。另外,還有所謂有規(guī)分形,這類分形,由于它是按一定的數(shù)學(xué)法則呈現(xiàn),因此具有嚴(yán)格的自相似性。
2.1 分形理論在線狀要素制圖綜合中的算法
采用步距法對控制點進行取舍的步驟[4]:
(1)首先給定初始步長d1,并計算線符的第1點P1到第2點P2的距離d12,如果d12大于dl,則在P1與P2之間插入一點P,使P到Pl的距離為d1;如果d12小于d1,則考慮P1與P3的距離是d13,同時舍去P2;當(dāng)d13大于d1時,在點P2與P3之間插入一點P,使P到Pl的距離為d1;當(dāng)d13小于d1,時則再考慮d14,且跳過的P3也將舍去……,進行到線符的最后一個點后,再以P作為Pl(新出發(fā)點)重復(fù)上述過程,即可得出用d1描述線符所用的步數(shù)n1,從而得出
(2)改變步長可得到不同的線長,類似上述過程可分別得出
(2)
以此類推可以通過使用不同步長量取不同長度,可以得到不同數(shù)目的保留點。
步距法是用設(shè)定的步長通過量測線要素的每一個控制點來對控制點進行取舍,下面以線要素前三個控制點p1、p2、p3為例,構(gòu)建算法流程圖見圖1:
2.2 基于分形理論的線狀要素綜合系統(tǒng)的設(shè)計
2.2.1 系統(tǒng)設(shè)計流程
系統(tǒng)設(shè)計的處理流程主要包括以下幾個方面:
(1)根據(jù)系統(tǒng)建設(shè)的要求、系統(tǒng)功能的實現(xiàn)安裝相應(yīng)的軟件。本系統(tǒng)需要安裝:ArcGIS9.3、ArcEngine9.3、Visual Studio 2008。
(2)在Visual Studio 2008平臺上主要使用MapControl、PageLayoutControl 、ToolbarControl、TOCControl等控件建立起基于分形理論的制圖綜合系統(tǒng)框架。
(3)在該系統(tǒng)基本框架的基礎(chǔ)上,設(shè)計出自己想要的功能模塊:獲取坐標(biāo)、分形演示、點線轉(zhuǎn)換。
系統(tǒng)的基本設(shè)計流程如圖2所示:
2.2.2 系統(tǒng)開發(fā)技術(shù)
開發(fā)語言:C#;開發(fā)環(huán)境:ArcEngine9.3、Visual Studio 2008;開發(fā)技術(shù):VisualStudio上的窗口設(shè)計以及功能的代碼實現(xiàn)。
2.2.3 系統(tǒng)開發(fā)環(huán)境的搭建
(1)安裝軟件
本系統(tǒng)的開發(fā)需要安裝ArcEngine9.3、Visual Studio 2008、ArcGIS9.3。
(2)GUI設(shè)計
在Microsoft Visual Studio 2008中新建一個Visual C#下的Windows 窗口,命名為基于分形理論的制圖綜合系統(tǒng),主要使用ArcEngine9.3下的MapControl 、PageLayoutControl 、ToolbarControl、TOCControl控件以及選擇漫游、縮放、比例尺等基本控件構(gòu)建系統(tǒng)的基本界面,如圖3所示:
2.2.4 系統(tǒng)功能設(shè)計與實現(xiàn)
本系統(tǒng)包括五個功能模塊,核心部分是輸出坐標(biāo)、分形演示、點轉(zhuǎn)化線。
(1)文件:本菜單主要實現(xiàn)系統(tǒng)的添加數(shù)據(jù)、保存、退出三個基本功能;
GIS基本操作功能:包括數(shù)據(jù)添加、漫游、縮放、比例尺、保存等地圖基本操作功能;
(2)輸出坐標(biāo):實現(xiàn)輸入原始線要素獲取點坐標(biāo)的txt文件;
(3)分形演示:該功能主要實現(xiàn)了步距法,對原要素的控制點進行取舍,將保留點的坐標(biāo)txt文件輸出保存并計算不同步長度量后線要素的長度;
(4)點轉(zhuǎn)為線:實現(xiàn)了將保留點轉(zhuǎn)化為線,并輸出保留為shapefile文件。
2.2.5 應(yīng)用實例
(1)數(shù)據(jù)準(zhǔn)備
所用數(shù)據(jù)為具有490個控制點的長江部分?jǐn)?shù)字化曲線-river.shp。
(2)輸出坐標(biāo)
將river.shp加載到本系統(tǒng),通過輸出點坐標(biāo)窗口提取該線狀要素的所有點控制點坐標(biāo),并輸出保存為txt文件,點坐標(biāo)作為分形計算(步距算法)的所用數(shù)據(jù),如圖4所示。圖5是截取的部分點坐標(biāo)。
(3)分形演示
將上述所得的點坐標(biāo)導(dǎo)入分形計算窗口作為分形計算(步距算法)的操作數(shù)據(jù),設(shè)定好步長d(以d=0.000045為例)和保留點的保存路徑,點擊分形計算,就能得出線要素分形后的長度和保留點的txt文件。如圖6所示。
(4)點轉(zhuǎn)化為線
將保留點的txt文件導(dǎo)入,然后設(shè)置好生成新要素的保存路徑,點擊生成shp就能生成保留點的shapefile文件。如圖7所示。
(5) 取得成果
步距法可以刪除線要素不符合條件的部分細(xì)節(jié),完成圖形的自動綜合。利用本系統(tǒng)輸入十個不同步長d得到表1,其中十個線要素長度L都保持在1.5km左右,步長d選擇的越小得到的控制點越多。以d=0.000045和d=0.000065為例,當(dāng)d=0.000045時分形后線要素長度L=1.504215km,保留點個數(shù)為108,舍去了382個控制點。我們將d=0.000045時線狀要素化簡后的新圖層與原始圖層相比較,可得到兩者在不同比例尺下輪廓結(jié)構(gòu)的變化。如圖8-1和圖8-2比較所示可發(fā)現(xiàn)兩者輪廓結(jié)構(gòu)上的變化,仔細(xì)觀察圖8-2局部放大圖,很容易看出其與原圖在形態(tài)結(jié)構(gòu)上保持了一定的相似性。
當(dāng)d=0.000065時如圖8-3所示,線要素化簡后的新圖層與原圖的相似性沒有d=0.000045時保持的好。顯然,步長選擇的越小,兩者的在不同比例尺下圖層輪廓結(jié)構(gòu)的相似性越大。
表1:10個步長所得的保留點
3.1 主要結(jié)論
(1)在研究線狀要素制圖綜合的整個算法設(shè)計過程中,可以說是在理解線狀要素統(tǒng)計性分維數(shù)定義的基礎(chǔ)上而采取的步距法,實現(xiàn)它并不算困難。本文用編程語言實現(xiàn)步距法,運用這種分形算法可以實現(xiàn)對線狀要素的自動綜合,關(guān)鍵是刪除那些不重要的細(xì)節(jié)。表1為分別取得十個不同步長d所得的保留點。從表1可以看出選取的d越小,保留的控制點就越多,與原圖的相似性就越強,但是曲線的長度都是保持在1.5km左右。
(2)在對步長d的選取過程中,發(fā)現(xiàn)必須選取較小的步長才能符合線要素的標(biāo)度區(qū)間。因此要想能夠合適、有效地保持線符總體應(yīng)有的形態(tài)結(jié)構(gòu)特征,必須保留一定數(shù)量的控制點,這就需要取在標(biāo)度區(qū)間內(nèi)的較小步長來量測,即對步長的選取范圍有一定的要求??傊撓到y(tǒng)可以減少線要素控制點從而以少量數(shù)據(jù)表示主要的目標(biāo)實體,使圖層綜合前后保持了圖層基本的自相似性。
3.2 研究展望
(1)在研究過程中也發(fā)現(xiàn)研究的步距法有缺陷之處,在不同步長量測長度時并未考慮到線段特征點的取舍問題。要想保持自相似性以及轉(zhuǎn)換比例尺前后的圖像局部與整體都達(dá)到最大的相似,該方法只考慮到了步長改變對控制點的取舍,并未顧及到特征處控制點的保留——特征點的取舍問題,例如河流線的拐點的取舍問題沒有考慮進去,因此會造成一定的變形或失真。此外,在綜合過程中所用步長的選取在很大程度上是人為、主觀性的,人機交互的,也會造成一定的誤差。通過參閱多篇文獻及數(shù)學(xué)方法的研究,覺得可采取曲率的方法先得到特征點,在保留特征點的基礎(chǔ)上進行步長法量取取舍控制點,將會更好的的保留局部的相似性。曲率已經(jīng)在很多領(lǐng)域用來表示線狀特征,它具有旋轉(zhuǎn)不變性和平移不變性的特征,而且相當(dāng)穩(wěn)定,與坐標(biāo)系無關(guān)。通過曲率可以清楚的描述彎曲特征及方向變化,同時還能描述曲線的蜿蜒性,因此通過曲率確定曲線的形態(tài)特征。由于本人水平有限,該方法未能實現(xiàn),以后有待繼續(xù)研究。
(2)總體來說,基于分形理論的線狀地物要素自動綜合算法是一種高度自動化的地圖自動綜合算法,在保證圖形結(jié)構(gòu)特征的前提下,極大的減少了人為因素的干預(yù)。在今后的工作中,還要針對具有保留節(jié)點特征的圖形化簡算法進行更多的深入研究。
[1] 吳兵,葛昭攀.分形理論在地理信息科學(xué)研究中的應(yīng)用[J].地理學(xué)與國土研究,2002,18(3):24-26.
[2] 周江,印萍,程蕩敵等.基于GIS和分形理論研究的海岸線圖像和分維以及長度[J].海洋地質(zhì)與第四紀(jì)地質(zhì),2008,28(4):65-77.
[3] 姜志強.分形理論應(yīng)用研究若干問題及現(xiàn)狀與前景分析[J].吉林大學(xué)學(xué)報,2004,22(1):57-61.
[4] 何宗宜,阮依香,尹為利等.基于分形理論的水系要素制圖綜合研究[J].武漢大學(xué)學(xué)報,2002,27(4):427-431.