王海恒,張向陽,郭蘭勤,王 璐,何 毅
(1.自然資源部第一地理信息制圖院,陜西 西安 710054;2.西北大學(xué),陜西 西安 710127)
1∶10 000 數(shù)字線劃圖(DLG)是與現(xiàn)有線劃基本一致的各地圖要素的矢量數(shù)據(jù)集,保存了各要素間空間關(guān)系和相關(guān)的屬性信息,也是信息查詢的主要方式[1-2]。1∶10 000 DLG通常按照規(guī)定的經(jīng)差和緯差分幅存儲,具有精度高、現(xiàn)勢性好、要素信息豐富等特點,是國家和地區(qū)重要的基礎(chǔ)性、戰(zhàn)略性信息資源,是經(jīng)濟(jì)發(fā)展、科學(xué)規(guī)劃、環(huán)境保護(hù)、資源開發(fā)、應(yīng)急保障、工程建設(shè)等工作的重要依據(jù)[3]。
在1∶10 000 DLG分幅數(shù)據(jù)的生產(chǎn)與更新過程中,完成數(shù)據(jù)采集、編輯后,需進(jìn)行圖幅之間的接邊檢查工作[4-5]。傳統(tǒng)的接邊檢查方法由人工逐層逐要素檢查,過程繁瑣、耗時耗力,且易產(chǎn)生主觀判斷錯誤和漏檢查的問題[6]。本文基于二次開發(fā)腳本語言Python,通過一定的空間分析算法研究,編程實現(xiàn)了1∶10 000 DLG批量接邊檢查軟件,包括要素屬性檢查、位置檢查、有向線方向一致性檢查和跨帶檢查[7]等功能。該軟件界面簡單、操作便捷,返回檢查結(jié)果快速、準(zhǔn)確、直觀,可實現(xiàn)多圖幅、多要素的接邊檢查。
對1∶10 000 DLG分幅數(shù)據(jù)命名的正確性進(jìn)行檢查,對每幅圖中各要素分類數(shù)據(jù)層名和投影坐標(biāo)系統(tǒng)進(jìn)行檢查,確?;A(chǔ)數(shù)據(jù)和參數(shù)的正確性。
根據(jù)國家基本比例尺地形圖分幅和編號命名規(guī)則判斷相鄰圖幅,為了避免重復(fù)檢查、減少軟件運行產(chǎn)生的冗余,僅對每幅圖西北兩邊的相鄰圖幅進(jìn)行判斷。
若圖幅接邊處圖形要素之間的距離在1∶10 000 DLG規(guī)定的容差以內(nèi),則要素接邊正確;若超過1∶10 000 DLG規(guī)定的容差,則不接邊。為了確保接邊檢查結(jié)果準(zhǔn)確、全面,軟件容差設(shè)置需比1∶10 000 DLG規(guī)定的容差略小[8]。
位置接邊檢查主要包括線要素位置接邊檢查和面要素位置接邊檢查。相鄰兩幅圖同屬性的線要素在接邊處端點距離需在容差范圍內(nèi),否則不接邊(圖1a);相鄰兩幅圖同屬性的面要素在接邊處兩節(jié)點的距離需在容差范圍內(nèi),否則不接邊(圖1b)[9]。
屬性接邊檢查主要包括線要素屬性接邊檢查和面要素屬性接邊檢查。相鄰兩幅圖接邊處線要素位置接邊,但屬性不一致,則判斷為不接邊(圖1c);相鄰兩幅圖接邊處面要素位置接邊,但屬性不一致,則判斷為不接邊(圖1d)。若出現(xiàn)位置和屬性均不接邊,軟件優(yōu)先進(jìn)行位置接邊判斷[10-12]。
在1∶10 000 DLG中,部分線要素為有向線,如河流、陡坎、圍墻等,在保證圖形位置、屬性接邊的情況下,需判斷有向線方向是否一致。判斷原則為相鄰圖幅接邊處一側(cè)的有向線終點應(yīng)是圖幅接邊處另一側(cè)的起點,反之同理[13]。如圖1e所示,表示有向線方向不一致,有向線不接邊。
圖1 不接邊示意圖
軟件設(shè)計包括跨帶數(shù)據(jù)檢查并投影轉(zhuǎn)換、提取接邊線、位置接邊檢查、屬性接邊檢查、方向一致性檢查、添加不接邊屬性描述和檢查結(jié)果輸出等內(nèi)容。具體設(shè)計路線如圖2所示。
圖2 接邊檢查軟件設(shè)計
2.2.1 坐標(biāo)轉(zhuǎn)換工具
坐標(biāo)轉(zhuǎn)換工具需調(diào)用的主要函數(shù)包括定義坐標(biāo)系、坐標(biāo)轉(zhuǎn)換和參數(shù)傳遞。坐標(biāo)轉(zhuǎn)換工具的設(shè)計信息如表1所示。
表1 坐標(biāo)轉(zhuǎn)換工具參數(shù)設(shè)計信息
2.2.2 相鄰圖幅判斷
相鄰圖幅判斷主要根據(jù)國家基本比例尺地形圖分幅和編號命名規(guī)則[14],1∶10 000 DLG國家標(biāo)準(zhǔn)分幅編號和命名規(guī)則示例如圖3所示。1∶10 000 DLG圖幅的行號和列號取值范圍均為001~096,相鄰圖幅判斷示意圖如圖4所示。判斷相鄰圖幅主要包括3種情況;
圖3 1∶10000標(biāo)準(zhǔn)分幅編號規(guī)則
圖4 相鄰圖幅判斷示意圖
1)當(dāng)西邊、北邊相鄰圖幅未跨百萬圖幅列號和行號時,西邊相鄰圖幅為圖幅列號數(shù)字碼減1;北邊相鄰圖幅為圖幅行號數(shù)字碼減1,其余編碼保持不變。
2)當(dāng)相鄰圖幅跨百萬圖幅列號時,西邊相鄰圖幅編號的1∶100萬圖幅列號數(shù)字碼應(yīng)減1,圖幅列號為96,其余編碼保持不變。
3)當(dāng)相鄰圖幅跨百萬圖幅行號時,北邊相鄰圖幅編號的1∶100萬圖幅行號為字符碼的后一位,如I的后一位為J,圖幅行號為96,其余編碼保持不變。
2.2.3 線要素接邊檢查
線要素接邊檢查時,根據(jù)1∶10 000 DLG數(shù)據(jù)中數(shù)據(jù)基礎(chǔ)CPTL層內(nèi)圖廓線提取接邊線,利用相交分析、對稱差求導(dǎo)、增加坐標(biāo)管理、屬性判斷函數(shù)實現(xiàn)線要素接邊檢查。線要素接邊檢查流程如圖5所示。
圖5 線要素接邊檢查流程圖
2.2.4 面要素接邊檢查
面要素接邊檢查時,根據(jù)1∶10 000 DLG數(shù)據(jù)中數(shù)據(jù)基礎(chǔ)CPTL層內(nèi)圖廓線提取接邊線,其中位置接邊檢查與線要素接邊一致;屬性接邊檢查則利用相交分析函數(shù)提取面要素與接邊線的相交線,再根據(jù)要素節(jié)點轉(zhuǎn)點函數(shù),提取相交線中點坐標(biāo),最后通過求異函數(shù)進(jìn)行檢查。面要素接邊檢查流程如圖6所示。
圖6 面要素接邊檢查流程圖
2.2.5 有向線方向一致性檢查
在保證位置、屬性接邊檢查正確的基礎(chǔ)上,有向線方向一致性檢查通過屬性選取要素層函數(shù)提取有向線層和接邊線層,并利用追加函數(shù)將提取的有向線層追加到提前建好的數(shù)據(jù)模板上;再利用要素節(jié)點轉(zhuǎn)點函數(shù),設(shè)置并獲取合并后有向線層的起點與終點;然后根據(jù)屬性選取要素層與接邊線求交的算法,得到有向線接邊線上的點;最后通過相交分析函數(shù)分別求自相交,即可得到有向線方向不一致的接邊錯誤。有向線方向一致性檢查流程如圖7所示。
圖7 有向線方向一致性檢查流程圖
2.2.6 接邊檢查工具實現(xiàn)
本文利用ArcGIS軟件自帶的二次開發(fā)腳本語言Python編寫代碼,集成相鄰圖幅判斷、線要素接邊檢查、面要素接邊檢查和有向線方向一致性檢查等功能,并對各檢查計算函數(shù)進(jìn)行封裝,實現(xiàn)了接邊檢查工具的開發(fā)。軟件界面簡單,使用快捷,包括輸入和輸出的界面。接邊檢查工具界面和運行界面如圖8所示。
圖8 接邊檢查工具界面和運行界面
本文選取某一測區(qū)相鄰4幅1∶10 000 DLG作業(yè)數(shù)據(jù)進(jìn)行接邊檢查,結(jié)果表明,軟件檢查結(jié)果準(zhǔn)確,無漏報、無誤報,生產(chǎn)人員通過檢查定位點和錯誤描述信息,可快速完成接邊錯誤的修改。檢查圖幅與錯誤描述如圖9所示,其中紅色線條表示接邊線,藍(lán)色小方框表示點狀地物軟件檢查結(jié)果。
圖9 檢查圖幅與錯誤描述示意圖
本文通過二次開發(fā)腳本語言Python編寫了相鄰圖幅線要素、面要素、有向線要素的自動接邊檢查算法,實現(xiàn)了相鄰圖幅檢查軟件的開發(fā)。實驗結(jié)果表明,該軟件檢查結(jié)果高效、準(zhǔn)確,對提高1∶10 000 DLG生產(chǎn)中接邊檢查效率和質(zhì)量具有重要意義。然而,本文只對相鄰圖幅要素接邊檢查進(jìn)行了研究和軟件實現(xiàn),如何實現(xiàn)在一定容差范圍內(nèi)同屬性要素的自動接邊,進(jìn)一步提高接邊的效率,是下一步需要研究的內(nèi)容。