2020FME博客大赛——FME在农村地籍调查项目中应用
?
作者:胡海峰
單位:拓土發展有限公司
一、摘要
本博文將結合工作中的具體項目來說明FME在其的具體應用。項目背景:應甲方要求通過外業調查農村集體建設用地及地上建筑物的空間位置、形狀、分布、權利人信息等情況,對所有外業調查成果精確上圖,以滿足不動產統一登記發證和上線要求。解決方案:首先建立不動產圖斑字段規范模板,外調回CAD數據進行批量處理,捋清宗地邏輯關系以及拓撲關系,迅速找出錯誤并修改;其次建立外調復核模板,對將內業清理出數據進行二次處理后按規范導出Esri Shapefile格式,最后進行平板數據配置,以備外業復查和驗收之用。成果與成效:可批量分析數據;降低了軟件切換率,更加便捷的修改成果;可隨時按任意規范要求處理更改數據參數;大大減輕了工作量。
二、需求分析
2.1背景分析
項目簡介:以分辨率0.1m高清影像為基礎,通過外業調查查清農村宅基地和農房和其他建設用地的空間位置、形狀、分布、權利人信息等情況,對外業調查成果加工處理,對所有外業調查成果精確上圖,維護圖形拓撲和屬性信息,對存量農房發證信息進行數據清理并掛接對應圖形數據,滿足不動產統一登記上線要求。
2.2問題分析
通常外調隊伍調回的初始CAD數據,或多或少存在一些問題。具體羅列如下:
2.2.1房屋屬性問題
1、屬性缺失
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖?? 2-1
無房屋用途但有房屋結構,房屋用途和房屋結構都無,有房屋結構但無房屋用途的。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-2
有房屋用途但無房屋結構的。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 2-3
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 2-4
權利人和宗地號缺失的。
?
?
?
2、房屋用途結構取反
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-5
?
3、房屋外框形狀錯誤
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-6
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-7
?
4、房屋屬性邏輯錯誤
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 2-8
2.2.2拓撲問題
1、房屋外框與宗地外框壓蓋問題
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 2-9
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-10
規范之一是房屋外框不能超出宗地外框,此時兩者產生了互相壓蓋,屬于邏輯性錯誤。
?
?
?
?
2、節點錯誤
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 2-11
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-12
一條線上除了端點連接處可添加節點外,不能有其余節點。
總結:初次處理完畢的CAD數據要通過FME轉換為SHP格式,導入平板電腦供外業進行成果檢查、甲方驗收使用,故數據必須包括房屋的邏輯屬性、房屋屬性、空間屬性,尺寸信息尤為重要,這是檢驗合格的重要標準之一。
我們按照規范要求,需最終把CAD數據處理成如下只包含房屋外框、宗地外框、房屋結構、房屋用途、權屬五個圖層的格式。這里先列舉下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 2-13
?
三、解決方案
3.1技術路線
我們通過FME來構造CAD數據質檢模板以和平板數據配置模板。技術路線如圖3-1所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-1
3.2不動產圖斑規范模板構建思路
總體思路是通過批處理對CAD中數據進行專項提取,并通過多線程處理后扇出其中符合規范以及明顯錯誤的數據,并最后通過Inspector進行可視化處理,錯誤一覽無余,可迅速對其進行修改。模板流程圖、模板運行成果圖、成果文件見圖分別見3-2、3-3、3-4:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-3
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-4
3.2.1建立批處理機制
首先合并過濾要素類,采用“\ *.dwg”對路徑下的數據進行模糊讀取,為批處理做準備,讀模塊要素類型詳見下圖3-5:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-5
其次,先后運用AttributeExposer轉換器進行屬性暴露,FilenamePartExtractor轉換器對暴露屬性數據的參數進行提取,GeometryFilter轉換器對數據的空間屬性和文本屬性進行相關過濾,StringReplacer等轉換器寫入正則表達式對扇出的文本數據進行抽取,VertexCreator等轉換器對文本數據的空間位置進行轉點處理,最后通過TestFilter轉換器對基于CAD數據的房屋屬性(宗地、權屬、房屋結構、房屋用途)進行端口輸出,整體流程圖詳見圖3-6:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-6
?
3.2.2建立數據過濾扇出機制
3.2.2.1注記未匹配
由于內業人員作圖問題,CAD圖中經常會出現注記未匹配的情況,即注記點沒有落在房屋外框或者宗地外框的空間范圍內,我們要確保注記的屬性要準確無誤的掛接到對應的框中,從而不造成房屋屬性的遺漏錯誤。通過PointOnAreaOverlayer轉換器進行點面的掛接,執行一個點在多邊形疊加,點接收包含面屬性,面接收包含點屬性,其rejected輸出為房屋結構未匹配專項shp圖層,并放入最終MDB成果中,后續通過Tester轉換器對沒有掛接到面上的空間點進行扇出,成功得到注記未匹配CAD數據。其轉換流程和處理結果表如圖3-7、3-8所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-7
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-8
通過inspector查看發現房屋結構和房屋用途的部分缺失,縮放至選擇后可對其進行初步的錯誤判斷,然后再根據導出的shp和CAD數據進行針對性更改。
3.2.2.2宗地外框導出
通過模板的批處理,我們可以獲取所能識別的所有宗地外框。通過TestFilter轉換器過濾出宗地外框,然后使用SpatialRelator轉換器進行空間屬性點與宗地面的空間連接,再通過AreaOnAreaOverlayer轉換器進行初步拓撲檢查,進一步查清壓蓋重疊面,最終結果扇出到MDB成果中。其轉換流程和處理結果表如圖3-9、3-10所示:
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-9
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-10
通過inspector我們可以看到宗地號有格式錯誤,權屬有遺漏,_overlaps則可通過排序知道是否有重復面,如果其值≥1,則證明此處有重復面,可以進行后續的縮放查看,根據其宗地號直接進行CAD位置查找,修正錯誤。
3.2.2.3房屋外框導出
通過模板的批處理,我們可以獲取所能識別的所有房屋外框。其原理與宗地外框的獲取方式類似,但關鍵之處用了AttributeCreator轉換器,因為CAD圖中會遇到標注檐廊、廊房、陽臺、飄窗、棚房的注記,按照規范我們需要將房屋結構圖層中此類注記全部定義為”無”,并將其屬性定義到相對應的房屋用途中,并通過GeometryExtractor轉換器重新進行幾何提取,CenterPointReplacer轉換器進行幾何轉空間點。其轉換流程和處理結果表如圖3-11、3-12所示:
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-11
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-12
通過inspector我們可以看到房屋屬性以及房屋對應的宗地屬性,以及candidates、_overlaps暴露出來的錯誤,與修改宗地外框相同,其后我們可進行針對性修改。
3.2.2.4房屋范圍線提取
此處提取的房屋范圍線是指房屋的最大范圍線,在保留生成房屋外框步驟的同時,運用Dissolver轉換器對房屋內部轉化生成的面進行融合處理,融合后生成的面即是房屋范圍線。其轉換流程和處理結果對比表如圖3-13、3-14所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-13
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-14
左側為房屋外框,右側為融合后的房屋外框即房屋范圍線,提取此房屋范圍線可用于對比與宗地外框的拓撲關系。
3.2.2.5宗地號重復、未掛接數據查看
首先宗地號重復1是在由TestFilter_3轉換器扇出的宗地屬性數據中進行重名篩選而導出的,此處未與宗地外框掛接,其通過DuplicateFilter轉換器實現,如果要素的關鍵屬性的值在轉換器中已經進入過,那么這些要素通過Duplicate端輸出,即輸出重復名稱值,通過inspector查看。其次宗地號重復2,DuplicateFilter轉換器連接的宗地外框輸入值即AreaCalculator_2的Output值,此時Duplicate端輸出的為宗地屬性(權屬/宗地號)與宗地外框掛接之后的重復值。宗地號未掛接屬性值得篩選通過FeatureMerger轉換器來實現,DuplicateFilter輸出的未重復值作為提供者,DuplicateFilter_3輸出的未重復值作為需求者,UnusedSupplier端口輸出則為對比之下未與宗地外框掛接的宗地號值。其轉換流程和處理結果表如圖3-15、3-16、3-17、3-19、3-20所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-15
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-16
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-17
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-18
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 3-19
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-20
3.2.2.6產生極小面數據查看
繪圖時線與線之間難免會出現拓撲錯誤,成面時會出現部分面積極小面,這里我們需要把他們找出來并處理掉。此處運用Tester轉換器做單一屬性過濾,輸入要素為房屋外框和宗地外框,根據要求我們選擇扇出面積小于5㎡的面,inspector查看位置進行判斷,是否面面壓蓋或者外框形狀錯誤等。其轉換流程和處理結果表如圖3-21、3-22。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-21
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-22
3.3外業核查模板構建思路
該模板較簡單,主要由三條鏈路組成。其一,進行宗地號重復的二次檢查,以確保最終成果無任何問題;其二,通過Reprojector轉換器對數據進行統一的坐標投影,確保數據能與影像圖套和,其三,主要通過LengthCalculator轉換器得到房屋實際邊長,供外業核對房屋尺寸。其轉換流程、成果表視圖、文件夾成果視圖如圖3-22、3-23、3-24所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-23
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-24
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 3-25
四、主要轉換器講解
4.1不動產圖斑規范模板部分
首先是StringReplacer的轉換器講解。這個轉換器主要是方便利用正則表達式,用匹配的字符串或被包含在字符串的規則表達式替換源屬性中的子字符串。運行示意圖如圖4-1所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 4-1
?
該轉換器主要起替換字符串作用,由于初始數據中圖層注記數據混亂,在此采用正則表達式對內容進行空值替換,再在其后用Tester轉換器對通過篩選后的值進行扇出,供下一層轉換器使用。轉換器詳細參數見圖4-2、4-3:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-3
?
其次是SpatialRelator轉換器,它的定義是確定點、線、面和文本要素之間的空間(拓撲)關系類型。在選擇的關系存在時,不改變要素的幾何圖形,并執行空間連接,以在要素之間選擇復制屬性。運行示意圖見圖4-4:
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-4
該轉換器的Supplier端口數據提供者為宗地、權屬的文本空間屬性,Requestor端口數據提供者為宗地線,即幾何數據,兩者進行空間連接。參數設置如圖4-5所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-5
測試參數列出了requestor和supplier 要素集之間可能出現的空間關系。可直接在列表中選擇,或從屬性值中選擇。我們在此選擇的是請求者壓蓋提供者,因為我們要在確保宗地數量完整的情況下再考慮其對應的屬性。Output輸出值將作為生成總地框的預處理數據。
然后是DuplicateFilter轉換器,他能根據一個或多個關鍵字段值,刪除值重復的要素。它能在匹配幾何類型的同時匹配各種屬性。對于這種情況,此轉換器比Matcher更有效率更加引人注目。重復值從Unique端口輸出。詳見圖4-6、4-7。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-6
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖? 4-7
4.2外業核查模板部分
該模板的主要作用是生成房屋邊長數據,在運用LengthCalculator轉換器之前,要對房屋外框進行處理。首先用PointVertexReplacer轉換器對房屋外框進行轉點操作,用一組點替換輸入線性或區域要素的幾何圖形。再用PointOnLineOverlayer轉換器,對點和線進行比較,劃分了一個點落在(或在一定距離內)線的線。每個生成的新線接收與原始線匹配的點的屬性,并且點接收來自線(空間連接)的屬性。要素(點和線)也會接收到遇到的匹配數的計數。詳細流程見圖4-8:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-8
為了便于LengthCalculator轉換器能順利讀取邊框的長度,利用PointOnLineOverlayer轉換器進行點線壓蓋操作,使得只保留端點處的點,最后兩點成線得到房屋外框的邊長并通過轉換器的line端口輸出數據,并通過下一轉換器得到房屋外框的每條邊長。轉換器的參數設置見圖4-9:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖? 4-9
五、總結與感想
初次接觸FME,雖不說顛覆了我對處理數據軟件的認知,但是其處理數據的能力確實強大!初時安圖是因為它做了重慶市的不動產登記系統,項目上時接觸了系統也用FME清理數據庫。疫情期間,梳理思路,梳理出項目上的FME使用過程,可能棱次不那么分明。在此還是多希望結識志同道合人士,擴大圈子,共同進步。期待與FME博客大賽的下一次相遇。
?
總結
以上是生活随笔為你收集整理的2020FME博客大赛——FME在农村地籍调查项目中应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: halcon read_ocr_trai
- 下一篇: halcon trainf_ocr_cl