摘要:空間分析是地理信息系統(tǒng)(Geographic Information System,GIS)提供的重要功能,而空間拓?fù)潢P(guān)系的建立是進(jìn)行空間分析的關(guān)鍵。文章介紹了幾種空間拓?fù)潢P(guān)系建立的一般流程,還根據(jù)應(yīng)用需要,介紹了軟件平臺及二次開發(fā)中建立空間拓?fù)潢P(guān)系的一般模式。
關(guān)鍵詞:空間分析;空間拓?fù)潢P(guān)系;空間拓?fù)潢P(guān)系的建立
近年來,計(jì)算機(jī)技術(shù)發(fā)展非常迅速,雖然地理信息系統(tǒng)(Geographic Information System,GIS)的輸入、存儲和輸出功能進(jìn)展較快,但是空間分析功能的發(fā)展就顯得比較落后。而空間分析是建立在空間目標(biāo)位置和屬性表達(dá)以及目標(biāo)間復(fù)雜空間關(guān)系表達(dá)的基礎(chǔ)上,若要提高空間分析能力,必須解決空間關(guān)系描述與表達(dá),而空間關(guān)系的建立也是提高GIS效率的一個關(guān)鍵。
一、空間拓?fù)潢P(guān)系描述
空間拓?fù)潢P(guān)系描述的是基本的空間目標(biāo)點(diǎn)、線、面之間的鄰接、關(guān)聯(lián)和包含關(guān)系。GIS傳統(tǒng)的基于矢量數(shù)據(jù)結(jié)構(gòu)的結(jié)點(diǎn)-段-邊形,用于描述地理實(shí)體之間的連通性、鄰接性和區(qū)域性。這種拓?fù)潢P(guān)系難以直接描述空間上雖相鄰但并不相連的離散地物之間的空間關(guān)系。
目前,對于空間實(shí)體之間的拓?fù)潢P(guān)系的描述,主要有基于網(wǎng)絡(luò)的拓?fù)淠P秃突邳c(diǎn)集拓?fù)淅碚摰耐負(fù)淠P?,前者比后者具有直觀、結(jié)構(gòu)清晰、互導(dǎo)性強(qiáng)、便于組織存儲等優(yōu)點(diǎn)?;邳c(diǎn)集拓?fù)涞目臻g拓?fù)潢P(guān)系描述有三種方法:四元組、九元組和維擴(kuò)展法?;邳c(diǎn)集拓?fù)涞目臻g關(guān)系描述框架能夠十分有效地描述有公共元素的空間目標(biāo)間的拓?fù)潢P(guān)系,甚至能夠根據(jù)交集的維數(shù)更進(jìn)一步區(qū)分成為各種不同的形式,但是基于點(diǎn)集拓?fù)涞目臻g關(guān)系描述框架無法描述分離開的、沒有公共元素的目標(biāo)間的拓?fù)淇臻g關(guān)系,這正是其缺點(diǎn)所在。
二、空間拓?fù)浣Y(jié)構(gòu)
空間實(shí)體之間的基本關(guān)系有點(diǎn)-點(diǎn)關(guān)系、點(diǎn)-線關(guān)系、點(diǎn)-面關(guān)系、線-線關(guān)系、線-面關(guān)系和面-面關(guān)系,這些關(guān)系表現(xiàn)了實(shí)體間拓?fù)潢P(guān)系的相鄰性、連接性、閉合性、包含性和一致性等,是地理空間數(shù)據(jù)處理的依據(jù)。
空間拓?fù)浣Y(jié)構(gòu)就是指在數(shù)據(jù)結(jié)構(gòu)上借助拓?fù)鋷缀螌W(xué)的概念來定義空間實(shí)體的相互關(guān)系。
在GIS系統(tǒng)拓?fù)鋽?shù)據(jù)結(jié)構(gòu)中,通常具有如下三種重要的拓?fù)湫问剑?br/> 說明線串如何相連的連通性(Connectivity),即線串(Line String)是在結(jié)點(diǎn)(Node)上相互連接的。
多邊形是由一系列相連通的線串組成的。
記錄多邊形的相鄰信息以表示拓?fù)浣Y(jié)構(gòu)的連續(xù)性(Contiguity)是指根據(jù)線串的走向,可以決定誰是左多邊形,誰是右多邊形。同時,兩多邊形之所以相鄰是因?yàn)槎呔哂泄餐倪吔纭?br/>
三、空間拓?fù)潢P(guān)系的建立
對于矢量圖形數(shù)據(jù),目前主要空間拓?fù)潢P(guān)系的建立主要利用了點(diǎn)組成線、線組成多邊形的拓?fù)潢P(guān)系的這一基本思想??臻g對象的簡單拓?fù)潢P(guān)系的判斷可以利用直線方程及直線的相關(guān)性質(zhì)等解析幾何的性質(zhì)來實(shí)現(xiàn),這種方法避開了復(fù)雜的運(yùn)算,可以有效地進(jìn)行拓?fù)潢P(guān)系的建立。但是對于多邊形拓?fù)潢P(guān)系的建立就要復(fù)雜得多,這種方法的效率太低,時間和內(nèi)存的開銷太大,因此多邊形拓?fù)涞慕⒎椒ň统蔀樵u價某個算法優(yōu)劣的重要標(biāo)準(zhǔn)。目前建立多邊形拓?fù)潢P(guān)系的算法主要有基于矢量圖形的邊界搜索算法和基于柵格的種子填充算法。
?。ㄒ唬┖唵慰臻g拓?fù)潢P(guān)系建立的流程
簡單空間拓?fù)潢P(guān)系的建立可以借助于解析幾何的思想,利用代數(shù)方程來解決幾何對象之間關(guān)系,通過直線的單調(diào)性及斜率等性質(zhì),只須經(jīng)過簡單的運(yùn)算,便可給出空間拓?fù)潢P(guān)系的具體判斷。其基本流程是:
1、獲取對象的坐標(biāo)點(diǎn)或坐標(biāo)點(diǎn)串。
2、利用解析幾何的思想,判斷其空間拓?fù)潢P(guān)系,如點(diǎn)與點(diǎn)是否重合,線與線是否相交等。
3、匹配,在數(shù)據(jù)表中表示出來。例如要表示線與點(diǎn)的關(guān)系,可以給線的屬性表中加兩個屬性,即起始點(diǎn)標(biāo)識號和結(jié)尾點(diǎn)標(biāo)識號,將對應(yīng)的端點(diǎn)的標(biāo)識號賦給這兩個字段。
?。ǘ┗谑噶繄D形的多邊形空間拓?fù)潢P(guān)系建立的流程
矢量數(shù)據(jù)結(jié)構(gòu)通常有環(huán)狀多邊形數(shù)據(jù)結(jié)構(gòu)和拓?fù)浠瘮?shù)據(jù)結(jié)構(gòu)兩種基本形式。環(huán)狀多邊形數(shù)據(jù)結(jié)構(gòu)與平面解析幾何對物體的描述十分相似,點(diǎn)是由一對坐標(biāo)(x,y)來表示的,線表示成x1,y1,x2,y2…,xn,yn的形式,面則表示為x1,y1,x2,y2…,xn,yn,x1,y1。環(huán)狀多邊形數(shù)據(jù)結(jié)構(gòu)不能完整地描述空間實(shí)體間的空間關(guān)系,而矢量空間數(shù)據(jù)的拓?fù)浠瘮?shù)據(jù)結(jié)構(gòu)可以克服這一缺陷。環(huán)狀多邊形數(shù)據(jù)結(jié)構(gòu)是拓?fù)浠瘮?shù)據(jù)結(jié)構(gòu)的基礎(chǔ),為其提供了基本的數(shù)據(jù)。
1、線的疏化。減少數(shù)據(jù)的存儲量,以提高建立線串—結(jié)點(diǎn)表、線串表、面表的速度,提高查詢、分析的速度。
2、長線斷列。在線的相交點(diǎn)上產(chǎn)生新的結(jié)點(diǎn),使原來連續(xù)的線在交點(diǎn)處被打斷。
3、消除隙差并刪除重復(fù)線。
4、連成網(wǎng)絡(luò)。
5、檢查并處理線遺漏、在連續(xù)線中出現(xiàn)不應(yīng)有的結(jié)點(diǎn)的等情況。
6、建立線串-點(diǎn)表,線串表。由此,可以知道一條線串的起始結(jié)點(diǎn)和尾結(jié)點(diǎn)以及頂點(diǎn)(Vertex)。同時,知道一個結(jié)點(diǎn)我們也能很快地找出通過此結(jié)點(diǎn)的所有線串。
7、搜索多邊形,建立面-串表。從任意一條線串開始,根據(jù)左轉(zhuǎn)法或右轉(zhuǎn)法進(jìn)行多邊形的搜索。在多邊形搜索過程中,當(dāng)重新回到起始的線串時,完成一個多邊形的搜索,并根據(jù)線串的前進(jìn)方向,確定線串的左側(cè)多邊形或右側(cè)多邊形。在多邊形自動生成過程中,應(yīng)遵循線串的先后相繼的原則,即前一條線串的尾結(jié)點(diǎn)為后繼線串的頭結(jié)點(diǎn)。
8、生成多邊形表。根據(jù)面-串表,找出與當(dāng)前的多邊形相關(guān)的所有線串,計(jì)算得出多邊形的面積、周長。進(jìn)行標(biāo)識點(diǎn)在多邊形內(nèi)的判斷,得出多邊形的用戶標(biāo)識,用于同屬性庫相連。
(三)基于柵格的多邊形空間拓?fù)潢P(guān)系建立的流程
基于柵格的多邊形空間拓?fù)潢P(guān)系建立利用的是種子填充算法的思想,得到封閉區(qū)域的多邊形空間拓?fù)潢P(guān)系。其基本流程如下:
1、矢量數(shù)據(jù)柵格化。
2、在柵格數(shù)據(jù)場內(nèi)搜索空白柵格,以此為種子進(jìn)行區(qū)域填充。
3、重復(fù)進(jìn)行種子搜索和區(qū)域填充,直到整個柵格數(shù)據(jù)場內(nèi)沒有空白柵格時結(jié)束。
4、非邊界弧段的判定。非邊界弧段,可分三種類型:孤立弧,與內(nèi)邊界或外邊界相連的死胡同,內(nèi)邊界之間或內(nèi)邊界與外邊界之間的弧段。非邊界弧段的判定結(jié)束后刪除這些孤立弧段、死胡同等非邊界弧段。
5、拓?fù)湫畔⑸?。建立多邊形拓?fù)潢P(guān)系除了要獲得構(gòu)成多邊形的弧段外,通常還需對這些弧段進(jìn)行排序以建立多邊形的內(nèi)、外邊界,以及判定弧段的左、右多邊形,計(jì)算多邊形面積、周長,確定內(nèi)點(diǎn)等。主要在弧段的左、右多邊形的判定和弧段排序。
四、空間拓?fù)潢P(guān)系的應(yīng)用
?。ㄒ唬┸浖脚_中的空間拓?fù)潢P(guān)系建立
軟件平臺中的空間拓?fù)潢P(guān)系的建立常為了拓?fù)錂z錯和拓?fù)鋺?yīng)用。拓?fù)錂z錯是在建立好拓?fù)湟?guī)則后,再打開些拓?fù)湟?guī)則,根據(jù)錯誤提示進(jìn)行修改。拓?fù)鋺?yīng)用主要指的是為了提供空間分析的功能,比如線拓?fù)渖擅妗⒕W(wǎng)絡(luò)分析功能等。
在軟件平臺中,拓?fù)潢P(guān)系的建立和使用的過程如下:
1、獲取圖形文件,新建或打開。
2、對圖形文件進(jìn)行拓?fù)潢P(guān)系的建立,即根據(jù)需求調(diào)用特定的模塊對其進(jìn)行處理。
3、根據(jù)所得的拓?fù)潢P(guān)系進(jìn)行拓?fù)錂z錯或拓?fù)鋺?yīng)用。
當(dāng)然,拓?fù)潢P(guān)系的建立是可以在進(jìn)行圖形繪制的時候進(jìn)行的,但是由于所需要的拓?fù)潢P(guān)系待定,就需要考慮所有的拓?fù)潢P(guān)系,而此時圖形還在動態(tài)變化當(dāng)中,因此在每次圖形更新的時候都需要對其進(jìn)行拓?fù)潢P(guān)系的建立,如此將嚴(yán)重影響圖形繪制及拓?fù)潢P(guān)系的建立的效率。
以使用ArcGIS進(jìn)行最短路徑分析為例,其使用的拓?fù)潢P(guān)系是線文件的網(wǎng)絡(luò)拓?fù)潢P(guān)系,這種關(guān)系在其它拓?fù)涮幚頃r使用很少,因此如果是在圖形繪制時就建立網(wǎng)絡(luò)拓?fù)潢P(guān)系,就會造成的時間上的浪費(fèi)。而ArcGIS實(shí)行的機(jī)制就是首先在ArcMap中進(jìn)行圖形的矢量化,而后在ArcCatalog中建立其網(wǎng)絡(luò)拓?fù)潢P(guān)系,最后再在ArcMap中進(jìn)行最短路徑分析。這種方式對于ArcGIS中的其它拓?fù)涔δ芤策m用。
這種拓?fù)潢P(guān)系建立是高效的、有針對性的,值得在軟件平臺設(shè)計(jì)時借鑒。
(二)二次開發(fā)中的空間拓?fù)潢P(guān)系建立
空間拓?fù)潢P(guān)系是GIS中空間分析的基礎(chǔ),限制著其在空間分析方面的應(yīng)用。目前大多數(shù)的應(yīng)用軟件都是通過二次開發(fā)實(shí)現(xiàn)的,這種軟件開發(fā)的空間分析功能就不僅是建立在其使用平臺的基礎(chǔ)上,而且還要看其平臺所提供的二次開發(fā)組件。例如ESRI公司所提供的MapObjects不能獨(dú)立支持空間拓?fù)潢P(guān)系,因此在進(jìn)行二次開發(fā)的時候就首先要求建立空間拓?fù)潢P(guān)系。
本文提出的二次開發(fā)流程如下:
1、分析空間拓?fù)潢P(guān)系和二次開發(fā)組件的空間數(shù)據(jù)模型,找出其共有的特性。
2、根據(jù)分析結(jié)果,設(shè)計(jì)用于存儲拓?fù)潢P(guān)系數(shù)據(jù)的數(shù)據(jù)庫。
3、設(shè)計(jì)建立空間拓?fù)潢P(guān)系的模塊。
4、建立空間拓?fù)潢P(guān)系,將其結(jié)果數(shù)據(jù)存儲到數(shù)據(jù)庫中。
5、空間拓?fù)浞治瞿K中調(diào)用拓?fù)潢P(guān)系數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理。
五、結(jié)論
空間分析是GIS中的重要功能,它在基于空間拓?fù)潢P(guān)系建立的基礎(chǔ)上的,為了增強(qiáng)空間分析功能,應(yīng)該充分考
慮實(shí)際應(yīng)用中所提供的數(shù)據(jù)以及對其功能的要求,不僅要選擇合適的算法空間拓?fù)潢P(guān)系,還要選擇合適的空間拓?fù)潢P(guān)系的流程。
參考文獻(xiàn):
1、