甘迎娟
(1.中煤航測遙感集團,陜西 西安 710199)
FME 是加拿大safe Software 公司推出的用于不同數據格式之間轉換的一款系統軟件。該系統基于OpenGIS組織提出的新的數據轉換理念“語義轉換”,提供轉換過程中重新構造數據功能,實現了超過500多種數據格式之間的轉換,可為規劃技術服務提供快速處理和實現的解決方案。FME的優點是向用戶提供了比同類GIS 軟件更加強大的操作靈活性與自由度,為用戶的技術處理思路提供了無限可能[1]。
以原始數據庫(GDB)-修測矢量(DLG)-更新成果數據庫(MDB)的生產流程為主線,敘述了FME在數據準備、數據入庫及質量檢查過程中的應用。通過運用上百個∕次Transformers 函數,在不借助第三方軟件平臺的基礎上實現上述流程并取得了較高的成果質量和生產效率[2]。多源數據修測更新入庫技術流程如圖1所示。

圖1 多源數據修測更新入庫技術流程
多源性一方面表現為數據獲取手段的多樣性,另一方面表現為不同采集方法和管理系統中數據具有的不同存儲、交換格式[3]。
多源數據的特點是多元異構,多元指數據來源多樣化。多源數據融合是指將各種不同的數據信息進行綜合,吸取不同數據源的特點,然后從中提取出統一的,比單一數據更好、更豐富的信息。項目已有多源數據(格式為GDB、DEM、DGN),其中DLG 來源于最新時相的航空影像采集,GDB 來源于地理國情普查成果,DEM來源于農村承包經營權確權成果。異構指數據的類型、結構、特征等的不一致性。項目中,DLG 的格式為*.DGN,是一種矢量文件;GDB 的格式為*.GDB,是一種空間數據庫集;DEM的格式為*.GRID,是一種數字高程模型的存儲方式。
使用航空攝影測量方法,借助FME 數據重構功能,全面修測更新已有的基礎地形地貌數據庫。同時,擴充一些必要的屬性數據,建立空間與非空間數據之間的聯系,為各行業提供更準確、全面的數據服務。
1.2.1 DEM提取曲線
農村承包經營權確權DEM成果在項目中有2個應用,DEM生成LAS點文件用于地理國情普查成果GDB數據庫的高程賦值。DEM同時生成等高線用于立體模型修測。
1.2.2 GDB符號化
通過FME的模板中的“Joiner”函數,以Excel表中的GB 對應項為識別信息碼,掛接FH.xlsx屬性映射對照表,屬性映射對照表由GB 列、符號名列、線型名列組成,并在轉換過程中掛接seed.dgn 的種子文件,通過轉換將數據庫中的點狀數據符號化,線狀數據賦于線型信息。完成從GDB 到DLG 的數據格式轉換,GDB數據符號化示意如圖2所示。

圖2 GDB數據符號化示意圖
1.2.3 GDB賦Z值
通過符號化作為修測的GDB文件,必須要賦三維值后才能在立體模型中正確顯示和使用。在格式轉換過程中,同時進行GDB 與DME 生成的LAS 點疊加分析,將LAS 點的三維值(Z 值)賦給GDB 文件。賦值過程中,使用“SurfaceDraper”,“CoordinateExtractor”,“FeatureMerger”,“3DForcer”等關鍵函數,最終輸出3D 的矢量DLG 成果。符號化成果賦Z 值示意如圖3所示。

圖3 符號化成果賦Z值示意圖
1.2.4 立體矢量修測
3D 的矢量DLG 成果在最新時相的航空影像立體模型下,根據相應的UCM表進行修測更新,修測內容包括變化的、新增的、刪除的[4-5]。
統一性:要素內容、表達方式、采集指標、數據模型、組織結構等內容統一,保證數據生產與建庫過程中數據成果的準確性和一致性。
兼容性:滿足該省1∶10 000DLG 數據生產、建庫和應用的需要,統籌兼顧數據庫快速出圖的要求,以及其他行業的需求。可擴展性:預留數據層、要素代碼和要素屬性的擴充空間,要素代碼和屬性項應與規范相銜接。
數據分層的命名采用5 個字符,第一個字符為數據比例尺代碼(G為1∶10 000,H為1∶5 000),第二個至第四個字符為數據內容的縮寫,第五個字符代表幾何類型(A:面,L:線,P:點)數據分層見表1所示。

表1 1∶10 000DLG數據分層表
使用FME Workbench入庫非常便捷,通過前期的數據分析、修測整理、編寫映射文件及模板,實現使用FME完成一鍵入庫。流程簡潔、操作簡便、交互性好。FME修測入庫流程如圖4所示。

圖4 FME修測入庫流程圖
屬性映射文件內容包含修測矢量文件的層、色、粗度及屬性庫的層、GB碼等信息,通過GB碼的唯一性提取數據庫并填寫相應的屬性信息。屬性映射文件見表2所示。

表2 屬性映射文件
數據入庫的基本思路為在Bently 公司的microstationv8 軟件下,進行矢量數據修測并整理為以點、線、面為表達格式的矢量文件。在FME軟件下,通過編寫數據轉換模板,運用“joiner”,“ExpressionEvaluator”,“AttributeCreator”,“CoordinateExtractor”,等69 個∕次Transformers 函數完成數據庫的提取。
數據庫最終成果需添加投影信息。一般情況是在ArcGIS使用ArcTOOLBOX下的工具就能實現,但對于大數據量來說,FME的批量操作更高效。FME中Esri-Reprojector轉換器的思想為使用ESRI重投影庫,把要素坐標從一個坐標系統重投影到另一個坐標系統,使用Batch Deploy命令批量完成投影變換。
3.1.1 數據處理原則
規范性(要素分類、數據分層、屬性項定義、要素屬性等需與國標一致),一致性(DLG 數據編碼標準、拓撲關系、格式概念須一致),完整性(數據層、覆蓋區域以及內部文件必須滿足完整性要求),正確性(數據在滿足圖形拓撲關系的同時,各屬性項順序、名稱、長度、類型、分類、屬性等相關內容必須正確)。
3.1.2 圖形要求
所有面、線要素中均不允許存在圓弧、B 樣條曲線和Multiline的線串,源數據中如果存在該類型的線串,則需處理為與源形狀基本一致的多段線類型。
3.1.3 拓撲要求
各類點、線、面狀要素都不能有自重疊。點、線、面要素之間也不能有不合理的相互重疊。線、面要素不能存在自相交、折返線。構面要素與原始構面邊線應保持線面的節點套合,最大誤差不超過0.01 m。
3.1.4 屬性要求
必填屬性不得為空,要素圖形表示與“分類代碼”屬性保持一致;圖形的名稱、類型等屬性與圖面注記一致。
對矢量數據進行質量檢查是獲取精確性較高的矢量數據的必要手段[6]。根據上述質量檢查內容及質量要求結合項目本身的特點,在數據質量檢查設計過程中,以要素類型為研究對象,從點、線、面3 個方面,重點關注以下幾個方面的內容。數據質檢內容見圖5所示。

圖5 數據質檢內容
DLG 數據轉換為MDB 格式后,需要對數據庫進行面折刺檢查,空間關系合理性檢查,復合要素檢查等及投影變換等。質量檢查可以通過ArcGIS 實現,也可通過FME 編寫模板實現,使用FME 編寫檢查模板有3 個方面的優點:第一,交互性好且檢查效率高,輸出結果僅需數秒且可直接導入矢量數據修改。第二,可進行一對一的定制,對于拓撲關系檢查,在模板中寫定拓撲規則,操作時無需選擇層及規則。第三,對于有的錯誤項檢查過程即修改過程,運行完檢查模板后自動修復錯誤項。加快制圖更新速度、推進生產單位整體工作效率,不斷提高數據成果質量[7]。
3.2.1 位置關系檢查
面折刺在ArcGIS檢查的思想為通過ArcTOOLBOX完成要素折點轉點和要素轉線,然后在Arccatalog 下創建屬性字段,通過python編寫腳本計算出各個折次點的角度。根據屬性表中的角度字段篩選出最小銳角進行排查折次。實現過程非常繁瑣,且無法自動修改。
FME 下“SpikeRemover”轉換器的思想為每一對由3 個連續不同的點組成的線段。如果兩線段角(度)小于或等于指定的最大角度,那么中間點(為尖銳)被刪除。函數原理如圖6所示。使用FME檢查模板僅數秒就完成了面折刺的檢查和修改。

圖6 SpikeRemover函數原理
自 相 交 使 用“SelfIntersector”, “Intersector”,“Tester”等函數篩選。自相交檢查模板如圖7所示。

圖7 自相交檢查模板
偽節點使用“chopper”,“PointOnPointOverlayer”,“DuplicateRemover”,“SpatialFilter”,“Tester”等函數篩選。偽節點模板如圖8所示。其余描述線懸掛、線相交、小面檢查、面重疊檢查等位置關系錯誤模板不再一一敘述。

圖8 偽節點檢查模板
3.2.2 拓撲關系檢查
拓撲關系檢查功能通過使用ArcGIS 軟件中與拓撲處理相關的組件實現,過程為設置容差、添加投影信息、添加拓撲規則等一系列。該檢查方式操作繁瑣,且只能檢查SHP、MDB等庫體數據,交互性和操作性差,嚴重影響作業效率。
以曲線穿過房屋、比高點及高程點落水2 種情況描述FME中實現拓撲關系檢查的過程:使用“LineOn-AreaOverlayer”,“PointOnAreaOverlayer”,“Tester”3個轉換器,通過點、線、面不同類型GB 碼的空間分析疊加,以及疊加結果的關系判斷完成曲線是否穿過房屋面檢查和比高點及高程點是否落入至水系面檢查,并根據測試的結果以DWG 格式的矢量文件輸出錯誤要素。同樣,模板運行時間僅數秒就完成該項拓撲關系的檢查。
復合要素檢查。ArcGIS 下處理復合要素非常容易,但是檢查出復合要素需要借助python編寫腳本才能實現,這對沒有編程基礎的測繪工作者實現起來有些難度。
FME使用“AggregateFilter”轉換器,該轉換器的思想為根據聚合體的幾何圖形的類型、或者根據輸出單個幾何對象,過濾出不同的要素。將原始數據庫輸入至FME檢查模板中,使用該轉換函數篩選出非法線聚合體和非法面聚合體,同樣數秒即可輸出檢查結果。
3.2.3 屬性完整性檢查
點狀符號數據完整性檢查主要是在數據庫的提取過程中,對必填項進行強制賦值。以高程點為例,高程點屬性結構如表3所示。

表3 高程點屬性結構表
上表中的必填項GB、ELEV,其中GB 為唯一標識碼。在數據庫提取中通過函數“AttributeRenamer”重命名獲得高程值屬性字段。現勢性通過函數“AttributeCreator”派生創建更新狀態、數據庫、版本標識屬性字段。
使用FME模板極大地提高了數據處理效率和數據質量,節約了人力資源,是多源數據庫修測更新的強大技術支撐。同時,項目所取得的數據成果現勢性好、質量優良,對于滿足國家經濟建設和社會發展的需要,提高測繪地理信息的服務保障能力具有十分重要的作用和價值[8]。