邵保華,袁顯磊
(1.黑龍江省林業監測規劃院,哈爾濱 150080;2.黑龍江省林業科學研究所)
近些年,國家正大力推動各行各業的信息化發展進程,林業也不例外,“數字林業”正是國家推動林業信息化發展的具體體現。如今的林業生產經營管理模式隨著林業信息化的推進,新技術,新思路,新方法的引進正逐步發生著變化。作為一名從事林業信息化建設工作的具體工作人員,在我參加工作的十多年時間里,林業資源調查從背羅盤儀找樣地,在紙質介質上記錄小班調查信息,外業結束回來后在BASIC編制的程序中用一臺386機器進行數據錄入工作,用Excel電子表格進行一些統計報表的計算,發展到如今使用PDA進行外業數據采集,PDA上裝載了高精度的影像資料,可以直接在其上進行林業區劃和勾繪,并且安裝有一套系統的數據采集軟件,不僅可以存儲大量小班信息,而且還有實用的邏輯檢查、空間拓撲檢查等質量控制功能。新技術、新方法在林業生產實際工作中發揮了巨大的作用,不僅提高了勞動效率,還在一定程度上節約了生產時間,生產經費。
林業信息化建設對數據的質量提出了更高的要求。從早期單一的線劃圖發展到如今多源,多層次的數據。(這里指的數據是廣義上的,不僅僅指地理信息屬性數據)并且對數據的空間幾何關系,屬性內部邏輯關系等都有了更高的要求。隨著采集的數據量越來越大,對數據的處理就越來越重要,其中的一些問題也逐漸顯現出來,比如數據的格式需要在各種不同的GIS軟件中轉來轉去,數據自動化處理的程度不高,海量數據處理耗時長,數據檢查出的錯誤修改費時費力等。很多商業GIS軟件公司,科研院所也在探尋良好的解決方案,比如ESRI公司的自動化地圖生產擴展插件,云GIS;Safe公司的FME軟件等等。本文所要介紹的就是加拿大Safe公司的FME軟件。
FME,全稱為Feature Manipulate Engine(要素處理引擎)。是加拿大Safe公司開發的一套完整的空間數據解決方案。它能實現不同GIS數據格式的無損讀寫和轉換,以及數據重構和質量控制,不同數據的相互整合,自動化數據處理等等。通過Python腳本語言的引用,它還能實現用戶自定義的變換和對變換過程更細微的控制。FME是由幾個軟件組成的一個套件,有專門瀏覽各類GIS數據的瀏覽軟件,有可以快速在各種GIS數據格式之間進行格式轉換的軟件,還有功能更細化,可以利用參數控制更多轉換細節的工作臺軟件。FME的轉換控制主要是通過其提供的上百個Transformer(變換函數)實現的。
FME產品主要功能模塊介紹:
當用戶定制自己的數據轉換時,利用FME Workbench模塊,只需要在直觀的界面中“指指點點”就可以輕易完成非常復雜的數據轉換任務,而且數據轉換質量非常理想;能夠可視化地定義從原數據到目標數據的對應關系(屬性和圖形);同時還可以使用該模塊進行不同格式數據源的合并工作。
該模塊是FME的旗艦產品,是一個獨立運行的強大的數據轉換程序,采用drag-and-drop界面,用戶可以輕松地、精確地轉換、存儲100多種不同格式的數據,用戶也可以完成比較復雜的數據處理過程,比如給數據加屬性值等。
該模塊用于快速預覽不同格式的數據。用戶可以在使用Workbench或Translator.模塊時,在做數據轉換之前預覽轉換數據(屬性和圖形)。
以下將通過幾個具體實例來介紹FME在林業資源數據處理中的應用。
在林業實際生產過程中,我們常常會遇到此類問題。比如近年來的林地征占用業務,開發和建設單位往往習慣于用AutoCAD來進行工程制圖,在制作相應的林業專題圖時,我們需要的一些數據是在AutoCAD的工程文件中,這時我們往往需要做一系列繁復的轉換過程才能將數據導出ArcGis可以編輯的格式,將CAD文件導入其它平臺,再進行繁雜的加工,建立拓撲,去除懸掛節點,導入屬性,轉換坐標系統等,同時這種轉換很多時候是會丟失一些信息的。這種信息的丟失很可能會導致最終的轉換成果在目標環境中不能使用,導致轉換工作失敗。除了需要從AutoCAD轉換到ArcGIS,我們可能會還需要從MapGIS轉換到ArcGIS,Google Earth KML轉換為Shape文件等等諸如此類的不同GIS數據格式之間的相互轉換,而且我們還需要這種轉換不能丟失任何數據。FME就能輕松解決此類問題,FME支持超過250種主流的GIS數據格式,并且支持它們之間的無損轉換。而且這種轉換,如果你不想過多介入轉換過程,你可以選擇快速轉換軟件,如果你想更多的控制轉換細節,比如轉換的中間過程你想加入一些處理過程,那你可以使用FME套件中的Workbench模塊。

圖1 不同數據格式之間相互轉換
外業采集回來的數據雖然已經經過初步檢查,但為了滿足林業信息化建設對數據質量的高要求,只有符合了更多質量要求的資源數據才能進入資源數據庫中。比如我們需要檢查數據的以下特點:
空間幾何特征,數據是否在正確的空間位置;
要素的符號特征,顏色,類型,符號等是否一致,符合規則;
數據的屬性域是否在規則要求的范圍內;
要素類型是否正確,要素是否存在冗余;
要素包含的數量是否正確,要素屬性之間的內在關系是否符合要求;
ISO 19100系列標準定義了國際上對于GIS數據的質量檢查標準[1]。
FME提供了很多用于質量控制的transformer(變換函數),現列舉其中一個比較典型的函數:MRF2DCleaner。之所以說它典型,是因為這個函數可以說是一個函數包,它包含了很多單獨用于數據質量控制的函數,這個函數是需要額外付費使用的。它基于MRFCleanFactory建立,使MRF清理技術集成到FME上。MRF2DCleaner函數可以修補輸入數據的幾何問題,特別是把數據從CAD轉移到GIS的時候,如線超過或小于用戶指定的容差。對于多圖層和多容差二維數據清理是非常有用的。典型應用包括地形圖和資源數據的修正,并把修正后的數據從一個系統轉移到另一個系統。MRF2DCleaner包括下面的功能:
fuzzy tolerance
extending lines
weeding lines
joining lines
processing short elements
removing gaps
removing duplicates
removing dangles
performing conflation
函數執行參數設置窗口如下圖所示。

圖2 MRF2DCleaner函數參數設置窗口
幾點說明:
如果Remove Duplicate Geometries設置為Yes,重復的要素被刪除。如果要素的幾何在容差范圍內,被認為是重復的,只有使用一個較小的容差,要素才會在清理后保留。
如果Generalize Lines設置為Yes,一些線的頂點被移除。移除的頂點的數目由(Filter Factor -tolerance)或(Filter Factor -value of Feature Tolerance Attribute)值的贅點容差控制。在后者有效或者要素容差屬性被指定時,總是使用后者。贅點容差的值越大,移除的頂點越多。
如果Remove Dangles被設置為Yes,那么要素有至少一個自由的端點,小于(Dangle Factor -tolerance)或(Dangle Factor-value of Feature Tolerance Attribute)的長度被移除。Dangle Factor默認的值為1.0,最小值為0.0。
在對小班面狀數據進行拓撲檢查時經常會遇到很多我們不需要的碎面的問題,有時候這個碎面的數量非常龐大。如果依照以往的解決錯誤方法是挨個檢查碎面及其相鄰面以選擇將碎面融入哪個相鄰面。可以想象,這個人工工作量將有多大。ArcGIS的Eliminate工具允許所選碎面融合進相鄰共享邊較長或面積較大的面內。然而,美中不足的是,該工具融合條件不包含屬性字段,比如跨行政區融合圖斑;同時,與絕大多數ArcToolbox工具一樣,該工具的結果是生成新要素集,不能直接針對原數據集進行更新操作。這時我們可以使用FME來將這個處理過程自動化。首先將屬性字段作為“choice or text”類型發布到參數區,然后設置兩個Spatial filter函數,第一個空間位置過濾函數找出與碎面相鄰的其它面,作為融入的對象;第二個空間過濾函數選出原輸入碎面中與上一步選出的相鄰面接觸的部分。下一步需要將上述篩選出來的碎面轉化為線要素,然后與相鄰面進行疊加處理,再按要素ID(以原碎面OID屬性)分別統計疊加后線段的長度并取最大邊長,通過LineOnAreaOverlayer將相鄰面的要素ID傳遞給最長共享邊,并將該字段設置為融合標記,分別通過各自原有要素ID關聯(FeatureMerger)給碎面及相鄰面。最后創建相應要素fme_db_operation對兩個不同的輸出結果分別給予DELETE和UPDATE,執行操作即可得到最后結果。
FME提供了上百個變換函數,不同的函數有不同的應用條件,除了上述的三點應用外,靈活組合這些函數還可以解決很多林業資源數據實際生產處理中的問題。上述功能都是在FME desktop 版的軟件中的實現,FME 除了有Desktop版外,還有Server版,Server版除了有Desktop版的功能外,主要是為大規模企業應用提供數據轉換服務。FME應該說是強大的,筆者也只是剛剛接觸FME,越深入越發現它的強大。在以后的林業資源數據的處理工作中,不斷挖掘FME的功能使其能更好的幫助具體生產人員提高工作效率,減輕工作強度,促進生產發展,實現數據共享、提高生產管理、數據服務和數據管理等的信息化水平,最終實現林業信息化建設又好又快的發展目標。