王海恒,張向陽,郭蘭勤,王 璐,何 毅
(1.自然資源部第一地理信息制圖院,陜西 西安 710054;2.西北大學,陜西 西安 710127)
1∶10 000 數字線劃圖(DLG)是與現有線劃基本一致的各地圖要素的矢量數據集,保存了各要素間空間關系和相關的屬性信息,也是信息查詢的主要方式[1-2]。1∶10 000 DLG通常按照規定的經差和緯差分幅存儲,具有精度高、現勢性好、要素信息豐富等特點,是國家和地區重要的基礎性、戰略性信息資源,是經濟發展、科學規劃、環境保護、資源開發、應急保障、工程建設等工作的重要依據[3]。
在1∶10 000 DLG分幅數據的生產與更新過程中,完成數據采集、編輯后,需進行圖幅之間的接邊檢查工作[4-5]。傳統的接邊檢查方法由人工逐層逐要素檢查,過程繁瑣、耗時耗力,且易產生主觀判斷錯誤和漏檢查的問題[6]。本文基于二次開發腳本語言Python,通過一定的空間分析算法研究,編程實現了1∶10 000 DLG批量接邊檢查軟件,包括要素屬性檢查、位置檢查、有向線方向一致性檢查和跨帶檢查[7]等功能。該軟件界面簡單、操作便捷,返回檢查結果快速、準確、直觀,可實現多圖幅、多要素的接邊檢查。
對1∶10 000 DLG分幅數據命名的正確性進行檢查,對每幅圖中各要素分類數據層名和投影坐標系統進行檢查,確保基礎數據和參數的正確性。
根據國家基本比例尺地形圖分幅和編號命名規則判斷相鄰圖幅,為了避免重復檢查、減少軟件運行產生的冗余,僅對每幅圖西北兩邊的相鄰圖幅進行判斷。
若圖幅接邊處圖形要素之間的距離在1∶10 000 DLG規定的容差以內,則要素接邊正確;若超過1∶10 000 DLG規定的容差,則不接邊。為了確保接邊檢查結果準確、全面,軟件容差設置需比1∶10 000 DLG規定的容差略小[8]。
位置接邊檢查主要包括線要素位置接邊檢查和面要素位置接邊檢查。相鄰兩幅圖同屬性的線要素在接邊處端點距離需在容差范圍內,否則不接邊(圖1a);相鄰兩幅圖同屬性的面要素在接邊處兩節點的距離需在容差范圍內,否則不接邊(圖1b)[9]。
屬性接邊檢查主要包括線要素屬性接邊檢查和面要素屬性接邊檢查。相鄰兩幅圖接邊處線要素位置接邊,但屬性不一致,則判斷為不接邊(圖1c);相鄰兩幅圖接邊處面要素位置接邊,但屬性不一致,則判斷為不接邊(圖1d)。若出現位置和屬性均不接邊,軟件優先進行位置接邊判斷[10-12]。
在1∶10 000 DLG中,部分線要素為有向線,如河流、陡坎、圍墻等,在保證圖形位置、屬性接邊的情況下,需判斷有向線方向是否一致。判斷原則為相鄰圖幅接邊處一側的有向線終點應是圖幅接邊處另一側的起點,反之同理[13]。如圖1e所示,表示有向線方向不一致,有向線不接邊。

圖1 不接邊示意圖
軟件設計包括跨帶數據檢查并投影轉換、提取接邊線、位置接邊檢查、屬性接邊檢查、方向一致性檢查、添加不接邊屬性描述和檢查結果輸出等內容。具體設計路線如圖2所示。

圖2 接邊檢查軟件設計
2.2.1 坐標轉換工具
坐標轉換工具需調用的主要函數包括定義坐標系、坐標轉換和參數傳遞。坐標轉換工具的設計信息如表1所示。

表1 坐標轉換工具參數設計信息
2.2.2 相鄰圖幅判斷
相鄰圖幅判斷主要根據國家基本比例尺地形圖分幅和編號命名規則[14],1∶10 000 DLG國家標準分幅編號和命名規則示例如圖3所示。1∶10 000 DLG圖幅的行號和列號取值范圍均為001~096,相鄰圖幅判斷示意圖如圖4所示。判斷相鄰圖幅主要包括3種情況;

圖3 1∶10000標準分幅編號規則

圖4 相鄰圖幅判斷示意圖
1)當西邊、北邊相鄰圖幅未跨百萬圖幅列號和行號時,西邊相鄰圖幅為圖幅列號數字碼減1;北邊相鄰圖幅為圖幅行號數字碼減1,其余編碼保持不變。
2)當相鄰圖幅跨百萬圖幅列號時,西邊相鄰圖幅編號的1∶100萬圖幅列號數字碼應減1,圖幅列號為96,其余編碼保持不變。
3)當相鄰圖幅跨百萬圖幅行號時,北邊相鄰圖幅編號的1∶100萬圖幅行號為字符碼的后一位,如I的后一位為J,圖幅行號為96,其余編碼保持不變。
2.2.3 線要素接邊檢查
線要素接邊檢查時,根據1∶10 000 DLG數據中數據基礎CPTL層內圖廓線提取接邊線,利用相交分析、對稱差求導、增加坐標管理、屬性判斷函數實現線要素接邊檢查。線要素接邊檢查流程如圖5所示。

圖5 線要素接邊檢查流程圖
2.2.4 面要素接邊檢查
面要素接邊檢查時,根據1∶10 000 DLG數據中數據基礎CPTL層內圖廓線提取接邊線,其中位置接邊檢查與線要素接邊一致;屬性接邊檢查則利用相交分析函數提取面要素與接邊線的相交線,再根據要素節點轉點函數,提取相交線中點坐標,最后通過求異函數進行檢查。面要素接邊檢查流程如圖6所示。

圖6 面要素接邊檢查流程圖
2.2.5 有向線方向一致性檢查
在保證位置、屬性接邊檢查正確的基礎上,有向線方向一致性檢查通過屬性選取要素層函數提取有向線層和接邊線層,并利用追加函數將提取的有向線層追加到提前建好的數據模板上;再利用要素節點轉點函數,設置并獲取合并后有向線層的起點與終點;然后根據屬性選取要素層與接邊線求交的算法,得到有向線接邊線上的點;最后通過相交分析函數分別求自相交,即可得到有向線方向不一致的接邊錯誤。有向線方向一致性檢查流程如圖7所示。

圖7 有向線方向一致性檢查流程圖
2.2.6 接邊檢查工具實現
本文利用ArcGIS軟件自帶的二次開發腳本語言Python編寫代碼,集成相鄰圖幅判斷、線要素接邊檢查、面要素接邊檢查和有向線方向一致性檢查等功能,并對各檢查計算函數進行封裝,實現了接邊檢查工具的開發。軟件界面簡單,使用快捷,包括輸入和輸出的界面。接邊檢查工具界面和運行界面如圖8所示。

圖8 接邊檢查工具界面和運行界面
本文選取某一測區相鄰4幅1∶10 000 DLG作業數據進行接邊檢查,結果表明,軟件檢查結果準確,無漏報、無誤報,生產人員通過檢查定位點和錯誤描述信息,可快速完成接邊錯誤的修改。檢查圖幅與錯誤描述如圖9所示,其中紅色線條表示接邊線,藍色小方框表示點狀地物軟件檢查結果。

圖9 檢查圖幅與錯誤描述示意圖
本文通過二次開發腳本語言Python編寫了相鄰圖幅線要素、面要素、有向線要素的自動接邊檢查算法,實現了相鄰圖幅檢查軟件的開發。實驗結果表明,該軟件檢查結果高效、準確,對提高1∶10 000 DLG生產中接邊檢查效率和質量具有重要意義。然而,本文只對相鄰圖幅要素接邊檢查進行了研究和軟件實現,如何實現在一定容差范圍內同屬性要素的自動接邊,進一步提高接邊的效率,是下一步需要研究的內容。