張 磊
(1.福建省基礎地理信息中心,福建 福州 350003)
基于FME的地理國情普查公路連通性檢查方法研究
張 磊1
(1.福建省基礎地理信息中心,福建 福州 350003)
地理國情普查數據入庫前的檢查十分重要。介紹了一種基于FME編程技術并針對地理國情要素中公路連通性的檢查方法。該方法實現了兼顧屬性信息的公路連通性檢查及批量數據自動化處理。
FME;公路連通性;地理國情普查
地理國情普查數據在生產過程中嚴格執(zhí)行“兩級檢查、一級驗收”制度[1],驗收合格的數據匯交到建庫單位后還應按照數據入庫要求對各種成果數據再次檢查,檢查內容主要包括文件與結構一致性、拓撲一致性、其他邏輯一致性、空間參考正確性以及矢量數據接邊等幾個方面[2]。交通與水域網絡連通性檢查是地理國情要素數據拓撲一致性檢查的重要內容,也是提高交通與水域網絡弧段數據處理的基本要求。
對基礎地理信息數據進行質檢時,交通與水域要素連通性的檢查主要針對要素的圖形拓撲關系,即檢查要素是否存在懸掛點、偽節(jié)點等,但是對于地理國情普查的交通與水域數據來說,連通性檢查不僅需要檢查要素的圖形拓撲關系,還需要檢查要素屬性信息的邏輯連通性,即檢查道路與水系實體要素的邏輯表達在空間上是否連通。而常用的GIS工具對空間數據的檢查主要為圖形的拓撲關系檢查[3],針對屬性信息的邏輯性檢查時,通常采用人工目視的方式逐一要素檢查,可操作性差、工作量大,且容易錯漏。
目前,基于FME編程技術已經可以高效地實現兼顧屬性信息與矢量偽節(jié)點的檢查[4],有效地克服了屬性信息邏輯性檢查帶來的困難。因此,本文以地理國情普查數據檢查中公路連通性檢查為例,根據地理國情普查道路實體表達方式的特點,研究基于FME編程技術的公路連通性快速檢查方法。
地理國情普查數據中的公路要素在數據采集時,為保證某一條國道、省道或縣鄉(xiāng)道的貫通,需在重復路段的位置采集重復路段編號來表達道路實體,道路實體的表達方式見圖1,線路編碼與線段編號對應關系見表1,道路實體的屬性表示方法見表2。
圖1 道路實體的表達
表1 線路編碼與線段編號對應關系
表2 道路實體的屬性表示方法
在實際生產過程中,可能更注重公路要素的圖形拓撲關系,即路在橋梁、隧道、車渡等處不能斷開,保持公路要素在空間上的連通,卻經常忽略采集或修改其對應的屬性信息,從而導致某段道路實體的不連通。
2.1 FME的GIS互操作技術
FME是非常強大的第三方數據轉換工具[5],在數據格式轉換的同時添加一系列函數轉換器,完成投影轉換、屬性整理、空間分析等數據處理任務,實現了高效靈活的GIS互操作[6]。FME的核心模塊之一FME Workbench(工作臺)提供了可視化的數據轉換環(huán)境,降低了FME軟件的使用門檻,用戶可以通過簡單的圖形化編程函數快速搭建數據轉換模型,高效地實現各類數據的轉換操作。
2.2 檢查方法設計
地理國情普查公路連通性檢查對象為鄉(xiāng)級以上等級公路,主要包括高速公路、國道、省道、縣道和鄉(xiāng)道,判斷公路是否連通主要是判斷具有相同編碼的公路要素是否貫通,涉及線路編碼字段“RN”和重復路段編號字段“RNP”。因此,首先從地理國情要素數據中提取鄉(xiāng)級以上等級公路,然后依據“RNP”字段屬性值將要素拆分為多個獨立線路編碼的要素,接著將具有相同線路編碼的要素進行數據融合,最后根據線要素的懸掛情況判斷要素是否連通。基于FME編程技術,可按照圖2的步驟實現公路連通性的檢查。
圖2 公路連通性檢查流程圖
VB提供了簡單的Windows窗口化編程環(huán)境,可通過運用一些基本控件,簡單地設置輸入輸出參數。為了進一步簡化公路連通性檢查,在VB環(huán)境下進行程序可視化開發(fā),實現FME后臺批量處理數據,進一步降低FME的使用要求,使程序更加便捷高效[7]。
2.3 技術實現
1)在FME Workbench里新建工作空間,設置數據源為地理國情普查數據庫,程序自動加載LRDL公路層及其屬性字段,并自動映射到輸出數據庫文件[8]。
2)要素提取,利用“Tester”函數根據要素“GB”代碼從公路層中提取鄉(xiāng)道及以上級別的公路。
3)要素拆分,利用“AttributeSplitter”函數將提取要素按照“RNP”字段屬性值以“/”為標識進行要素拆分。
4)屬性復制,利用“AttributeCopier”函數將拆分后要素的“RNP”字段屬性值復制到“RN”字段中。
5)要素融合,先利用“AttributeKeeper”函數保留檢查公路連通性必需的“RN”字段,刪除其他多余字段;再利用“Linejoiner”函數將這些要素以“RN”字段進行融合。
6)空間分析,先利用“coordinateExtractor”函數,獲取每段要素首尾結點的坐標值;再利用“2DPointReplacer”函數把坐標值轉換為點要素;接著利用“PointonPointoverlayer”函數進行點要素的疊置分析。
7)連通性判斷,先利用“Tester”函數根據點要素重疊關系和“RN”屬性判斷該點是否為懸掛點;再利用“Counter”函數對具有相同線路編號的懸掛點個數進行統(tǒng)計;接著利用“FeatureMerger”函數根據“RN”字段值將懸掛點的統(tǒng)計信息掛接到對應的點要素中。
8)檢查結果輸出,利用“Tester”函數將具有相同線路編號且懸掛點個數大于2的點要素輸出到數據庫文件中。
9)完成FME程序設計后,將工程文件保存為“*.fme”格式。
10)在VB編程環(huán)境中開發(fā)批量處理程序,程序中主要用到列表框、文本框、按鈕和時間控件,分別在列表框控件中設置需要處理的數據庫文件,在文本框控件中分別設置“*.fme”格式轉換程序路徑和數據輸出路徑,在按鈕控件中利用Shell函數實現在Windows系統(tǒng)中調用外部DoS程序,自動運行FME數據處理程序[9],實現等級公路數據的批量自動檢查,并用時間控件實時監(jiān)控FME程序的執(zhí)行狀態(tài)。同時,程序界面中各參數設置統(tǒng)一設計為文件或文件夾的拖放模式,使程序的操作更加簡單、便捷。
以多個任務區(qū)的普查成果數據庫為實驗數據源,運行公路連通性檢查程序,驗證技術的可行性和程序的可靠性。具體操作如下:
1)啟動國情普查數據批處理工具,程序自動加載“道路拓撲檢查.fme”文件,將需要檢查的地理國情普查數據庫文件拖放到列表框中,將數據輸出文件夾拖放到數據存放路徑文本框中,點擊運行程序執(zhí)行公路連通性的批量檢查,操作界面見圖3。
2)在ArcMap中加載公路連通性檢查結果和原始“LRDL”要素層,根據道路的“RN”、“NAME”屬性判斷公路是否存在不合理懸掛點的情況,核查程序檢查結果是否正確。
實驗結論:
圖3 數據批處理工具
1)程序操作簡便,運行穩(wěn)定高效,實現了公路連通性的批量自動檢查,檢查結果可靠。
2)由于公路被任務區(qū)邊界分割為多段要素,從而產生了懸掛點形成孤立要素的情況,需結合接邊數據檢查其是否合理。
3)在空間上相互獨立的兩條公路存在線路編碼重復的現象,需根據交通行業(yè)專題資料檢查其正確性。
4)由于部分等級道路在數據生產時缺少資料,“RN”屬性值填寫為默認值,導致在要素提取時遺漏這部分數據,因此還需用“GB”代碼單獨提取這部分等級道路,并采用人工檢查的方式依據“GB”和“NAME”屬性值對公路連通性進行補充檢查。
地理國情普查是一項重大的國情國力調查,普查成果數據的質量直接影響到今后的數據庫建設、普查成果統(tǒng)計分析和國情監(jiān)測與應用等[2]。本文以地理國情普查公路連通性檢查為例,基于FME編程技術按照等級公路要素提取與拆分、屬性復制與刪除、要素懸掛判斷、檢查結果輸出等步驟,高效地實現了兼顧屬性信息的公路連通性檢查,同時結合VB編程技術進一步降低檢查軟件的使用要求,使得公路連通性檢查可批量自動進行,為普查成果數據質量檢查方法研究提供了新的思路。
[1] 賈佳.地理國情普查質量監(jiān)督檢查驗收方法[J].測繪與空間地理信息,2014,37(6):220-221
[2] 國家測繪地理信息局.第一次全國地理國情普查數據庫建設實施方案[S].北京:國家測繪地理信息局,2015
[3] 于啟升.ArcGIS拓撲查錯功能在地理國情普查中的應用[J].地礦測繪,2015,31(1):41-43
[4] 張偉.兼顧屬性信息的矢量偽節(jié)點檢查及自動消除方法[J].地理空間信息,2014,12(2):90-92
[5] 徐昌榮,沈晶,施魁元.基于FME的GIS互操作探討[J].江西理工大學學報,2006,27(3):1-3
[6] 陳影,程耀東,閆浩文.利用FME進行GIS數據的無損轉換[J].測繪科學,2007,32(2):75-77
[7] 高東生,馬冬青.淺談如何利用VB和FME開發(fā)技術轉換數據:以香港房屋署數據轉換入庫項目為例[J].價值工程,2011,30(29):159-160
[8] 黃靜,袁建東.FME在空間數據處理中的應用[J].測繪標準化,2011,27(2):40-42
[9] 韓在峰,趙麗敏,于瀅.利用VB實現DoS程序WINDoWS化執(zhí)行[J].德州學院學報,2002,18(2):72-73
P208
B
1672-4623(2016)08-0023-03
10.3969/j.issn.1672-4623.2016.08.008
張磊,工程師,主要從事地理信息系統(tǒng)數據的處理及應用工作。
2016-03-17。
項目來源:福建省測繪地理信息局2015年局科技創(chuàng)新資助項目(2014J12)。