張富玲,高利鵬,呂志勇
(1.青海省第二測繪院,青海 西寧 810001;2.武漢大學(xué) 遙感信息工程學(xué)院,湖北 武漢 430079;3.西安理工大學(xué) 計(jì)算機(jī)與科技學(xué)院,陜西 西安 710048)
為適應(yīng)經(jīng)濟(jì)社會發(fā)展、國防建設(shè)和科學(xué)管理需要,更好地反映我國各類地理環(huán)境要素的分布與關(guān)系,2012 年10月地理國情監(jiān)測項(xiàng)目得到國家正式立項(xiàng)。由于地理國情監(jiān)測需要本底數(shù)據(jù), 國發(fā) 6[2013]9 號《國務(wù)院關(guān)于開展第一次全國地理國情普查的通知》于2013年2月28日正式印發(fā)。地理國情普查數(shù)據(jù)的質(zhì)量控制是地理國情普查中的一個(gè)重要研究問題[1-2]。地理國情普查數(shù)據(jù)分為10個(gè)一級類,59個(gè)二級類,141個(gè)三級類。數(shù)據(jù)包括地表覆蓋分類數(shù)據(jù)和地理國情要素?cái)?shù)據(jù)兩類,其中地表覆蓋分類數(shù)據(jù)存儲在LCA層中,地理國情要素?cái)?shù)據(jù)根據(jù)其要素類型存儲在其他36層中,數(shù)據(jù)集共37 層。地理國情普查數(shù)據(jù)包含的地物類型、數(shù)據(jù)圖層較多,在作業(yè)生產(chǎn)過程中作業(yè)單元的劃分多以縣域?yàn)閱挝唬笃诳h域間和省域間的數(shù)據(jù)接邊是不規(guī)則區(qū)域的接邊,工作量巨大。接邊工作通常需人工逐要素、逐層去完成,導(dǎo)致質(zhì)檢時(shí)難以確定地理國情普查數(shù)據(jù)與結(jié)果的質(zhì)量,嚴(yán)重影響了地理國情普查數(shù)據(jù)的應(yīng)用質(zhì)量[3-4]。
DLG數(shù)據(jù)接邊在數(shù)據(jù)入庫和更新中有非常重要的作用[5-6]。傳統(tǒng)地理信息數(shù)據(jù)中需要接邊的數(shù)據(jù)包括兩 種情況:多幅標(biāo)準(zhǔn)圖幅數(shù)據(jù)入庫后,需在圖幅邊框處接邊;更新數(shù)據(jù)庫中某個(gè)范圍內(nèi)的數(shù)據(jù),需在更新范圍線處接邊[7]。接邊圖形包括線和面兩種,對于點(diǎn)圖形不存在接邊?;舸毫醄8]等運(yùn)用AutoCAD的二次開發(fā)技術(shù),針對DLG數(shù)據(jù),編程實(shí)現(xiàn)了自動(dòng)接邊檢查,提高了接邊檢查的效率。針對海量數(shù)據(jù)的存儲和組織需分幅裁切的特點(diǎn),鮑立尚[9]提出了一種基于索引圖的DLG批量接邊檢查算法。該算法首先利用標(biāo)準(zhǔn)圖幅號計(jì)算圖幅角點(diǎn)坐標(biāo);再利用角點(diǎn)坐標(biāo)生成索引圖,索引圖記錄了各圖幅直接的鄰接關(guān)系以及鄰接圖幅之間的接邊線;最后分別對相鄰圖幅中的線狀和面狀要素進(jìn)行批量接邊檢查,提高了數(shù)據(jù)入庫檢查的效率。蔣勇[10]等提出了一 種基于ArcGIS Engine的IPointCollection接邊檢查算法,進(jìn)一步提高了檢查結(jié)果的定位準(zhǔn)確性。
綜上所述,傳統(tǒng)接邊檢查算法多適用于標(biāo)準(zhǔn)分幅數(shù)據(jù),以行政區(qū)等不規(guī)則邊界區(qū)域?yàn)閱挝坏臄?shù)據(jù)接邊仍存在諸多問題。本文面向地理國情普查等不規(guī)則區(qū)域矢量接邊的應(yīng)用需求,設(shè)計(jì)了基于點(diǎn)搜索的矢量接邊算法,能更好地服務(wù)于地理國情普查數(shù)據(jù)接邊檢查工作。
圖形接邊與數(shù)據(jù)編輯方式、分幅等因素有關(guān),接邊的兩個(gè)圖形在實(shí)際地理環(huán)境中屬于同一圖形,因此兩個(gè)圖形可以正確接邊,通常需同時(shí)滿足幾何條件和屬性條件[11]。幾何條件是指接邊的兩個(gè)圖形空間位置是鄰接關(guān)系,且在一個(gè)微小距離范圍內(nèi),理論上接邊的兩個(gè)圖形的拓?fù)潢P(guān)系包括部分重合、有公共邊和分離等。屬性條件是指接邊的兩個(gè)圖形的屬性信息完全一致。
圖形接邊檢查的一般步驟為:①搜索得到接邊參考線(圖幅邊框或更新范圍線)兩側(cè)有鄰接關(guān)系的所有圖形對象;②按照幾何條件和屬性條件對圖形對象進(jìn)行配對;③檢查配對后的圖形對象是否接邊。
在進(jìn)行要素接邊檢查時(shí)需考慮圖形到邊限差和圖形接邊限差。圖形到邊限差是根據(jù)圖廓邊線生成接邊緩沖區(qū)的閾值,是判斷圖內(nèi)要素是否位于接邊緩沖區(qū)內(nèi)、是否需要進(jìn)行接邊檢查判斷的重要參數(shù)。圖形接邊限差是指位于接邊緩沖區(qū)內(nèi)的相鄰圖幅,同層、同類要素之間是否滿足接邊要求的閾值。屬性接邊則是在圖形能夠滿足接邊條件的基礎(chǔ)上進(jìn)行屬性比較。
本文提出的接邊檢查算法流程如圖1所示,具體步驟為:
1)檢查參數(shù)設(shè)置,主要設(shè)置接邊限差、接邊要素到接邊線的距離t以及矢量數(shù)據(jù)成果的存儲路徑等。其中,r為國情普查項(xiàng)目技術(shù)規(guī)定給出的生產(chǎn)單元(包括圖幅)間的接邊限差;t主要是為了確保接邊線附近一定范圍內(nèi)的要素必須成為接邊要素。要素距離接邊線的最近距離若大于t,則認(rèn)為該要素不是接邊要素,不納入接邊檢查的對象范圍。
2)判斷待接邊生產(chǎn)單元的空間參考是否一致。若空間參考不一致則無法進(jìn)行接邊檢查,此時(shí)需先將兩 個(gè)數(shù)據(jù)庫的空間參考設(shè)置為一致。在這一檢查中,程序算法對空間參考系的各參數(shù)進(jìn)行逐個(gè)對比,避免了命名不一致但屬于同一參考系而被報(bào)錯(cuò)的情況。
3)自動(dòng)獲取接邊線。算法默認(rèn)將兩個(gè)生產(chǎn)單元最大行政區(qū)邊界的公共邊線作為接邊線(若為標(biāo)準(zhǔn)圖幅數(shù)據(jù),則根據(jù)圖幅號計(jì)算圖幅角點(diǎn)坐標(biāo)構(gòu)造接邊線),同時(shí)也支持對用戶自定義的接邊線進(jìn)行檢查。
4)以獲取的接邊線為中心線,以t為緩沖區(qū)半徑創(chuàng)建緩沖區(qū),選擇與該緩沖區(qū)相交的所有線要素和面要素,并進(jìn)一步提取這些要素落入緩沖區(qū)中的節(jié)點(diǎn)和端點(diǎn),存儲到以相應(yīng)生產(chǎn)單元名命名的臨時(shí)Shapefile文件中。
臨時(shí)文件的字段設(shè)計(jì)包括:①繼承原要素字段,根據(jù)數(shù)據(jù)字典中記錄的所有圖層的字段信息,在臨時(shí)Shapefile文件中創(chuàng)建所有線圖層和面圖層包含的所有字段,并規(guī)定默認(rèn)值;②所屬圖層名字段,該字段用以標(biāo)識每個(gè)點(diǎn)屬于哪個(gè)圖層,因?yàn)橹挥袌D層名相同的點(diǎn)才能進(jìn)行接邊檢查;③所屬生產(chǎn)單元名字段,該字段用以標(biāo)識每個(gè)點(diǎn)屬于哪個(gè)生產(chǎn)單元,因?yàn)橹挥猩a(chǎn)單元名字不同的點(diǎn)才能進(jìn)行接邊檢查;④要素ID字段,該字段用以記錄每個(gè)點(diǎn)屬于哪個(gè)要素,便于記錄要素的錯(cuò)誤信息和定位錯(cuò)誤要素的位置;⑤點(diǎn)類型字段,該字段用以記錄每個(gè)點(diǎn)屬于線要素的起始點(diǎn)還是終止點(diǎn),對具有方向性的線要素(如河流流線)是否接邊進(jìn)行檢查。
5)依次取出臨時(shí)文件中的點(diǎn)作為檢查點(diǎn),以接邊限差為緩沖區(qū)半徑創(chuàng)建緩沖區(qū),并從另一個(gè)臨時(shí)文件中找到落入該緩沖區(qū)的點(diǎn)作為待匹配點(diǎn)。
若找到的匹配點(diǎn)個(gè)數(shù)大于0,則依次遍歷所有匹配點(diǎn),并對比匹配點(diǎn)與檢查點(diǎn)所有字段是否一致,尋找屬性匹配點(diǎn)時(shí)可采取先從是否同一圖層,再字段匹配的方式,節(jié)省時(shí)間。若存在屬性不一致的情況,則記錄不一致的屬性字段名稱,并存儲錯(cuò)誤信息為屬性不接邊。
若找到的匹配點(diǎn)個(gè)數(shù)等于0,則說明該檢查點(diǎn)在接邊限差之內(nèi)沒有找到接邊點(diǎn),再搜索距該檢查點(diǎn)最近的點(diǎn),若找到最近點(diǎn),則記錄這兩個(gè)點(diǎn)的位置,并存儲錯(cuò)誤信息為幾何不接邊;若找不到最近點(diǎn),則記錄該檢查點(diǎn)的位置,并存儲錯(cuò)誤信息為找不到接邊要素。
對于具有方向的線狀要素,需判斷接邊處兩側(cè)要素的行進(jìn)方向是否一致,不一致要報(bào)錯(cuò);對于面狀要素,需判斷兩個(gè)面是否是對角面,判斷對角面屬性不一致的誤報(bào)問題。
6)記錄錯(cuò)誤信息到數(shù)據(jù)庫。匯總所有接邊檢查結(jié)果,并對結(jié)果進(jìn)行歸并和整理,將標(biāo)記為位置不接邊和屬性不接邊且要素ID相同的錯(cuò)誤記錄合并為幾何和屬性均不接邊錯(cuò)誤。
地表覆蓋分類數(shù)據(jù)和重要地理國情要素?cái)?shù)據(jù)必須經(jīng)過接邊處理。接邊時(shí)應(yīng)疊加正射影像,對于相鄰需接邊線劃之間的距離小于正射影像接邊限差的,可調(diào)整一邊的數(shù)據(jù)直接接邊;對于距離小于2倍正射影像接邊限差的,兩邊相向平移接邊;對于距離大于2倍正射影像接邊限差的應(yīng)檢查和分析原因,由技術(shù)負(fù)責(zé)人根據(jù)實(shí)際情況做出決定,并作為重大問題進(jìn)行記錄。依據(jù)GDPJ 01-2013《地理國情普查內(nèi)容與指標(biāo)》的規(guī)定:規(guī)則擴(kuò)充的新類型與其對應(yīng)的上級預(yù)定義類型接邊時(shí),無需對新增類型的屬性編碼作歸并處理;接邊后應(yīng)保證圖形數(shù)據(jù)光滑、連續(xù),避免出現(xiàn)硬折、尖角;各項(xiàng)屬性值相等的相鄰?fù)亟舆吅髴?yīng)合理合并為一個(gè)實(shí)體,若受計(jì)算機(jī)軟硬件系統(tǒng)功能和性能限制,完全合并后不便于保存和訪問的,可只作部分合并,但應(yīng)盡可能減少同名要素實(shí)體個(gè)數(shù)。
實(shí)驗(yàn)數(shù)據(jù)采用青海省同仁縣和甘肅省夏河縣的地理國情普查過程數(shù)據(jù)LCA、BOUA5、BOUA6、BOUL、HYDL、LRDL等14層,接邊要素共計(jì)835個(gè),接邊要素類型主要是面和線,具體如表1所示。
表 1 數(shù)據(jù)分層與命名匯總
利用本文提出的算法進(jìn)行測試,青海省同仁縣(編碼:370523DYQ)和甘肅省夏河縣(編碼:370502GRO)得到的不接邊錯(cuò)誤統(tǒng)計(jì)結(jié)果如表2所示。
表 2 接邊檢查錯(cuò)誤個(gè)數(shù)統(tǒng)計(jì)
在算法測試過程中,安排2組人員對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行接邊,經(jīng)接邊算法檢查后精準(zhǔn)定位、定性接邊問題,極大地提高了生產(chǎn)效率,使原本6人3 d完成的接邊工作由2人1 d完成。最終統(tǒng)計(jì)結(jié)果如表3所示。
在ArcMap窗口中對得到的不接邊錯(cuò)誤的統(tǒng)計(jì)結(jié)果進(jìn)行人工驗(yàn)證。835個(gè)要素中,各類接邊問題共計(jì)510 個(gè),可排查問題記錄97條,接邊檢查算法的錯(cuò)誤統(tǒng)計(jì)正確率為87%,接邊檢查驗(yàn)證結(jié)果如圖2~4所示。
表 3 不同接邊方法的效率對比
圖2 幾何不接邊示意圖
圖3 屬性不接邊示意圖
圖4 幾何和屬性均不接邊示意圖
針對地理國情普查不規(guī)則區(qū)域矢量數(shù)據(jù)接邊檢查的需求,本文開發(fā)了基于點(diǎn)搜索的矢量數(shù)據(jù)接邊檢查算法。該算法在全國多個(gè)省市的地理國情普查數(shù)據(jù)成果質(zhì)量檢查中得到了應(yīng)用。實(shí)驗(yàn)結(jié)果表明,該算法能夠準(zhǔn)確、快速、高效地完成對國情要素?cái)?shù)據(jù)、地表覆蓋數(shù)據(jù)和元數(shù)據(jù)的接邊檢查。與傳統(tǒng)接邊檢查算法相比其具有以下優(yōu)勢:
1)算法設(shè)計(jì)過程中考慮了多種復(fù)雜情況,如參考系的預(yù)檢查、面狀要素對角接邊情況、河流流向矛盾情況、相鄰圖形找不到接邊要素的情況以及幾何接邊但屬性不一致的情況等。
2)無需手工設(shè)置接邊線,算法能自動(dòng)判斷接邊線的位置。
3)考慮了兩個(gè)限差:圖內(nèi)限差(接邊要素到接邊線的距離)和圖間限差(接邊限差)。
4)算法針對復(fù)合要素的情況在檢查時(shí)分別對單獨(dú)的部分進(jìn)行接邊檢查,避免了由于復(fù)合要素各部分不相連而導(dǎo)致的誤報(bào),極大地提高了接邊工作效率。
5)檢查結(jié)果存入數(shù)據(jù)庫中,可方便導(dǎo)入、導(dǎo)出,便于查看和修改。
在今后的研究中,將針對矢量接邊檢查中的誤報(bào)情況進(jìn)行進(jìn)一步處理,降低誤報(bào)數(shù)量,提高檢查的效率和準(zhǔn)確率;同時(shí),針對當(dāng)前越來越多的不同類型的地理信息數(shù)據(jù),需提出一種更加通用的矢量接邊檢查算法,以適用于更廣泛的數(shù)據(jù)類型。
[1] 楊靚,陳新湖,李培,等.地理國情普查一體化生產(chǎn)組織模式探討[J].遙感信息,2014(4):20-25
[2] 孟德舒.地理國情普查成果的三重保障[J].測繪與空間地理信息,2014,37(6):182-183
[3] 羅鵬.地理國情普查成果質(zhì)量控制及檢查方法探討[J].測繪與空間地理信息,2014,37(6):192-194
[4] 宋曉紅,張立朝,祿豐年,等.地理國情普查中多源異構(gòu)數(shù)據(jù)整合研究[J].測繪通報(bào),2014(9):104-107
[5] 戴相喜,周衛(wèi),高磊.DLG數(shù)據(jù)任意范圍接邊算法及實(shí)現(xiàn)[J].測繪通報(bào),2008(7):32-35
[6] 趙江洪.GIS中多圖幅自動(dòng)接邊的實(shí)現(xiàn)方法探討[J].測繪通報(bào),2006(2):50-52
[7] 曹健,李國忠,徐效波,等.基于ArcGIS Engine的多幅數(shù)字地形圖接邊算法研究[J].測繪與空間地理信息,2010,33(2):76-78
[8] 霍春玲,劉達(dá).AutoCAD數(shù)據(jù)接邊檢查自動(dòng)化的實(shí)現(xiàn)[J].測繪工程,2006(4):74-76
[9] 鮑立尚.基于索引圖的DLG批量接邊檢查算法設(shè)計(jì)與實(shí)現(xiàn)[J].礦山測量,2010(4):21-24
[10] 蔣勇,劉江,黃功文,等.基于ArcGIS Engine的IPointCollection接邊檢查法的研究[J].測繪與空間地理信息,2014,37(11):124-125
[11] 廖振環(huán),左志進(jìn),魏德照.DLG數(shù)據(jù)接邊檢查的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,2009,7(4):60-62
[12] 朱仕杰,南卓銅.基于ArcEngine的GIS軟件框架建設(shè)[J].遙感技術(shù)與應(yīng)用,2006,21(4):385-390