劉文軍,黃 瑤
(1.江西省測繪應急保障服務中心,江西 南昌 330002)
數據是地理信息系統(GIS)的靈魂。測繪數據的整合加工是基礎測繪生產中一項常見的工作。整合加工得到的成果數據質量直接影響整個項目質量。目前,ESRI公司推出的AcrGIS軟件是最成熟的商業GIS軟件,在基礎測繪生產中的數據處理、整合和建庫方面都得到了廣泛應用[1]。ArcGIS Spatial ETL是AcrGIS軟件下一個具有強大數據互操作能力的工具,即用戶從指定的數據源中抽取自己感興趣的空間數據,再按照事先制定的清洗和轉換規則進行數據清洗和轉換,最終裝載到目標數據模型中。本文提出了一套行之有效的作業方法,即基于FME的語義映射原理,利用ArcGIS軟件自定義Spatial ETL工具進行空間數據的模型構建,自動批量處理矢量數據整合過程中的數據轉換和多數據庫合并。
在基礎測繪成果數據中,1∶10 000數字線劃圖是最常見的產品之一。對該產品的整合改造以及合并檢查是基礎測繪生產中一項必不可少的工作。目前,將多個數據庫合并為一個數據庫的方法主要包括:①圖層合并,即將數據類型相同的多個輸入數據集合并為新的單個輸出數據集;②數據融合,若要基于一個或多個指定的屬性聚合要素,可采用該方法;③數據追加,即將多個數據集中的新要素或其他數據添加至現有數據集;④數據聯合,用于計算任意數量的要素類和要素圖層的幾何并集。上述方法均在人工操作下完成,對于大數據量的數據合并顯得費時費力、效率低下,且容易出錯。
從數學角度來講,映射體現的是一種集合間的對應關系或集合中每個要素與另一個集合中相應要素的對應關系[2]。語義映射則可認為是源數據類在目標數據類的重分類,即對從源數據類中尋找滿足目標數據類定義要求的數據進行分類[3]。FME語義映射基于OpenGIS組織提出的“語義轉換”的思路,不僅提供了不同格式數據之間的相互轉換功能,而且實現了數據結構的重新構造[4-5]。FME語義映射具有一個引擎,能對輸入數據和輸出數據進行重新定義,在數據模型的基礎上完成從輸入和輸出的數據模型到該引擎模型的映射,重構數據結構后,最終完成數據模型之間的轉換。
ETL技術包括3個重要環節[6]:①數據抽取,即從不同數據庫或倉庫中讀取數據,這是一個數據讀取的過程,是ETL技術的前提;②數據轉換,即按照預先制定的清洗和轉換規則,對讀取的數據進行屬性字段合并、融合、排序、賦缺省值等操作,這是一個數據清洗和轉換的過程,是ETL技術的核心;③數據裝載,即對清洗和轉換后的數據進行裝載入庫,這是一個數據入庫的過程。詳細流程如圖1所示。

圖1 ETL技術流程圖
ArcGIS Spatial ETL是ESRI公司推出的AcrGIS軟件下一個具有強大數據互操作功能的工具。從Spatial ETL的字面意思可理解為空間數據的抽取、轉換和裝載的過程,即用戶從指定的數據源中抽取自己感興趣的空間數據,再按照事先制定的清洗和轉換規則進行數據清洗和轉換,最終裝載到目標數據模型中,供本部門使用。
Spatial ETL工具是用戶創建的地理處理工具,能提供的流程和數據流范圍很廣,可實現簡單的格式轉換,也可實現重新構建幾何和屬性的復雜轉換;可將其用作獨立的地理處理工具,也可利用ArcGIS for Server在工具箱中發布為地理處理服務或導出為自定義格式并在FME閱讀器庫中使用。該工具的主要功能包括:①過濾屬性并將屬性與其他要素類合并;②利用屬性值動態創建唯一要素類;③利用測試條件分離數據;④根據坐標值創建線要素。本文采用Spatial ETL工具的第一個功能,即通過過濾屬性并將屬性與其他要素類合并進行矢量數據整合。具體步驟為:①創建Spatial ETL工作空間;②設置模型參數;③實現模型運行。
Spatial ETL工具是在ArcGIS軟件環境下創建的,在創建前需配置好ArcGIS軟件系統環境。具體步驟為:安裝ArcGIS 10.1和ArcGIS Data Interoperability for Desktop模塊,并在ArcGIS擴展模塊中將Data Interoperability選中勾上。
首先在ArcGIS軟件中調出ArcToolbox工具箱,在工具箱空白處右擊選擇“添加工具箱”,重命名為“矢量數據整合工具”;然后右擊“矢量數據整合工具”圖標,選擇“新建—Spatial ETL Tool”命令,如圖2所示。

圖2 Spatial ETL工具創建流程
模型參數設置包括源數據格式和路徑的選擇以及目標數據格式和路徑的選擇。由于Spatial ETL工具是FME和ArcGIS軟件的集成,提供了近百種不同數據格式之間轉換,因此本文源數據格式選取Personal Geodatabase,目標數據格式選取File Geodatabase。設置完成后,得到Spatial ETL Tool工作臺畫布如圖3所示。畫布將顯示用來定義Spatial ETL工具的數據源、鏈接、轉換器和目標要素,默認情況下是從左到右進行處理,從源數據對象入手,通過鏈接器將輸出鏈接到輸入來引導數據流,然后在目標要素處結束整個流程。

圖3 Spatial ETL Tool數據流示意圖
本文需將75個MDB數據庫合并成一個GDB數據庫,要保證合并前后數據庫中的數據結構、屬性信息以及空間投影信息保持不變,確保數據的質量不降低,實現無損合并轉換。因此,本文基于FME語義映射原理,在源數據集與目標數據集之間建立映射關系,需實現一對一的映射關系,即所有源數據集中各要素層與目標數據集中要素層一一對應,屬性字段可一一對應,也可根據自己的需求進行字段重命名和字段類型更改等操作,如圖4所示。點擊運行,將數據裝載到目標數據庫中,即自動將75個MDB數據庫中各要素層載入GDB數據庫中相應的要素層;執行完成后,可保存該工具,作為ArcGIS地理處理工具使用[8],也可利用模型構建器對工具參數進行個性化設置,使其界面更友好、應用更方便。

圖4 FME語義映射
本文分別利用人工操作和Spatial ETL工具將75個MDB數據庫合并為一個GDB數據庫,兩種方法在相同配置的計算機平臺下操作。通過對比發現,人工操作方法完成所耗時間為8 h,Spatial ETL工具方法完成所耗時間為2 min 16 s,如表1所示,可以看出,利用Spatial ETL工具執行的效率遠高于人工操作,需要合并的MDB數據庫數量越多,Spatial ETL工具執行方法體現的效率越高。

表1 不同處理方法的對比
基于FME語義映射原理,本文利用ArcGIS軟件自定義了Spatial ETL工具。該工具通過簡單易用的圖形化操作界面,定制了流程化的數據轉換模板,自動批處理將75個MDB數據庫合并為一個GDB數據庫,節約了時間成本,提高了測繪數據整合效率,在一定程度上減少了數據庫重復建設工作。另外,利用FME語義映射原理,還可避免屬性信息和投影信息的丟失。本文研究的數據整合方法為測繪數據加工提供了一個很好的思路,尤其是對測繪一線生產具有一定的參考價值。