劉文軍,黃 瑤
(1.江西省測繪應(yīng)急保障服務(wù)中心,江西 南昌 330002)
數(shù)據(jù)是地理信息系統(tǒng)(GIS)的靈魂。測繪數(shù)據(jù)的整合加工是基礎(chǔ)測繪生產(chǎn)中一項(xiàng)常見的工作。整合加工得到的成果數(shù)據(jù)質(zhì)量直接影響整個(gè)項(xiàng)目質(zhì)量。目前,ESRI公司推出的AcrGIS軟件是最成熟的商業(yè)GIS軟件,在基礎(chǔ)測繪生產(chǎn)中的數(shù)據(jù)處理、整合和建庫方面都得到了廣泛應(yīng)用[1]。ArcGIS Spatial ETL是AcrGIS軟件下一個(gè)具有強(qiáng)大數(shù)據(jù)互操作能力的工具,即用戶從指定的數(shù)據(jù)源中抽取自己感興趣的空間數(shù)據(jù),再按照事先制定的清洗和轉(zhuǎn)換規(guī)則進(jìn)行數(shù)據(jù)清洗和轉(zhuǎn)換,最終裝載到目標(biāo)數(shù)據(jù)模型中。本文提出了一套行之有效的作業(yè)方法,即基于FME的語義映射原理,利用ArcGIS軟件自定義Spatial ETL工具進(jìn)行空間數(shù)據(jù)的模型構(gòu)建,自動(dòng)批量處理矢量數(shù)據(jù)整合過程中的數(shù)據(jù)轉(zhuǎn)換和多數(shù)據(jù)庫合并。
在基礎(chǔ)測繪成果數(shù)據(jù)中,1∶10 000數(shù)字線劃圖是最常見的產(chǎn)品之一。對(duì)該產(chǎn)品的整合改造以及合并檢查是基礎(chǔ)測繪生產(chǎn)中一項(xiàng)必不可少的工作。目前,將多個(gè)數(shù)據(jù)庫合并為一個(gè)數(shù)據(jù)庫的方法主要包括:①圖層合并,即將數(shù)據(jù)類型相同的多個(gè)輸入數(shù)據(jù)集合并為新的單個(gè)輸出數(shù)據(jù)集;②數(shù)據(jù)融合,若要基于一個(gè)或多個(gè)指定的屬性聚合要素,可采用該方法;③數(shù)據(jù)追加,即將多個(gè)數(shù)據(jù)集中的新要素或其他數(shù)據(jù)添加至現(xiàn)有數(shù)據(jù)集;④數(shù)據(jù)聯(lián)合,用于計(jì)算任意數(shù)量的要素類和要素圖層的幾何并集。上述方法均在人工操作下完成,對(duì)于大數(shù)據(jù)量的數(shù)據(jù)合并顯得費(fèi)時(shí)費(fèi)力、效率低下,且容易出錯(cuò)。
從數(shù)學(xué)角度來講,映射體現(xiàn)的是一種集合間的對(duì)應(yīng)關(guān)系或集合中每個(gè)要素與另一個(gè)集合中相應(yīng)要素的對(duì)應(yīng)關(guān)系[2]。語義映射則可認(rèn)為是源數(shù)據(jù)類在目標(biāo)數(shù)據(jù)類的重分類,即對(duì)從源數(shù)據(jù)類中尋找滿足目標(biāo)數(shù)據(jù)類定義要求的數(shù)據(jù)進(jìn)行分類[3]。FME語義映射基于OpenGIS組織提出的“語義轉(zhuǎn)換”的思路,不僅提供了不同格式數(shù)據(jù)之間的相互轉(zhuǎn)換功能,而且實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)的重新構(gòu)造[4-5]。FME語義映射具有一個(gè)引擎,能對(duì)輸入數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行重新定義,在數(shù)據(jù)模型的基礎(chǔ)上完成從輸入和輸出的數(shù)據(jù)模型到該引擎模型的映射,重構(gòu)數(shù)據(jù)結(jié)構(gòu)后,最終完成數(shù)據(jù)模型之間的轉(zhuǎn)換。
ETL技術(shù)包括3個(gè)重要環(huán)節(jié)[6]:①數(shù)據(jù)抽取,即從不同數(shù)據(jù)庫或倉庫中讀取數(shù)據(jù),這是一個(gè)數(shù)據(jù)讀取的過程,是ETL技術(shù)的前提;②數(shù)據(jù)轉(zhuǎn)換,即按照預(yù)先制定的清洗和轉(zhuǎn)換規(guī)則,對(duì)讀取的數(shù)據(jù)進(jìn)行屬性字段合并、融合、排序、賦缺省值等操作,這是一個(gè)數(shù)據(jù)清洗和轉(zhuǎn)換的過程,是ETL技術(shù)的核心;③數(shù)據(jù)裝載,即對(duì)清洗和轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行裝載入庫,這是一個(gè)數(shù)據(jù)入庫的過程。詳細(xì)流程如圖1所示。
圖1 ETL技術(shù)流程圖
ArcGIS Spatial ETL是ESRI公司推出的AcrGIS軟件下一個(gè)具有強(qiáng)大數(shù)據(jù)互操作功能的工具。從Spatial ETL的字面意思可理解為空間數(shù)據(jù)的抽取、轉(zhuǎn)換和裝載的過程,即用戶從指定的數(shù)據(jù)源中抽取自己感興趣的空間數(shù)據(jù),再按照事先制定的清洗和轉(zhuǎn)換規(guī)則進(jìn)行數(shù)據(jù)清洗和轉(zhuǎn)換,最終裝載到目標(biāo)數(shù)據(jù)模型中,供本部門使用。
Spatial ETL工具是用戶創(chuàng)建的地理處理工具,能提供的流程和數(shù)據(jù)流范圍很廣,可實(shí)現(xiàn)簡單的格式轉(zhuǎn)換,也可實(shí)現(xiàn)重新構(gòu)建幾何和屬性的復(fù)雜轉(zhuǎn)換;可將其用作獨(dú)立的地理處理工具,也可利用ArcGIS for Server在工具箱中發(fā)布為地理處理服務(wù)或?qū)С鰹樽远x格式并在FME閱讀器庫中使用。該工具的主要功能包括:①過濾屬性并將屬性與其他要素類合并;②利用屬性值動(dòng)態(tài)創(chuàng)建唯一要素類;③利用測試條件分離數(shù)據(jù);④根據(jù)坐標(biāo)值創(chuàng)建線要素。本文采用Spatial ETL工具的第一個(gè)功能,即通過過濾屬性并將屬性與其他要素類合并進(jìn)行矢量數(shù)據(jù)整合。具體步驟為:①創(chuàng)建Spatial ETL工作空間;②設(shè)置模型參數(shù);③實(shí)現(xiàn)模型運(yùn)行。
Spatial ETL工具是在ArcGIS軟件環(huán)境下創(chuàng)建的,在創(chuàng)建前需配置好ArcGIS軟件系統(tǒng)環(huán)境。具體步驟為:安裝ArcGIS 10.1和ArcGIS Data Interoperability for Desktop模塊,并在ArcGIS擴(kuò)展模塊中將Data Interoperability選中勾上。
首先在ArcGIS軟件中調(diào)出ArcToolbox工具箱,在工具箱空白處右擊選擇“添加工具箱”,重命名為“矢量數(shù)據(jù)整合工具”;然后右擊“矢量數(shù)據(jù)整合工具”圖標(biāo),選擇“新建—Spatial ETL Tool”命令,如圖2所示。
圖2 Spatial ETL工具創(chuàng)建流程
模型參數(shù)設(shè)置包括源數(shù)據(jù)格式和路徑的選擇以及目標(biāo)數(shù)據(jù)格式和路徑的選擇。由于Spatial ETL工具是FME和ArcGIS軟件的集成,提供了近百種不同數(shù)據(jù)格式之間轉(zhuǎn)換,因此本文源數(shù)據(jù)格式選取Personal Geodatabase,目標(biāo)數(shù)據(jù)格式選取File Geodatabase。設(shè)置完成后,得到Spatial ETL Tool工作臺(tái)畫布如圖3所示。畫布將顯示用來定義Spatial ETL工具的數(shù)據(jù)源、鏈接、轉(zhuǎn)換器和目標(biāo)要素,默認(rèn)情況下是從左到右進(jìn)行處理,從源數(shù)據(jù)對(duì)象入手,通過鏈接器將輸出鏈接到輸入來引導(dǎo)數(shù)據(jù)流,然后在目標(biāo)要素處結(jié)束整個(gè)流程。
圖3 Spatial ETL Tool數(shù)據(jù)流示意圖
本文需將75個(gè)MDB數(shù)據(jù)庫合并成一個(gè)GDB數(shù)據(jù)庫,要保證合并前后數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)、屬性信息以及空間投影信息保持不變,確保數(shù)據(jù)的質(zhì)量不降低,實(shí)現(xiàn)無損合并轉(zhuǎn)換。因此,本文基于FME語義映射原理,在源數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集之間建立映射關(guān)系,需實(shí)現(xiàn)一對(duì)一的映射關(guān)系,即所有源數(shù)據(jù)集中各要素層與目標(biāo)數(shù)據(jù)集中要素層一一對(duì)應(yīng),屬性字段可一一對(duì)應(yīng),也可根據(jù)自己的需求進(jìn)行字段重命名和字段類型更改等操作,如圖4所示。點(diǎn)擊運(yùn)行,將數(shù)據(jù)裝載到目標(biāo)數(shù)據(jù)庫中,即自動(dòng)將75個(gè)MDB數(shù)據(jù)庫中各要素層載入GDB數(shù)據(jù)庫中相應(yīng)的要素層;執(zhí)行完成后,可保存該工具,作為ArcGIS地理處理工具使用[8],也可利用模型構(gòu)建器對(duì)工具參數(shù)進(jìn)行個(gè)性化設(shè)置,使其界面更友好、應(yīng)用更方便。
圖4 FME語義映射
本文分別利用人工操作和Spatial ETL工具將75個(gè)MDB數(shù)據(jù)庫合并為一個(gè)GDB數(shù)據(jù)庫,兩種方法在相同配置的計(jì)算機(jī)平臺(tái)下操作。通過對(duì)比發(fā)現(xiàn),人工操作方法完成所耗時(shí)間為8 h,Spatial ETL工具方法完成所耗時(shí)間為2 min 16 s,如表1所示,可以看出,利用Spatial ETL工具執(zhí)行的效率遠(yuǎn)高于人工操作,需要合并的MDB數(shù)據(jù)庫數(shù)量越多,Spatial ETL工具執(zhí)行方法體現(xiàn)的效率越高。
表1 不同處理方法的對(duì)比
基于FME語義映射原理,本文利用ArcGIS軟件自定義了Spatial ETL工具。該工具通過簡單易用的圖形化操作界面,定制了流程化的數(shù)據(jù)轉(zhuǎn)換模板,自動(dòng)批處理將75個(gè)MDB數(shù)據(jù)庫合并為一個(gè)GDB數(shù)據(jù)庫,節(jié)約了時(shí)間成本,提高了測繪數(shù)據(jù)整合效率,在一定程度上減少了數(shù)據(jù)庫重復(fù)建設(shè)工作。另外,利用FME語義映射原理,還可避免屬性信息和投影信息的丟失。本文研究的數(shù)據(jù)整合方法為測繪數(shù)據(jù)加工提供了一個(gè)很好的思路,尤其是對(duì)測繪一線生產(chǎn)具有一定的參考價(jià)值。