邵保華,袁顯磊
(1.黑龍江省林業(yè)監(jiān)測規(guī)劃院,哈爾濱 150080;2.黑龍江省林業(yè)科學研究所)
近些年,國家正大力推動各行各業(yè)的信息化發(fā)展進程,林業(yè)也不例外,“數(shù)字林業(yè)”正是國家推動林業(yè)信息化發(fā)展的具體體現(xiàn)。如今的林業(yè)生產(chǎn)經(jīng)營管理模式隨著林業(yè)信息化的推進,新技術(shù),新思路,新方法的引進正逐步發(fā)生著變化。作為一名從事林業(yè)信息化建設(shè)工作的具體工作人員,在我參加工作的十多年時間里,林業(yè)資源調(diào)查從背羅盤儀找樣地,在紙質(zhì)介質(zhì)上記錄小班調(diào)查信息,外業(yè)結(jié)束回來后在BASIC編制的程序中用一臺386機器進行數(shù)據(jù)錄入工作,用Excel電子表格進行一些統(tǒng)計報表的計算,發(fā)展到如今使用PDA進行外業(yè)數(shù)據(jù)采集,PDA上裝載了高精度的影像資料,可以直接在其上進行林業(yè)區(qū)劃和勾繪,并且安裝有一套系統(tǒng)的數(shù)據(jù)采集軟件,不僅可以存儲大量小班信息,而且還有實用的邏輯檢查、空間拓撲檢查等質(zhì)量控制功能。新技術(shù)、新方法在林業(yè)生產(chǎn)實際工作中發(fā)揮了巨大的作用,不僅提高了勞動效率,還在一定程度上節(jié)約了生產(chǎn)時間,生產(chǎn)經(jīng)費。
林業(yè)信息化建設(shè)對數(shù)據(jù)的質(zhì)量提出了更高的要求。從早期單一的線劃圖發(fā)展到如今多源,多層次的數(shù)據(jù)。(這里指的數(shù)據(jù)是廣義上的,不僅僅指地理信息屬性數(shù)據(jù))并且對數(shù)據(jù)的空間幾何關(guān)系,屬性內(nèi)部邏輯關(guān)系等都有了更高的要求。隨著采集的數(shù)據(jù)量越來越大,對數(shù)據(jù)的處理就越來越重要,其中的一些問題也逐漸顯現(xiàn)出來,比如數(shù)據(jù)的格式需要在各種不同的GIS軟件中轉(zhuǎn)來轉(zhuǎn)去,數(shù)據(jù)自動化處理的程度不高,海量數(shù)據(jù)處理耗時長,數(shù)據(jù)檢查出的錯誤修改費時費力等。很多商業(yè)GIS軟件公司,科研院所也在探尋良好的解決方案,比如ESRI公司的自動化地圖生產(chǎn)擴展插件,云GIS;Safe公司的FME軟件等等。本文所要介紹的就是加拿大Safe公司的FME軟件。
FME,全稱為Feature Manipulate Engine(要素處理引擎)。是加拿大Safe公司開發(fā)的一套完整的空間數(shù)據(jù)解決方案。它能實現(xiàn)不同GIS數(shù)據(jù)格式的無損讀寫和轉(zhuǎn)換,以及數(shù)據(jù)重構(gòu)和質(zhì)量控制,不同數(shù)據(jù)的相互整合,自動化數(shù)據(jù)處理等等。通過Python腳本語言的引用,它還能實現(xiàn)用戶自定義的變換和對變換過程更細微的控制。FME是由幾個軟件組成的一個套件,有專門瀏覽各類GIS數(shù)據(jù)的瀏覽軟件,有可以快速在各種GIS數(shù)據(jù)格式之間進行格式轉(zhuǎn)換的軟件,還有功能更細化,可以利用參數(shù)控制更多轉(zhuǎn)換細節(jié)的工作臺軟件。FME的轉(zhuǎn)換控制主要是通過其提供的上百個Transformer(變換函數(shù))實現(xiàn)的。
FME產(chǎn)品主要功能模塊介紹:
當用戶定制自己的數(shù)據(jù)轉(zhuǎn)換時,利用FME Workbench模塊,只需要在直觀的界面中“指指點點”就可以輕易完成非常復雜的數(shù)據(jù)轉(zhuǎn)換任務(wù),而且數(shù)據(jù)轉(zhuǎn)換質(zhì)量非常理想;能夠可視化地定義從原數(shù)據(jù)到目標數(shù)據(jù)的對應(yīng)關(guān)系(屬性和圖形);同時還可以使用該模塊進行不同格式數(shù)據(jù)源的合并工作。
該模塊是FME的旗艦產(chǎn)品,是一個獨立運行的強大的數(shù)據(jù)轉(zhuǎn)換程序,采用drag-and-drop界面,用戶可以輕松地、精確地轉(zhuǎn)換、存儲100多種不同格式的數(shù)據(jù),用戶也可以完成比較復雜的數(shù)據(jù)處理過程,比如給數(shù)據(jù)加屬性值等。
該模塊用于快速預(yù)覽不同格式的數(shù)據(jù)。用戶可以在使用Workbench或Translator.模塊時,在做數(shù)據(jù)轉(zhuǎn)換之前預(yù)覽轉(zhuǎn)換數(shù)據(jù)(屬性和圖形)。
以下將通過幾個具體實例來介紹FME在林業(yè)資源數(shù)據(jù)處理中的應(yīng)用。
在林業(yè)實際生產(chǎn)過程中,我們常常會遇到此類問題。比如近年來的林地征占用業(yè)務(wù),開發(fā)和建設(shè)單位往往習慣于用AutoCAD來進行工程制圖,在制作相應(yīng)的林業(yè)專題圖時,我們需要的一些數(shù)據(jù)是在AutoCAD的工程文件中,這時我們往往需要做一系列繁復的轉(zhuǎn)換過程才能將數(shù)據(jù)導出ArcGis可以編輯的格式,將CAD文件導入其它平臺,再進行繁雜的加工,建立拓撲,去除懸掛節(jié)點,導入屬性,轉(zhuǎn)換坐標系統(tǒng)等,同時這種轉(zhuǎn)換很多時候是會丟失一些信息的。這種信息的丟失很可能會導致最終的轉(zhuǎn)換成果在目標環(huán)境中不能使用,導致轉(zhuǎn)換工作失敗。除了需要從AutoCAD轉(zhuǎn)換到ArcGIS,我們可能會還需要從MapGIS轉(zhuǎn)換到ArcGIS,Google Earth KML轉(zhuǎn)換為Shape文件等等諸如此類的不同GIS數(shù)據(jù)格式之間的相互轉(zhuǎn)換,而且我們還需要這種轉(zhuǎn)換不能丟失任何數(shù)據(jù)。FME就能輕松解決此類問題,F(xiàn)ME支持超過250種主流的GIS數(shù)據(jù)格式,并且支持它們之間的無損轉(zhuǎn)換。而且這種轉(zhuǎn)換,如果你不想過多介入轉(zhuǎn)換過程,你可以選擇快速轉(zhuǎn)換軟件,如果你想更多的控制轉(zhuǎn)換細節(jié),比如轉(zhuǎn)換的中間過程你想加入一些處理過程,那你可以使用FME套件中的Workbench模塊。
圖1 不同數(shù)據(jù)格式之間相互轉(zhuǎn)換
外業(yè)采集回來的數(shù)據(jù)雖然已經(jīng)經(jīng)過初步檢查,但為了滿足林業(yè)信息化建設(shè)對數(shù)據(jù)質(zhì)量的高要求,只有符合了更多質(zhì)量要求的資源數(shù)據(jù)才能進入資源數(shù)據(jù)庫中。比如我們需要檢查數(shù)據(jù)的以下特點:
空間幾何特征,數(shù)據(jù)是否在正確的空間位置;
要素的符號特征,顏色,類型,符號等是否一致,符合規(guī)則;
數(shù)據(jù)的屬性域是否在規(guī)則要求的范圍內(nèi);
要素類型是否正確,要素是否存在冗余;
要素包含的數(shù)量是否正確,要素屬性之間的內(nèi)在關(guān)系是否符合要求;
ISO 19100系列標準定義了國際上對于GIS數(shù)據(jù)的質(zhì)量檢查標準[1]。
FME提供了很多用于質(zhì)量控制的transformer(變換函數(shù)),現(xiàn)列舉其中一個比較典型的函數(shù):MRF2DCleaner。之所以說它典型,是因為這個函數(shù)可以說是一個函數(shù)包,它包含了很多單獨用于數(shù)據(jù)質(zhì)量控制的函數(shù),這個函數(shù)是需要額外付費使用的。它基于MRFCleanFactory建立,使MRF清理技術(shù)集成到FME上。MRF2DCleaner函數(shù)可以修補輸入數(shù)據(jù)的幾何問題,特別是把數(shù)據(jù)從CAD轉(zhuǎn)移到GIS的時候,如線超過或小于用戶指定的容差。對于多圖層和多容差二維數(shù)據(jù)清理是非常有用的。典型應(yīng)用包括地形圖和資源數(shù)據(jù)的修正,并把修正后的數(shù)據(jù)從一個系統(tǒng)轉(zhuǎn)移到另一個系統(tǒng)。MRF2DCleaner包括下面的功能:
fuzzy tolerance
extending lines
weeding lines
joining lines
processing short elements
removing gaps
removing duplicates
removing dangles
performing conflation
函數(shù)執(zhí)行參數(shù)設(shè)置窗口如下圖所示。
圖2 MRF2DCleaner函數(shù)參數(shù)設(shè)置窗口
幾點說明:
如果Remove Duplicate Geometries設(shè)置為Yes,重復的要素被刪除。如果要素的幾何在容差范圍內(nèi),被認為是重復的,只有使用一個較小的容差,要素才會在清理后保留。
如果Generalize Lines設(shè)置為Yes,一些線的頂點被移除。移除的頂點的數(shù)目由(Filter Factor -tolerance)或(Filter Factor -value of Feature Tolerance Attribute)值的贅點容差控制。在后者有效或者要素容差屬性被指定時,總是使用后者。贅點容差的值越大,移除的頂點越多。
如果Remove Dangles被設(shè)置為Yes,那么要素有至少一個自由的端點,小于(Dangle Factor -tolerance)或(Dangle Factor-value of Feature Tolerance Attribute)的長度被移除。Dangle Factor默認的值為1.0,最小值為0.0。
在對小班面狀數(shù)據(jù)進行拓撲檢查時經(jīng)常會遇到很多我們不需要的碎面的問題,有時候這個碎面的數(shù)量非常龐大。如果依照以往的解決錯誤方法是挨個檢查碎面及其相鄰面以選擇將碎面融入哪個相鄰面。可以想象,這個人工工作量將有多大。ArcGIS的Eliminate工具允許所選碎面融合進相鄰共享邊較長或面積較大的面內(nèi)。然而,美中不足的是,該工具融合條件不包含屬性字段,比如跨行政區(qū)融合圖斑;同時,與絕大多數(shù)ArcToolbox工具一樣,該工具的結(jié)果是生成新要素集,不能直接針對原數(shù)據(jù)集進行更新操作。這時我們可以使用FME來將這個處理過程自動化。首先將屬性字段作為“choice or text”類型發(fā)布到參數(shù)區(qū),然后設(shè)置兩個Spatial filter函數(shù),第一個空間位置過濾函數(shù)找出與碎面相鄰的其它面,作為融入的對象;第二個空間過濾函數(shù)選出原輸入碎面中與上一步選出的相鄰面接觸的部分。下一步需要將上述篩選出來的碎面轉(zhuǎn)化為線要素,然后與相鄰面進行疊加處理,再按要素ID(以原碎面OID屬性)分別統(tǒng)計疊加后線段的長度并取最大邊長,通過LineOnAreaOverlayer將相鄰面的要素ID傳遞給最長共享邊,并將該字段設(shè)置為融合標記,分別通過各自原有要素ID關(guān)聯(lián)(FeatureMerger)給碎面及相鄰面。最后創(chuàng)建相應(yīng)要素fme_db_operation對兩個不同的輸出結(jié)果分別給予DELETE和UPDATE,執(zhí)行操作即可得到最后結(jié)果。
FME提供了上百個變換函數(shù),不同的函數(shù)有不同的應(yīng)用條件,除了上述的三點應(yīng)用外,靈活組合這些函數(shù)還可以解決很多林業(yè)資源數(shù)據(jù)實際生產(chǎn)處理中的問題。上述功能都是在FME desktop 版的軟件中的實現(xiàn),F(xiàn)ME 除了有Desktop版外,還有Server版,Server版除了有Desktop版的功能外,主要是為大規(guī)模企業(yè)應(yīng)用提供數(shù)據(jù)轉(zhuǎn)換服務(wù)。FME應(yīng)該說是強大的,筆者也只是剛剛接觸FME,越深入越發(fā)現(xiàn)它的強大。在以后的林業(yè)資源數(shù)據(jù)的處理工作中,不斷挖掘FME的功能使其能更好的幫助具體生產(chǎn)人員提高工作效率,減輕工作強度,促進生產(chǎn)發(fā)展,實現(xiàn)數(shù)據(jù)共享、提高生產(chǎn)管理、數(shù)據(jù)服務(wù)和數(shù)據(jù)管理等的信息化水平,最終實現(xiàn)林業(yè)信息化建設(shè)又好又快的發(fā)展目標。