韋前
(黔南州自然資源調(diào)查規(guī)劃院 貴州黔南 558000)
FME 軟件是加拿大Safe Software 公司開發(fā)的空間數(shù)據(jù)轉(zhuǎn)換處理系統(tǒng)。支持超過270多種不同空間數(shù)據(jù)格式(模型)之間的轉(zhuǎn)換,為進(jìn)行快速、高質(zhì)量、多需求的數(shù)據(jù)轉(zhuǎn)換應(yīng)用提供了高效、可靠的手段[1]。FME 致力于將GIS要素同構(gòu)化并向用戶提供組件以使用戶能夠?qū)?shù)據(jù)處理為所需的表達(dá)方式,整個(gè)過程無須寫任何代碼,直接調(diào)用相應(yīng)的轉(zhuǎn)換器即可。
目前,建設(shè)用地審查報(bào)批地類認(rèn)定需追溯至2009年,“二調(diào)”圖斑地類凈面積計(jì)算較為復(fù)雜,目前主流做法主要是使用ArcGIS空間分析功能,人工一步步地分析統(tǒng)計(jì)[2];或基于ArcGIS 的模型構(gòu)造器搭配Python 腳本,即“建模+人工統(tǒng)計(jì)”等半自動(dòng)方式來實(shí)現(xiàn)圖斑凈面積的測(cè)算[3],但由于“二調(diào)”數(shù)據(jù)的DLTB、LXDW、XZDW內(nèi)部以及各圖層之間存在拓?fù)溴e(cuò)誤,導(dǎo)致該方法計(jì)算得到的圖斑凈面積精度不高,加上計(jì)算過程較復(fù)雜、不夠嚴(yán)謹(jǐn),導(dǎo)致適應(yīng)性不佳。
本文針對(duì)“二調(diào)”圖斑地類凈面積計(jì)算的特點(diǎn),通過基于FME 軟件開發(fā)了一套實(shí)現(xiàn)高效讀取基礎(chǔ)數(shù)據(jù)庫、精準(zhǔn)處理、自動(dòng)生成地類結(jié)構(gòu)面積表的模板,有效解決了自然資源管理領(lǐng)域需要計(jì)算圖斑地類凈面積的耗費(fèi)的大量人力物力。
首先研究“二調(diào)”數(shù)據(jù)庫標(biāo)準(zhǔn)[4],確定圖斑面積、零星地物面積、線狀地物面積和田坎面積的計(jì)算方法、計(jì)算路徑,以及各項(xiàng)參數(shù)的數(shù)據(jù)來源。數(shù)據(jù)庫在建立之初,以上各類面積已經(jīng)計(jì)算好并存在DLTB、LXDW、XZDW這3個(gè)要素類中。但是在實(shí)際使用時(shí)會(huì)有圖斑發(fā)生分割的情況,此時(shí)就需要以上幾類面積進(jìn)行重新計(jì)算。
圖斑地類凈面積在數(shù)據(jù)庫中對(duì)應(yīng)的字段名稱為TBDLMJ,其計(jì)算過程如式(1)所示:
式(1)中:TBDLMJi為圖斑i的地類凈面積;TBMJi為圖斑面積;XZDWMJj該圖斑內(nèi)線狀地物j的面積;LXDWMJj為該圖斑內(nèi)零星地物j的面積;TKMJi為田坎面積。
線狀地物面積在數(shù)據(jù)庫中對(duì)應(yīng)的字段名稱為XZDWMJ,其計(jì)算過程如式(2)所示:
式(2)中:CDi為線狀地物寬度;KDi為線狀地物寬度;KCBLi為線狀地物扣除比例,取值為0.5或者1。
田坎面積在該圖斑內(nèi)的所有線狀地物和零星地物面積計(jì)算完畢之后,根據(jù)田坎系數(shù)來計(jì)算得到,其計(jì)算過程如式(3)所示:
式(3)中,TKXSi為該圖斑的田坎系數(shù)。
文章基于FME 實(shí)現(xiàn)國土二調(diào)圖斑地類凈面積的技術(shù)路線如圖1所示。
圖1 技術(shù)路線圖
根據(jù)“二調(diào)”數(shù)據(jù)庫標(biāo)準(zhǔn)分析得知,線狀地物扣除比例是由線狀地物與圖斑的關(guān)系決定的。當(dāng)線狀地物位于兩個(gè)圖斑的邊界上,則該線狀地物分別被兩個(gè)圖斑各扣除50%,KCBL 取值為0.5,KCTBBH1 和KCTBBH2記錄相應(yīng)兩個(gè)地類圖斑的圖斑編號(hào);當(dāng)線狀地物位于單個(gè)圖斑內(nèi),則該線狀地物全部被這個(gè)圖斑扣除,KCBL取值為1,KCTBBH1 記這個(gè)地類圖斑的圖斑編號(hào),KCTBBH2為空。這里如果采用ArcGIS軟件相交分析,受拓?fù)洳粐?yán)謹(jǐn)和軟件容差的影響,可能使本來與某個(gè)地類圖斑存在繼承扣除關(guān)系的線狀地物沒有與對(duì)應(yīng)地類圖斑相交上,導(dǎo)致后面的計(jì)算全錯(cuò)。FME 可以根據(jù)TBBH 和KCTBBH 來實(shí)現(xiàn)線狀地物和地類圖斑之間的繼承關(guān)系來掛接,完美避開了這種問題。
零星地物只會(huì)位于某個(gè)地類圖斑的內(nèi)部,LXDW的ZLTBBH 記錄所屬地類圖斑的圖斑編號(hào),ZLDWDM 記錄該零星地物所屬的村級(jí)坐落代碼,TBBH的值只會(huì)在一個(gè)村范圍內(nèi)是唯一的。同樣,如果這里采用ArcGIS相交分析,受拓?fù)洳粐?yán)謹(jǐn)和軟件容差的影響,本來屬于某個(gè)地類圖斑的零星地物可能會(huì)落在邊界上或邊界外的情況。而FME可以根據(jù)TBBH和ZLDWDM來實(shí)現(xiàn)零星地物和地類圖斑圖層之間的繼承關(guān)系來掛接,就不存在這種錯(cuò)誤。
由式(1)可知,計(jì)算圖斑凈面積時(shí)需要DLTB、XZDW、LXDW這3個(gè)圖層。在ArcGIS中需把3個(gè)圖層所有要素全部讀取參與計(jì)算,讀取慢、程序運(yùn)行也慢。FME可以實(shí)現(xiàn)按范圍讀取數(shù)據(jù),只需在Feature Reader 轉(zhuǎn)換器的Spatial Filter(空間過濾)選中Bounding Boxes OGCIntersect(外接矩形相交)即可實(shí)現(xiàn)只讀取與項(xiàng)目范圍線的外接矩形相交或包含的所有要素。
(1)通過項(xiàng)目范圍線使用Clipper轉(zhuǎn)換器得到項(xiàng)目范圍內(nèi)的DLTB、XZDW、LXDW這3個(gè)圖層。
(2)DLTB、LXDW 和XZDW 的整理。DLTB 使用Aggregator 轉(zhuǎn)換器添加BSM 字段來分組融合DLTB 要素,使往下的步驟都還原到原始的圖斑上去。重新計(jì)算面積,并過濾掉小于0.1 m2因容差產(chǎn)生的細(xì)小碎斑。LXDW只需換算單位。XZDW需重新計(jì)算長度并根據(jù)寬度計(jì)算面積,因?yàn)橐粋€(gè)線要素有KCTBBH1和KCTBBH2,需要分離成兩個(gè)要素,分別去參加下一步的掛接。
(3)LXDW、XZDW掛接到DLTB。LXDW使用FeatureMerger轉(zhuǎn)換器,通過TBBH和ZLDWDM的一致性匹配來掛接。因一個(gè)DLTB要素可能會(huì)涉及多個(gè)LXDW,所以此處需勾選FME軟件強(qiáng)大的Generate List(生成列表)功能,使多個(gè)LXDW以List(列表)的形式掛接到同一個(gè)DLTB要素上去,實(shí)現(xiàn)一對(duì)多的連接,這是ArcGIS軟件無法實(shí)現(xiàn)的[5]。XZDW采用KCTBBH和ZLDWDM來掛接,同時(shí)勾選列表。
(4)匯總各類扣除面積。使用ListSummer 轉(zhuǎn)換器分別匯總每個(gè)地類圖斑要素的線狀地物和零星地物面積,分別存放在XZDWMJ和LXDWMJ字段中。
(5)計(jì)算田坎面積。根據(jù)前面步驟計(jì)算并存放在字段中的圖斑面積、線狀地物面積和零星地物面積,使用式(3)計(jì)算田坎面積。
根據(jù)以上步驟計(jì)算匯總之后,此時(shí)用式(1)計(jì)算圖斑地類凈面積,可能會(huì)出現(xiàn)扣除面積大于圖斑面積而地類凈面積位為負(fù)值的異常情況。根據(jù)圖斑面積與扣除面積之間大小關(guān)系分3種情形分別處理(見圖2)。
圖2 分不同情況分別計(jì)算地類凈面積
(1)當(dāng)“圖斑面積-線狀地物面積-零星地物面積-田坎面積>0”時(shí),直接按式(1)計(jì)算圖斑地類凈面積和田坎面積,而線狀地物和零星地物直接使用List Exploder 轉(zhuǎn)換器把每個(gè)地類圖斑要素掛接的所有的線狀地物和零星地物分離開來,然后使用Statistics Calculator轉(zhuǎn)換器按地類名稱分組分別統(tǒng)計(jì)各地類面積[6]。
(2)當(dāng)零星地物大于圖斑面積時(shí),按圖斑地類凈面積直接取值為圖斑面積,地類按全是零星地物的地類,其余同上。
(3)當(dāng)線狀地物大于圖斑面積時(shí),按圖斑地類凈面積直接取值為圖斑面積,地類按全是線狀地物的地類,其余同上。
(1)首先使用讀入一個(gè)地類結(jié)構(gòu)面積表,然后通過使用Feature Merger轉(zhuǎn)換器,以DLMC作為匹配字段,使上一步按3種情形計(jì)算得到的各類面積掛接到面積表中去,因?yàn)橐粋€(gè)地類名稱會(huì)有多個(gè)匹配項(xiàng),只有一個(gè)圖斑地類,但是零星地物和線狀地物,需要在Feature Merger轉(zhuǎn)換器中開啟列表功能[7]。
(2)使用List Summer 對(duì)上一步的列表記錄分別每種地類圖斑匯總零星地物面積和線狀地物面積。
(3)將每種地類的圖斑地類面積、線狀地物面積和零星地物面積合計(jì),存入地類面積字段。
經(jīng)過排序、刪除數(shù)據(jù)處理過程產(chǎn)生的多余字段等整理工作后,在FME軟件寫模塊的Parameter(參數(shù))里的Templatefile(模板文件)選擇二調(diào)地類結(jié)構(gòu)面積表作為模板輸出表格[8],最后直接在項(xiàng)目范圍線所在文件夾生成結(jié)果表格。
本文介紹的圖斑地類凈面積計(jì)算程序應(yīng)用于某公路項(xiàng)目地類面積統(tǒng)計(jì),該項(xiàng)目占地面積為56.59 hm2,全長為52.63 km,涉及214個(gè)“二調(diào)”地類圖斑、7個(gè)零星地物和247條線狀地物,整個(gè)FME模板運(yùn)行僅用了6.1 s。應(yīng)用于某水庫項(xiàng)目地類面積統(tǒng)計(jì),該項(xiàng)目占地面積114.18 hm2,涉及71個(gè)“二調(diào)”地類圖斑、5個(gè)零星地物和89條線狀地物,整個(gè)FME模板運(yùn)行僅用了4.0 s??梢愿怕怨浪惚疚慕榻B的圖斑地類凈面積比傳統(tǒng)方法快上百倍。
本文在研究國土二調(diào)數(shù)據(jù)標(biāo)準(zhǔn)和分析圖斑地類凈面積計(jì)算公式的基礎(chǔ)上,利用FME軟件只需選定需要查詢的“二調(diào)”年度和需要查詢的范圍線,通過多個(gè)功能轉(zhuǎn)換器數(shù)據(jù)處理,在沒有使用專門建庫軟件和敲寫代碼編程的情況下,實(shí)現(xiàn)了零代碼計(jì)算圖斑地類凈面積,門檻低、便于操作,方便進(jìn)一步修改,運(yùn)行效率高,程序均在幾秒之內(nèi)運(yùn)行結(jié)束。整個(gè)計(jì)算過程流程化,可讀性強(qiáng)和方便推廣;同時(shí)能根據(jù)實(shí)際情況和各地要求,對(duì)程序進(jìn)行針對(duì)性調(diào)整,具有很好的適應(yīng)性,能勝任快速地計(jì)算圖斑地類凈面積,為國土空間用途管制、耕地保護(hù)等領(lǐng)域提供高效的解決方案。