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