程建燕,康建榮,周 棒,胡宗楠
(江蘇師范大學(xué),江蘇 徐州 221116)
土地利用現(xiàn)狀圖是指以地圖的形式反映不同行政區(qū)內(nèi)的土地利用類型、利用現(xiàn)狀以及與社會(huì)、自然關(guān)系等的專題地圖,土地利用圖斑的自動(dòng)綜合需要考慮拓?fù)潢P(guān)系、空間關(guān)系和語(yǔ)義關(guān)系等多方面因素[1]。在土地利用現(xiàn)狀圖制圖綜合過(guò)程中,因多邊形幾何形狀的化簡(jiǎn)會(huì)導(dǎo)致原有圖斑拓?fù)潢P(guān)系的破壞,因小面積圖斑聚集分布會(huì)導(dǎo)致原有圖斑空間關(guān)系的破壞,因此圖斑自動(dòng)檢測(cè)成為十分重要的部分。在圖斑的自動(dòng)檢測(cè)過(guò)程中涉及到的空間沖突主要是任意相鄰圖斑多邊形間間距過(guò)小導(dǎo)致產(chǎn)生“橋梁區(qū)域”無(wú)法分辨[2],以及小面積圖斑過(guò)多、局部圖斑密集導(dǎo)致需要進(jìn)行圖斑合并的問(wèn)題。針對(duì)此問(wèn)題,眾多國(guó)內(nèi)外學(xué)者對(duì)圖斑自動(dòng)檢測(cè)進(jìn)行了相應(yīng)的研究。比較有代表性的研究成果有如下幾類:艾廷華等根據(jù)圖斑合并算子進(jìn)行圖斑的聚合和融合[3],劉耀林等提出了基于本體的土地利用數(shù)據(jù)綜合研究[4],郭慶勝等研究了圖斑合并的漸進(jìn)式方法研究[5],楊志龍?zhí)岢隽嘶谙伻核惴ǖ膱D斑合并方法[6],但是這些研究大多是對(duì)符合合并規(guī)則的圖斑進(jìn)行合并 很少涉及鄰近圖斑間產(chǎn)生的間隙問(wèn)題。還有一些學(xué)者從顧及鄰域變化的角度提出圖斑群合并的方法,如翁杰提出了顧及鄰域變化下的圖斑群合并方法[7],李成名提出了鄰域關(guān)系維持下的狹長(zhǎng)圖斑分解方法[8],李英提出了語(yǔ)義與空間相結(jié)合下的圖斑自動(dòng)綜合模型[9]。但是這些研究未能很好地維持同地類圖斑間的拓?fù)溧徑P(guān)系,保持圖斑的自然形態(tài)結(jié)構(gòu)。文中從計(jì)算幾何的角度,基于公共邊界提出一種解決圖斑合并的算法。該算法能夠分辨圖斑間間隙,消除鄰近圖斑間的“橋梁區(qū)域”,較好地維持地類圖斑間的拓?fù)潢P(guān)系,保持圖斑的自然彎曲形態(tài),并結(jié)合Weiler-Atherton算法,刪除小面積圖斑,優(yōu)化圖斑群自動(dòng)合并效果。
土地利用現(xiàn)狀圖制圖綜合過(guò)程中圖斑檢測(cè)的對(duì)象主要有兩類[6]:一是距離過(guò)近導(dǎo)致在圖中不易分辨的圖斑;二是面積過(guò)小導(dǎo)致在圖中過(guò)于密集的圖斑。針對(duì)這兩類圖斑,定義了兩種操作即“橋梁區(qū)域”檢測(cè)和圖斑自動(dòng)合并?!皹蛄簠^(qū)域”是指具有鄰近關(guān)系的圖斑多邊形間間距過(guò)小產(chǎn)生的狹窄縫隙,它會(huì)導(dǎo)致在圖中無(wú)法分辨,引起重疊、縫隙等空間沖突,如圖1所示。當(dāng)兩圖斑多邊形具有公共邊界時(shí),在拓?fù)潢P(guān)系上視為鄰近;當(dāng)兩圖斑多邊形在拓?fù)潢P(guān)系上相離,但相互間的距離非常小且難以區(qū)分時(shí),視為鄰近[10-11]?!皹蛄簠^(qū)域”檢測(cè)融入距離關(guān)系、拓?fù)潢P(guān)系,檢測(cè)并消除相鄰圖斑多邊形間的間隙,保持圖斑間的鄰近關(guān)系。圖斑自動(dòng)合并主要是對(duì)小面積圖斑進(jìn)行處理,減少土地利用現(xiàn)狀圖中密集圖斑的數(shù)量,使地類圖斑變得簡(jiǎn)潔。圖斑自動(dòng)合并會(huì)導(dǎo)致圖斑的消失,消失的圖斑的拓?fù)浒P(guān)系和鄰近關(guān)系全部由合并后的大圖斑繼承,因此圖斑自動(dòng)合并是在與消失的圖斑具有拓?fù)浒P(guān)系和鄰近關(guān)系的圖斑中進(jìn)行[12-14]。
2.1.1 圖斑多邊形公共邊界
在進(jìn)行矢量化土地利用現(xiàn)狀圖的過(guò)程中,圖斑多邊形可能出現(xiàn)自相交區(qū)域。自相交是指圖斑多邊形所有邊之間除了頂點(diǎn)外還存在相交的邊的情況[15]。這需要對(duì)土地利用圖斑進(jìn)行自相交檢測(cè)判斷,檢測(cè)算法按照文獻(xiàn)[16]中的算法設(shè)計(jì),對(duì)于自相交區(qū)域采用直接刪除的方式來(lái)進(jìn)行處理。
圖斑多邊形看作是封閉的多線段,以邊界線段操作為核心求解多邊形的交點(diǎn)。利用射線交點(diǎn)法[17-18]進(jìn)行點(diǎn)與多邊形的關(guān)系確定,即待判定點(diǎn)為起點(diǎn)作射線,根據(jù)射線與多邊形邊界交點(diǎn)的奇偶數(shù),確定是否點(diǎn)在多邊形內(nèi)部。若交點(diǎn)數(shù)為奇數(shù),則點(diǎn)在多邊形內(nèi);若交點(diǎn)數(shù)為偶數(shù),則在多邊形外。通過(guò)點(diǎn)與多邊形的關(guān)系,進(jìn)而判斷多邊形間的相互關(guān)系。若沒(méi)有交點(diǎn),則為包含關(guān)系或相離關(guān)系;若有交點(diǎn),則為交叉關(guān)系。包含和分離關(guān)系的判定實(shí)質(zhì)是若頂點(diǎn)都在多邊形內(nèi)部,則是包含關(guān)系;若頂點(diǎn)都在多邊形外部,則是分離關(guān)系。
f=(xn+1-xn)(y-yn)-(yn+1-yn)(x-xn),
n=j或k
(1)
f1=(xn+1-xn)(yj-yn)-(yn+1-yn)(xj-xn),
n=k
(2)
2.1.2 “橋梁區(qū)域”檢測(cè)方法
圖斑多邊形求取公共邊界后,相鄰圖斑多邊形基于公共邊界進(jìn)行“橋梁區(qū)域”自動(dòng)檢測(cè)及消除。結(jié)合圖斑多邊形的數(shù)據(jù)結(jié)構(gòu),圖斑多邊形的頂點(diǎn)序列可分為順時(shí)針或逆時(shí)針?lè)较蚺帕?。因此,相鄰圖斑間的“橋梁區(qū)域”可分為多種情況,即由公共邊界出發(fā),鄰近兩圖斑的頂點(diǎn)序列皆按同方向排列時(shí)產(chǎn)生的“橋梁區(qū)域”形態(tài)存在差別,并當(dāng)相鄰圖斑多邊形頂點(diǎn)序列按相反方向排列時(shí)產(chǎn)生的“橋梁區(qū)域”也大不相同,具體情況如圖3所示。
設(shè)相鄰圖斑多邊形間的頂點(diǎn)距離為length,兩頂點(diǎn)間的距離閾值為λ。圖斑多邊形M,C進(jìn)行求交后,基于公共邊界分別以同方向遍歷相鄰圖斑多邊形頂點(diǎn),在交點(diǎn)處結(jié)束遍歷。當(dāng)相鄰圖斑多邊形間的頂點(diǎn)距離lengthλ時(shí),則取對(duì)應(yīng)兩頂點(diǎn)的中點(diǎn)μ代替原圖斑多邊形頂點(diǎn),形成新的共享邊界,消除原圖斑間的“橋梁區(qū)域”。圖斑多邊形僅僅在同一方向檢查“橋梁區(qū)域”不滿足所有圖斑多邊形的情況,在相鄰圖斑頂點(diǎn)排列方向存在差異時(shí),會(huì)產(chǎn)生不同形態(tài)的“橋梁區(qū)域”。此算法基于公共邊界改變圖斑多邊形頂點(diǎn)的排列順序,能夠進(jìn)行多種情況的檢查,對(duì)相鄰圖斑多邊形進(jìn)行全面的“橋梁區(qū)域”檢測(cè)。運(yùn)用此算法進(jìn)行模擬實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖2 公共邊界求取結(jié)果
圖3 橋梁區(qū)域分類
圖4 橋梁區(qū)域檢測(cè)結(jié)果
相鄰圖斑多邊形求交后,結(jié)合Weiler-Atherton算法[19-22],采用鏈表的形式判斷交點(diǎn)的“入出性”,進(jìn)而實(shí)現(xiàn)圖斑的自動(dòng)合并。兩多邊形相交時(shí),交點(diǎn)必然成對(duì)出現(xiàn)。根據(jù)圖斑多邊形之間的關(guān)系,判斷交點(diǎn)的“入出性”:一個(gè)多邊形進(jìn)入另一多邊形的交點(diǎn),稱為“入點(diǎn)”;一個(gè)多邊形離開(kāi)另一多邊形的交點(diǎn),稱為“出點(diǎn)”。由多邊形的某個(gè)“出點(diǎn)”進(jìn)行遍歷,碰到出點(diǎn),則沿著此多邊形順時(shí)針?lè)较蛴涗涰旤c(diǎn)序列,并將“出點(diǎn)”的flag記號(hào)刪除,以免重復(fù)。遇到“入點(diǎn)”時(shí),則沿著另一多邊形逆時(shí)針?lè)较蛴涗涰旤c(diǎn)序列。按照此規(guī)則,如此交替地沿著兩個(gè)多邊形的邊界進(jìn)行遍歷,直到回到起始點(diǎn)為止,將所有的出點(diǎn)搜集完畢后則算法結(jié)束。由于圖斑合并需要考慮到地類等因素的影響,此算法只對(duì)于同屬于同一地類的圖斑進(jìn)行合并。
以Region_Line_3D鏈表結(jié)構(gòu)來(lái)構(gòu)建相鄰圖斑多邊形M、C,相鄰圖斑多邊形M、C的頂點(diǎn)序列按照順時(shí)針?lè)较蚺帕?。求取相鄰圖斑多邊形M、C的交點(diǎn),對(duì)交點(diǎn)相同的點(diǎn)進(jìn)行統(tǒng)一命名,并將交點(diǎn)按位置順序分別插入鏈表M、C中。根據(jù)多邊形M、C的頂點(diǎn)與交點(diǎn)所形成的邊界的中點(diǎn),由Weiler-Atherton合并算法思想,進(jìn)行判別多邊形M、C中交點(diǎn)的“入出性”。若邊界中點(diǎn)在另一圖斑區(qū)域外,則此交點(diǎn)為“入點(diǎn)”;若邊界中點(diǎn)在另一圖斑區(qū)域內(nèi),則此交點(diǎn)為“出點(diǎn)”。初始化多邊形鏈表line,尋找圖斑多邊形鏈表中的“出點(diǎn)”,將“出點(diǎn)”記錄到line中,并將“出點(diǎn)”標(biāo)記flag刪除。沿著一圖斑多邊形M順序取其頂點(diǎn),如果頂點(diǎn)不是“入點(diǎn)”,則將其頂點(diǎn)記錄到line中,否則沿著另一圖斑多邊形C行進(jìn)。當(dāng)多邊形C中頂點(diǎn)不是“出點(diǎn)”時(shí),將其頂點(diǎn)記錄到line中,否則流程轉(zhuǎn)至上一步多邊形M中行進(jìn)。判斷找到的最后一點(diǎn)是否為起點(diǎn),若為起點(diǎn)則形成合并圖斑區(qū)域line,查找結(jié)束。當(dāng)相鄰圖斑多邊形沒(méi)有交點(diǎn)且為包含關(guān)系時(shí),直接刪除小圖斑,其拓?fù)潢P(guān)系和權(quán)屬關(guān)系由包含的大圖斑繼承。具體流程如圖5所示。
圖5 圖斑合并流程
文中將整個(gè)程序應(yīng)用于整幅土地利用圖中,{Polygon}={P1,P2,…,Pn}為土地利用圖中所有的圖斑集合,對(duì)于{Polygon}中的任一圖斑Pi都獲取其x,y坐標(biāo)的最大值maxx,maxy和最小值minx,miny,形成一個(gè)包圍此圖斑的擴(kuò)展矩形區(qū)域。檢測(cè){Polygon}中其余圖斑Pj的矩形區(qū)域與Pi矩形區(qū)域是否有交集Ψ,若Ψ>0,則記錄Pj的所屬地類名稱Name(Pj)和圖斑數(shù)據(jù)集合PD{Pj}。對(duì)Pi和PD{Pj}進(jìn)行“橋梁區(qū)域”檢測(cè)和圖斑自動(dòng)合并,合并時(shí)將Name(Pj)中與Pi不屬于同一地類的圖斑剔除,遍歷完整個(gè)圖斑集合{Polygon},實(shí)現(xiàn)整幅土地利用圖的圖斑自動(dòng)合并。
整個(gè)程序以存儲(chǔ)在*.txt文件中的圖斑坐標(biāo)數(shù)據(jù)為研究對(duì)象,按照?qǐng)D斑數(shù)據(jù)準(zhǔn)備、圖斑數(shù)據(jù)檢測(cè)合并和土地利用結(jié)果圖輸出的流程設(shè)計(jì),在考慮不同地類間圖斑不進(jìn)行合并的情況下,對(duì)土地利用現(xiàn)狀圖上的大批量圖斑進(jìn)行“橋梁區(qū)域”的檢測(cè)和圖斑合并,主要實(shí)現(xiàn)土地利用現(xiàn)狀圖中圖斑間的無(wú)縫隙、無(wú)重疊和小圖斑的刪除與合并。整個(gè)程序借助C++語(yǔ)言和MFC控制平臺(tái)進(jìn)行操作,并將輸出結(jié)果在Auto CAD軟件中進(jìn)行可視化顯示,使得整個(gè)程序方便、快捷,便于數(shù)據(jù)的重復(fù)性操作。程序的實(shí)現(xiàn)流程如圖6所示。
圖6 程序?qū)崿F(xiàn)流程
文中采用的實(shí)驗(yàn)數(shù)據(jù)為山西省第三次全國(guó)國(guó)土調(diào)查中的土地資源業(yè)務(wù)數(shù)據(jù),如圖7所示。該圖中因圖斑多邊形疊置時(shí)圖斑邊界不一致,產(chǎn)生大量縫隙和重疊,導(dǎo)致鄰近圖斑間產(chǎn)生“橋梁區(qū)域”無(wú)法識(shí)別,破壞了土地利用現(xiàn)狀圖的全覆蓋、無(wú)縫隙特點(diǎn)。并且圖中小面積圖斑過(guò)多,局部圖斑密集,不利于圖斑的自動(dòng)綜合。利用文中算法,并根據(jù)第三次全國(guó)國(guó)土調(diào)查實(shí)施方案的要求[23],采用最小上圖面積需大于200 m2的規(guī)范對(duì)此土地利用現(xiàn)狀圖進(jìn)行“橋梁區(qū)域”檢測(cè)和圖斑的自動(dòng)合并,經(jīng)此算法處理后的結(jié)果如圖8所示。
圖7 數(shù)據(jù)原圖
圖8 處理結(jié)果
土地利用現(xiàn)狀圖的圖斑檢測(cè)算法中對(duì)于小面積圖斑的處理,其處理后的結(jié)果需要通過(guò)各類用地面積的相對(duì)平衡進(jìn)行評(píng)價(jià)[24-26]。由表1可以看出,土地利用圖斑檢測(cè)前后總的圖斑面積保持相對(duì)平衡,總的圖斑數(shù)量相比檢測(cè)前明顯減少。其中農(nóng)用地、建設(shè)用地和未利用地的圖斑數(shù)量相比較于檢測(cè)前均減少一半,檢測(cè)后的農(nóng)用地圖斑面積相對(duì)于之前有明顯增加,建設(shè)用地和未利用地的圖斑面積相比較于之前明顯減少。土地利用現(xiàn)狀圖經(jīng)圖斑檢測(cè)算法后不僅“橋梁區(qū)域”問(wèn)題得到解決,而且圖中的小圖斑密集區(qū)域也明顯減少。由圖8可以看出,此土地利用現(xiàn)狀圖中圖斑間的“橋梁區(qū)域”能夠被自動(dòng)檢測(cè)且修復(fù),從而消除了此圖中圖斑間的縫隙和重疊區(qū)域,保證了土地利用現(xiàn)狀圖中全覆蓋、無(wú)重疊、無(wú)縫隙的特點(diǎn),并且從圖中也能明顯看出面積過(guò)小的圖斑能夠自動(dòng)合并到同地類的大圖斑之中,將原始的小圖斑從圖斑數(shù)據(jù)中刪除,減少了密集區(qū)域的圖斑數(shù)量。結(jié)果表明,此算法能夠完全自動(dòng)化地實(shí)現(xiàn)小圖斑的自動(dòng)合并,保持地類的繼承性,彌補(bǔ)了ArcGIS軟件中需要人工主觀判斷的缺陷,并能夠?qū)︵徑鼒D斑間的“橋梁區(qū)域”實(shí)現(xiàn)快速的檢測(cè)和消除,維持土地利用圖斑原有的自然彎曲形態(tài),提高制圖綜合的效率。
表1 土地利用現(xiàn)狀圖檢測(cè)前后對(duì)比
文中采用自相交區(qū)域直接刪除的算法對(duì)土地利用圖斑多邊形進(jìn)行自相交預(yù)處理后,通過(guò)定義求交規(guī)則的方式求取土地利用圖斑多邊形之間的公共邊界?;卩徑鼒D斑間的公共邊界以多邊形鏈表的結(jié)構(gòu)并按照一定方向遍歷土地利用圖斑,在維持圖斑拓?fù)湟恢滦缘幕A(chǔ)上,檢測(cè)并消除圖斑間間距過(guò)小的“橋梁區(qū)域”。
該算法依據(jù)交點(diǎn)所在邊界的中點(diǎn),實(shí)現(xiàn)圖斑多邊形間關(guān)系判斷。同時(shí)利用Weiler-Atherton算法,判定邊界中點(diǎn)是否在另一圖斑區(qū)域的內(nèi)部,進(jìn)行交點(diǎn)的入出性判斷。并根據(jù)最小上圖面積的原則,在圖斑群中進(jìn)行小面積圖斑的搜索,在保持地類圖斑間的繼承關(guān)系的基礎(chǔ)上批量消除小面積圖斑,實(shí)現(xiàn)圖斑的自動(dòng)合并。
對(duì)于第三次國(guó)土調(diào)查中的批量圖斑數(shù)據(jù),整個(gè)制圖綜合過(guò)程只需要一幅土地利用現(xiàn)狀圖的圖斑坐標(biāo)數(shù)據(jù),簡(jiǎn)化了計(jì)算過(guò)程,快速有效地實(shí)現(xiàn)了鄰近圖斑間的“橋梁區(qū)域”檢測(cè)改正和小圖斑群的自動(dòng)合并,解決了ArcGIS軟件中存在的制圖工具功能簡(jiǎn)單、自動(dòng)化程度不高等問(wèn)題,提高了土地利用現(xiàn)狀圖的制圖效率。