周 江,李崇巍,宋宜全
(天津師范大學(xué)城市與環(huán)境科學(xué)學(xué)院,天津300387)
隨著地理信息系統(tǒng)(GIS)技術(shù)的不斷發(fā)展和成熟,組件式GIS已成為GIS軟件技術(shù)的主流趨勢之一,廣泛應(yīng)用于城市規(guī)劃、資源利用、環(huán)境監(jiān)測和林業(yè)管理等諸多方面[1-5].組件式GIS是將GIS模塊劃分為多個控件,與Visual Basic、Visual C++等程序開發(fā)語言無縫鏈接,能夠快速提高軟件開發(fā)效率和質(zhì)量.SuperMap Objects是北京超圖地理信息技術(shù)有限公司基于ActiveX/COM技術(shù)開發(fā)的大型、全組件式GIS開發(fā)平臺,具有易于開發(fā)、獨立分發(fā)運行、高度可伸縮性、內(nèi)嵌大型空間數(shù)據(jù)庫引擎以及面向?qū)ο笈c面向拓?fù)湎嘟Y(jié)合等特點,成為眾多系統(tǒng)開發(fā)人員的重要選擇[6-9].
自1967年被美國科學(xué)家Mandelbrot提出后[10],分形理論在很多學(xué)科領(lǐng)域中得到應(yīng)用[11-13].近年來,該理論被廣泛應(yīng)用于研究中國海岸線性質(zhì)[14-18],其中部分學(xué)者應(yīng)用GIS技術(shù)對海岸線實現(xiàn)分形圖像模擬和分維計算.海岸線性質(zhì)研究包括形態(tài)模擬、分維以及長度等方面,目前大多研究只側(cè)重其中之一進(jìn)行分析,尚顯不夠全面和深入.因此,開發(fā)基于組件GIS的分形計算系統(tǒng)可以高效、準(zhǔn)確地實現(xiàn)對海岸線分形性質(zhì)進(jìn)行全面系統(tǒng)的分析.
本研究簡要介紹了分形插值方法,并對海岸線分形計算系統(tǒng)集成方式、數(shù)據(jù)組織和數(shù)據(jù)庫設(shè)計以及結(jié)構(gòu)和功能設(shè)計進(jìn)行探討,選擇Visual Basic作為開發(fā)環(huán)境,通過對SuperMap Objects組件進(jìn)行二次開發(fā)實現(xiàn)海岸線分形計算系統(tǒng),近而實現(xiàn)圖形圖像輸入輸出、空間查詢和分析以及海岸線分形圖像模擬、分維和長度計算等功能,并通過實例驗證系統(tǒng)的可靠性和實用性.
基于Mandelbrot早期提出的一種對統(tǒng)計性分形維數(shù)的估計公式[10],測量海岸線分維的常用計算方法為:
式(1)中:L為海岸線分形長度;r為測量標(biāo)尺長度;D為維數(shù);N為待定常數(shù).該計算方法的不足之處在于計算效率低,依賴于度量選取,導(dǎo)致精度也難于保證[14].
Barnsley基于迭代函數(shù)理論提出分形插值函數(shù),并給出求解分形插值函數(shù)以及該函數(shù)圖像維數(shù)的算法[19-20].該方法可以精確計算仿射性分形的分形維數(shù),不依賴度量尺度,計算精度相對較高,非常適用于海岸線圖像擬合和分維計算.
不同比例尺地圖上海岸線分形長度計算遵循以下關(guān)系[21]:
式(2)中:M1和M2為地圖比例尺,LM1和LM2為相應(yīng)分形的曲線長度,D為分形曲線的分維.
SuperMap Objects主要由 SuperMap.ocx、Super-Layout.ocx、SuperWorkspManage.ocx、SuperLegend.ocx、SuperGridView.ocx、SmxLockInfo.ocx、SuperTopo.ocx、Super3D.ocx和SmxAssistant.dll等多個組件庫組成.SuperMap Objects具有強大的圖形顯示、瀏覽、編輯和可視化功能,提供地理數(shù)據(jù)的空間查詢和分析方法,支持多種常用開發(fā)語言,支持多種數(shù)據(jù)格式和存儲管理海量空間數(shù)據(jù).系統(tǒng)以可視化開發(fā)工具VB為開發(fā)平臺,將SuperMapObjects組件與分形計算模型結(jié)合,應(yīng)用SuperMap Objects組件實現(xiàn)地圖的空間數(shù)據(jù)管理和分析功能,利用VB程序語言完成分形計算功能.將SuperMap Objects組件、分形計算模型和其他專業(yè)組件嵌入到應(yīng)用程序中實現(xiàn)系統(tǒng)內(nèi)部真正的無縫高效集成,集成方式如圖1所示.
圖1 組件式系統(tǒng)集成Fig.1 System integration of component
SuperMap Objects通過數(shù)據(jù)源和數(shù)據(jù)集存儲空間數(shù)據(jù),1個數(shù)據(jù)源通常包括多個不同類型的數(shù)據(jù)集,而數(shù)據(jù)集主要分為非空間數(shù)據(jù)集、矢量數(shù)據(jù)集和柵格數(shù)據(jù)集三大類.非空間數(shù)據(jù)集屬于純屬性數(shù)據(jù)集,無幾何對象;矢量數(shù)據(jù)集用于存儲點、線、面、文本和三維點等數(shù)據(jù);柵格數(shù)據(jù)集用于存儲影像類和格網(wǎng)等數(shù)據(jù).通常數(shù)據(jù)集可通過地圖窗口顯示為圖層.系統(tǒng)采用SuperMap Objects的SDB數(shù)據(jù)存儲方式,SDB屬于雙文件圖庫結(jié)構(gòu),可以存放多個數(shù)據(jù)集,即將海岸線控制點存儲至點數(shù)據(jù)集,將模擬生成的分形曲線存儲至線數(shù)據(jù)集.
基于國產(chǎn)超圖GIS軟件SuperMap Objects組件開發(fā)平臺,與可視化軟件開發(fā)環(huán)境Visual Basic集成開發(fā)分形計算系統(tǒng),計算系統(tǒng)由4個主要功能模塊組成,包括輸入處理模塊、地圖處理模塊、分形計算模塊和輸出打印模塊,如圖2所示.
圖2 分形計算系統(tǒng)功能結(jié)構(gòu)圖Fig.2 Function structure image of the fractal calculation system
(1)輸入處理模塊主要包括數(shù)據(jù)導(dǎo)入子模塊和圖像轉(zhuǎn)換子模塊.數(shù)據(jù)導(dǎo)入子模塊主要實現(xiàn)海岸線地圖圖像的輸入:掃描已有影像圖后,將其矢量化并存儲;對于已有數(shù)據(jù)文件(如Mapinfo、AutoCad、ArcView和Arc/Info等文件)矢量圖形,通過標(biāo)準(zhǔn)數(shù)據(jù)格式轉(zhuǎn)入轉(zhuǎn)出工具來實現(xiàn)導(dǎo)入.圖像轉(zhuǎn)換子模塊支持各種通用投影方式與不同投影坐標(biāo)系之間的轉(zhuǎn)換,通過影像配準(zhǔn)功能實現(xiàn)輸入圖像的坐標(biāo)轉(zhuǎn)換,使圖形圖像處于真實的地理位置,從而獲得精確的海岸線控制點坐標(biāo).
(2)地圖處理模塊主要包括圖形編輯子模塊和圖文查詢子模塊.圖形編輯子模塊主要實現(xiàn)地圖可視化功能,具有圖形生成、瀏覽、移動、旋轉(zhuǎn)、放大和縮小,圖層添加、刪除、控制顯示以及活動層設(shè)置等功能,可以完成將模擬生成的分形圖與原海岸線地圖進(jìn)行疊加顯示,實現(xiàn)模擬分形圖與原圖像的比較分析.圖文查詢子模塊具有屬性數(shù)據(jù)和空間數(shù)據(jù)的雙向查詢功能,通過鼠標(biāo)選擇地圖中各種圖形元素得到數(shù)據(jù)庫中相應(yīng)的屬性數(shù)據(jù),當(dāng)給定條件后能夠迅速查詢到相應(yīng)的圖形數(shù)據(jù),查詢結(jié)果可以存儲和輸出.
(3)分形計算模塊主要包括圖像模擬子模塊、分維計算子模塊和長度歸算子模塊.圖像模擬子模塊主要通過調(diào)用分形插值函數(shù)計算生成最佳的模擬圖像;分維計算子模塊主要根據(jù)分形插值函數(shù)計算海岸線分維值;長度歸算子模塊根據(jù)式(2)將不同比例尺地圖上海岸線的分形長度歸算出其實際距離.
(4)輸出打印模塊主要包括圖形輸出子模塊和表格輸出子模塊.圖形輸出子模塊可以將模擬生成的圖形圖像分別以矢量和柵格標(biāo)準(zhǔn)格式轉(zhuǎn)出,實現(xiàn)存儲、輸出和打?。欢砀褫敵鲎幽K可以將分維計算值和海岸線長度數(shù)據(jù)等以表格形式存儲、輸出和打印.
基于以上分析,開發(fā)實現(xiàn)的分形計算系統(tǒng)主要界面如圖3所示.
圖3 分形計算系統(tǒng)界面Fig.3 Interface of the fractal calculation system
SuperMap Objects提供數(shù)據(jù)轉(zhuǎn)入轉(zhuǎn)出工具數(shù)據(jù)泵對象(soDataPump)將數(shù)據(jù)文件轉(zhuǎn)換形成統(tǒng)一格式的數(shù)據(jù)文件,形成SuperMap統(tǒng)一管理的數(shù)據(jù)系統(tǒng),顯示為地圖的各圖層文件.以將ArcView的shp文件轉(zhuǎn)入到工作空間為例,部分關(guān)鍵代碼如下:
將海岸線影像圖或矢量圖形文件轉(zhuǎn)入后,可應(yīng)用由SuperMap Objects提供的配準(zhǔn)功能實現(xiàn)其真實的地理坐標(biāo)定位.柵格數(shù)據(jù)集的配準(zhǔn)采用重采樣(Rectify)方法,矢量數(shù)據(jù)集的配準(zhǔn)采用坐標(biāo)轉(zhuǎn)換(Transform)方法.當(dāng)柵格數(shù)據(jù)集objDtRaster、數(shù)據(jù)源objDS和控制點已確定時,可以使用重采樣方法實現(xiàn)柵格數(shù)據(jù)集objDtRaster的線性配準(zhǔn),部分關(guān)鍵代碼如下:
將SuperMap Objects核心組件調(diào)入到VB工具箱后,可極為便利地開發(fā)實現(xiàn)地圖處理功能,其中空間數(shù)據(jù)和屬性數(shù)據(jù)的雙向查詢是地圖處理的主要特色之一.SuperMap Objects的查詢模式可分為圖查屬性和屬性查圖.
(1)圖查屬性:在地圖窗口中選擇空間對象后,激發(fā)SuperMap_GeometrySelected事件,使用soSelection方法,部分關(guān)鍵代碼如下:
(2)屬性查圖:通過對記錄集對象soRecordset進(jìn)行操作,使用soSelection方法,基于SQL查詢方式使?jié)M足查詢條件的空間對象呈高亮顯示,部分關(guān)鍵代碼如下:
分形計算首先針對地圖海岸線選擇控制點,生成數(shù)據(jù)集Datapoints后,對垂直因子di附初始值,使di絕對值之和等于1;然后在分形插值函數(shù)中選擇不同的迭代次數(shù),計算生成相應(yīng)的隨機插值點值和分維值D,結(jié)果可存儲于數(shù)據(jù)庫Point.mdb;最后模擬生成海岸線分形圖像,并對其真實長度進(jìn)行實際歸算,分形計算的界面如圖4所示.
圖4 分形計算界面Fig.4 Interface of the fractal calculation
以1∶50000天津市地圖為例輸入處理后,基于隨機算法和分形計算程序模塊對天津市海岸線進(jìn)行處理,可以快速生成模擬分形圖像,模擬結(jié)果如圖5所示.同時計算出天津市海岸線分維值為1.04,實際長度為179.65km,此結(jié)果與徐進(jìn)勇等[18]得到的天津市2008年海岸線分維值1.06和長度178.81km的結(jié)果比較符合.
圖5 天津市海岸線分形模擬圖像Fig.5 Fractal simulation image of Tianjin coastline
通過對分形插值函數(shù)進(jìn)行簡要介紹,詳細(xì)探討海岸線分形計算系統(tǒng)集成方式、數(shù)據(jù)組織和數(shù)據(jù)庫設(shè)計以及結(jié)構(gòu)和功能設(shè)計,選擇Visual Basic為開發(fā)環(huán)境,結(jié)合SuperMap Objects組件開發(fā)實現(xiàn)分形計算系統(tǒng),近而實現(xiàn)圖形圖像輸入輸出、空間查詢分析以及海岸線分形圖像模擬、分維和長度計算等功能.經(jīng)過對天津市海岸線分形計算的實際驗證證明,系統(tǒng)運算效率較高,計算簡便,可以精確且快速地得到海岸線的模擬圖像、分維值和長度,為海岸線分形性質(zhì)的研究提供幫助.
[1] 白亞茹,陸鑫.基于ArcObjects組件的GIS應(yīng)用軟件開發(fā)[J].計算機工程,2009,35(14):66-68.
[2]況代智.基于MO的城市公交查詢系統(tǒng)的設(shè)計與開發(fā)[J].測繪科學(xué),2009,34(4):210-211.
[3] 張仁貢,程夏蕾.全國水能資源區(qū)劃評價決策支持系統(tǒng)的設(shè)計與應(yīng)用[J].水力發(fā)電學(xué)報,2013,32(5):70-76.
[4] 王爽,王晴,斯藹,等.基于GIS的天津市突發(fā)性地質(zhì)災(zāi)害預(yù)警預(yù)報系統(tǒng)設(shè)計與實現(xiàn)[J].地質(zhì)調(diào)查與研究,2012,35(3):206-209.
[5] 王佳,易正暉,馮仲科.利用組件GIS和構(gòu)件技術(shù)建立林業(yè)GIS系統(tǒng)[J].測繪科學(xué),2011,36(5):141-143.
[6] 侯春華,李富平.基于SuperMap平臺組件式開發(fā)尾礦資源管理系統(tǒng)[J].礦產(chǎn)保護(hù)與利用,2011(1):13-17.
[7] 王敏,張博雅,楊永國.基于SuperMap的校園導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn)[J].城市勘測,2010,5:65-68.
[8] 易正暉,王佳,馮仲科,等.基于SuperMap林業(yè)地理信息平臺的設(shè)計與實現(xiàn)[J].測繪科學(xué),2011,36(2):187-188.
[9] 朱小菲,劉濤,喬佩利.基于SuperMap Object平臺的物流配送輔助系統(tǒng)設(shè)計與實現(xiàn)[J].地理空間信息,2011,9(4):13-15.
[10]MANDELBROT B B.How long is the coast of Britain?Statistical selfsimilarity and fractional dimension[J].Science,1967,156(3775):636-638.
[11]秦耀辰,劉凱.分形理論在地理學(xué)中的應(yīng)用研究進(jìn)展 [J].地理科學(xué)進(jìn)展,2003,22(4):426-436.
[12]魏龍,劉其,張鵬高.基于分形理論的滑動摩擦表面接觸力學(xué)模型[J].機械工程學(xué)報,2012,17:106-113.
[13]劉耀民,劉中良,黃玲艷.分形理論結(jié)合相變動力學(xué)的冷表面結(jié)霜過程模擬[J].物理學(xué)報,2010,59(11):7991-7997.
[14]陸娟,王建,石麗.基于GIS和分形理論的海岸線模擬方法研究[J].中國圖像圖形學(xué)報,2003,8(6):692-696.
[15]朱曉華,蔡運龍.中國海岸線分維及其性質(zhì)研究[J].海洋科學(xué)進(jìn)展,2004,22(2):156-162.
[16]陳正華,毛志華,陳建裕.利用4期衛(wèi)星資料監(jiān)測1986—2009年浙江省大陸海岸線變遷[J].遙感技術(shù)與應(yīng)用,2011,26(1):68-73.
[17]劉勇,黃海軍,嚴(yán)立文.不同空間尺度下石臼陀島海岸線提取的遙感應(yīng)用研究[J].遙感技術(shù)與應(yīng)用,2013,28(1):144-149.
[18]徐進(jìn)勇,張增祥,趙曉麗,等.2000—2012年中國北方海岸線時空變化分析[J].地理學(xué)報,2013,68(5):651-660.
[19]BARNSLEY M F.Fractal functions and interpolation[J].Constructive Approximation,1986,2(2):303-329.
[20]BARNSLEY M F.Fractals Everywhere[M].Orlando:Academic Press,1988.
[21]肯尼思·法爾科內(nèi).分形幾何——數(shù)學(xué)基礎(chǔ)及其應(yīng)用[M].沈陽:東北工學(xué)院出版社,1991.
天津師范大學(xué)學(xué)報(自然科學(xué)版)2015年1期