【摘要】數(shù)據轉換一直是震害預測專題研究工作的過程中一個不可避免的問題,尤其是Excel數(shù)據與GIS空間數(shù)據之間的轉換。由于兩個平臺對數(shù)據表達方法上的差異以及項目需求的不同,一般常規(guī)方法都很難滿足數(shù)據的無損轉換。本文通過分析多種數(shù)據轉換平臺在數(shù)據轉換方面的優(yōu)勢與不足,結合震害預測專題研究工作具體項目需求,探討一種基于文件流、VBA和OLE技術的Excel數(shù)據與GIS空間數(shù)據轉換方法,實踐證明該方法簡單、有效,數(shù)據損失率低。
【關鍵詞】ExcelGIS數(shù)據轉換數(shù)據接口
一、引言
在進行震害預測專題研究工作的過程中,對Excel數(shù)據文件的充分利用可以降低項目成本,避免數(shù)據的重復采集,縮短項目周期,提高現(xiàn)有數(shù)據的利用率。在數(shù)據更新過程中有Excel數(shù)據文件數(shù)百個,其全部轉換到GIS空間數(shù)據庫,數(shù)據處理全部人工去處理難度較大,并且數(shù)據的準確性以及完整性難以保證。通過對數(shù)據轉換方式與地震行業(yè)數(shù)據格式的分析,在C#.NET中,利用文件流、VBA和OLE技術實現(xiàn)Excel數(shù)據與GIS空間數(shù)據格式之間的轉換接口,減少人工數(shù)據轉換帶來的錯誤和誤差。
二、地震行業(yè)數(shù)據轉換方式分析
震害預測專題數(shù)據匯總完成后大部分是以Excel格式數(shù)據文件形式整理成冊,通過Ftp服務器或者網絡工作站的形式上傳至服務器。傳統(tǒng)的數(shù)據處理方式采用人工編輯導入相應的GIS文件數(shù)據庫中,此種方式無疑增加了數(shù)據導入過程中產生誤差的幾率,增加數(shù)據錄入的麻煩。為避免誤差幾率的增加和數(shù)據錄入的麻煩,借鑒ADO技術在Excel與Access之間的數(shù)據轉換和VB.NET在AutoCAD與GIS數(shù)據轉換接口中的方式,最終通過C#. NET平臺運用自定義Txt文件數(shù)據流結合Office辦公軟件提供的VBA接口和OLE技術實現(xiàn)Excel文件與GIS數(shù)據庫數(shù)據轉換。
三、兩種數(shù)據分析與技術路線
3.1兩種數(shù)據分析
以GIS空間數(shù)據的格式中的Shapefile為例進行說明,Shapefile是ArcView GIS 3.x的原生數(shù)據格式,屬于簡單要素類,用點、線、多邊形存儲要素的形狀,具有簡單、快速顯示的優(yōu)點。Shapefile是空間信息和屬性信息分離存儲,所以稱之為“基于文件”,其由*.shp、*.shx、*.dbf三個主要文件組成。*.shp:存儲的是幾何要素的空間信息,即XY坐標;*.shx:存儲的是有關*.shp存儲的索引信息;*. dbf:存儲地理數(shù)據的屬性信息的dBase表。
以地震行業(yè)統(tǒng)計的點數(shù)據Excel文件為例,Excel工作表中包括若干屬性列,其對應Shapefile中的*.dbf文件,即存儲地理數(shù)據的屬性信息;最后兩列為X、Y經緯度坐標,其對應的Shapefile中的*.shp和*.shx文件,即存儲地理數(shù)據的是空間信息。
通過對兩種數(shù)據分析不難發(fā)現(xiàn)只要做到Excel每條記錄與Shapefile文件每個點的屬性信息與空間信息的一一對應,即可完成兩種數(shù)據的無縫轉換。
3.2技術路線
Excel數(shù)據與GIS空間數(shù)據轉換技術的研究方法是采用MVC設計模式,即“模型建立—算法研究—系統(tǒng)實現(xiàn)”的思路來組織的。首先按照城市震害系統(tǒng)需求規(guī)范建立的GIS空間數(shù)據模型搜集廊坊地區(qū)的各種屬性和空間數(shù)據,例如醫(yī)院、學校、小區(qū)、4S店、公園、立交橋、公司等企事業(yè)單位的Excel數(shù)據文件,其次通過C#.NET結合VBA接口與OLE技術編程實現(xiàn)對廊坊地區(qū)空間、屬性數(shù)據“剝離—重組”(圖1所示)———即利用C#.NET與Office辦公軟件提供的VBA接口將Excel文件中的屬性數(shù)據與空間信息進行剝離生成自定義Txt文件;然后將生成的自定義Txt文件通過OLE技術形成由*.shp、*.shx、*.dbf三個主要文件組成的GIS空間數(shù)據Shapefile文件。轉換分兩個階段,依次為Excel-Txt轉換和Txt-Shapefile轉換。轉換過程的關鍵是Excel每條記錄到Shapefile文件每個點的空間信息與屬性信息的一一對應,最后完成廊坊增量式空間數(shù)據信息更新,提高城市震害預系統(tǒng)的數(shù)據處理和更新速度。
3.2.1數(shù)據準備
由于地震行業(yè)數(shù)據匯總的Excel文件較多,提交的數(shù)據比較亂,為保證Excel數(shù)據與GIS空間數(shù)據Shapefile文件的無損轉換,需要對Excel數(shù)據在坐標屬性字段上重點檢查。由于空間信息數(shù)據是依賴坐標信息進行轉換的,坐標信息關系到轉換后Shapefile數(shù)據對應的具體位置,因此轉換前的Excel數(shù)據必須都要有坐標屬性字段,且坐標信息正確無誤。
3.2.2Excel-Txt轉換
此階段的目的是實現(xiàn)對Excel數(shù)據的空間信息與屬性信息剝離,按照空間信息屬性字段的值提取“Point”信息,逐行存儲到臨時文件Point.Coo中,按照其他屬性信息字段的值提取“Property”信息,逐行存儲到臨時文件Property.Att中,即可建立Excel數(shù)據到GIS空間數(shù)據Shapefile文件兩者關系。
3.2.3Txt-Shapefile轉換
此階段的目的是實現(xiàn)Point.Coo和Property.Att文件中的空間信息與屬性信息存儲到GIS空間數(shù)據Shapefile文件中。首先創(chuàng)建一個新的Shapfile工作空間,其次將 Point.Coo和Property.Att中的信息通過數(shù)據流對象轉化并存儲到Shapfile工作空間中進行保存。通過上述兩個階段的轉換,數(shù)據即完成了Excel數(shù)據到GIS空間數(shù)據平臺的轉換。
四、小結
當然,通過幾個項目的實踐,對這兩種數(shù)據轉換過程中的一些實際問題也有了更深層次的了解與把握,為便于其他項目借鑒,主要總結了如下幾點。(1)Excel-Txt轉換模版中,對Excel文件數(shù)據格式要求較為嚴格,在以后的數(shù)據匯總中需要形成一套比較完整的數(shù)據模板,這樣就能避免轉換前的大量數(shù)據檢查工作,確保轉換后的空間信息正確,有利于各個地區(qū)間數(shù)據整合。(2)在基于Excel的點空間信息文件與GIS空間數(shù)據Shapfile的數(shù)據轉換過程中以IO數(shù)據流文件作為橋梁,小數(shù)據量的數(shù)據轉換對系統(tǒng)的影響不大,若遇到海量數(shù)據轉換需改進中間介質。(3)現(xiàn)在僅完成了基于Excel的點空間信息文件與GIS空間數(shù)據Shapfile的數(shù)據轉換,基于其他幾何信息的Excel的空間信息文件模板有待確定,最終可借鑒點信息的轉換思路進行轉換。
參考文獻
[1]殷志杰.一種基于VB的Excel與Access間的數(shù)據轉換技術[J].科學論壇
[2]伍云,張東. XML與關系數(shù)據庫的數(shù)據轉換接口的實現(xiàn)[J].電腦開發(fā)與應用,2007
[3]陳立,羅傳文,余向勇,趙慶丹,孫海洪.基于AE和C_的帽兒山CAD用圖到GIS數(shù)據轉換[J].森林工程,2010
[4]馬永昌,李建民.基于VB.NET的AutoCAD數(shù)據轉換技術研究及應用[J].測繪與空間地理信息,2010
[5]宋丙劍,張艷軍.記事本、Excel在Mapsource和Mapgis數(shù)據轉換中的應用探討[J].礦山測量,2008