汪升捷 楊帆 凡建林 姚輝
(浙江省測(cè)繪科學(xué)技術(shù)研究院 浙江杭州 310023)
測(cè)繪領(lǐng)域的日常工作中,充分利用已有資料,解決多種數(shù)據(jù)格式共享,經(jīng)常需要數(shù)據(jù)格式之間的轉(zhuǎn)換[1]。SHP 數(shù)據(jù)和MDB 數(shù)據(jù)是兩種非常常見的數(shù)據(jù)格式,如何實(shí)現(xiàn)數(shù)據(jù)格式按照既定要求快速轉(zhuǎn)換[2],是日常數(shù)據(jù)處理工作的中一部分,同時(shí)也決定著整個(gè)工程項(xiàng)目的質(zhì)量。因而,實(shí)現(xiàn)SHP 數(shù)據(jù)和MDB 數(shù)據(jù)庫(kù)轉(zhuǎn)換至關(guān)重要。
SHP 格式數(shù)據(jù)全稱shapefile,是一種基于ArcGIS 平臺(tái)的矢量數(shù)據(jù)文件,包含空間數(shù)據(jù)的幾何特征和屬性[3]。至少由shp、dbf 和shx 三個(gè)文件組成,分別用于存儲(chǔ)地理空間信息、屬性信息以及前兩者之間的關(guān)系索引,是GIS 中比較通用的一種數(shù)據(jù)格式。常用SHP 格式數(shù)據(jù)文件組成部分見圖1。
圖1 常用SHP 格式數(shù)據(jù)文件組成部分
當(dāng)通過對(duì)數(shù)據(jù)的坐標(biāo)系統(tǒng)定義后,會(huì)生成prj 文件存儲(chǔ)坐標(biāo)系統(tǒng)信息。對(duì)SHP 數(shù)據(jù)進(jìn)行瀏覽使用后,另外產(chǎn)生shp.xml、sbn、sbx 三種文件。其中shp.xml 文件是對(duì)元數(shù)據(jù)瀏覽后產(chǎn)生的元數(shù)據(jù)文件,sbn和sbx 文件則存儲(chǔ)空間索引,加速對(duì)空間數(shù)據(jù)的讀取。常用SHP 格式數(shù)據(jù)文件組成類型對(duì)照見表1。
SHP 數(shù)據(jù)文件大小限制在2GB 內(nèi)。數(shù)據(jù)字段屬性已設(shè)定的無法更改,字段間順序不能調(diào)整,只能調(diào)整顯示順序。
MDB 格式數(shù)據(jù)是ArcGIS 發(fā)展推出的一種基于RDBMS 存儲(chǔ)格式的Geodatabase 數(shù)據(jù)中的一類。因其存儲(chǔ)量小,存儲(chǔ)在Access 的MDB 上,且易于編輯,是目前中小型數(shù)據(jù)庫(kù)的主要選擇類型。在ArcGIS 中被劃分為PersonalGeodatabase,中文名為個(gè)人地理數(shù)據(jù)庫(kù),MDB 格式可以通過Access 打開編輯。MDB 個(gè)人地理數(shù)據(jù)庫(kù)及系統(tǒng)文件組成見圖2。
表1 常用SHP 格式數(shù)據(jù)文件組成類型對(duì)照表
圖2 MDB 個(gè)人地理數(shù)據(jù)庫(kù)及系統(tǒng)文件組成
MDB 可以根據(jù)數(shù)據(jù)情況建立要素類數(shù)據(jù)或是要素集,在Access 打開編輯時(shí)顯示要素類對(duì)應(yīng)文件,在ArcGIS 軟件使用時(shí),要素類和要素集則區(qū)分顯示[4]。MDB 數(shù)據(jù)文件大小限制在4GB 內(nèi)。數(shù)據(jù)字段可根據(jù)需求調(diào)整,字段順序可以通過Access 編輯調(diào)整。MDB 個(gè)人地理數(shù)據(jù)庫(kù)系統(tǒng)文件說明見表2。
表2 MDB 個(gè)人地理數(shù)據(jù)庫(kù)系統(tǒng)文件說明
通常情況下,對(duì)數(shù)據(jù)的處理主要分為SHP 轉(zhuǎn)換到SHP、SHP 轉(zhuǎn)換到MDB、MDB 轉(zhuǎn)換到SHP 以及MDB 轉(zhuǎn)換到MDB 四類。只針對(duì)數(shù)據(jù)的實(shí)用性及可操作性做一定要求,ArcGIS 軟件對(duì)應(yīng)的轉(zhuǎn)換工具進(jìn)行批量轉(zhuǎn)換,能完全滿足這部分作業(yè)要求[5]。
除常規(guī)工作外,還存在數(shù)據(jù)轉(zhuǎn)換的前置設(shè)定要求,既對(duì)數(shù)據(jù)格式及屬性字段本身有明確的固定設(shè)定。此時(shí)再直接采用ArcGIS 軟件工具箱工具直接轉(zhuǎn)換,無法達(dá)到前置設(shè)定要求,需要有對(duì)應(yīng)方案進(jìn)行處理[6]。
根據(jù)目前遇到情況并歸類后,主要分為固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)和固定格式的SHP 數(shù)據(jù)目標(biāo)兩大類。
3.3.1 固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)
固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)可根據(jù)SHP 數(shù)據(jù)源的不同分為同類參數(shù)數(shù)據(jù)庫(kù)和非同類參數(shù)數(shù)據(jù)庫(kù)。同類參數(shù)數(shù)據(jù)庫(kù)指SHP 數(shù)據(jù)源的字段屬性設(shè)定包括字段順序等同目標(biāo)數(shù)據(jù)庫(kù)一致。非同類參數(shù)數(shù)據(jù)庫(kù)指SHP 數(shù)據(jù)源的字段屬性設(shè)定或字段順序等同目標(biāo)數(shù)據(jù)庫(kù)不一致。根據(jù)要求描述,有三種方案可以操作實(shí)現(xiàn)。
⑴方案一:先根據(jù)給定目標(biāo)數(shù)據(jù)庫(kù)結(jié)構(gòu),人工建立數(shù)據(jù)庫(kù),再將轉(zhuǎn)換后數(shù)據(jù)導(dǎo)入新建立的目標(biāo)數(shù)據(jù)庫(kù)中。
⑵方案二:先利用ArcGIS 軟件對(duì)應(yīng)的轉(zhuǎn)換工具對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再根據(jù)給定目標(biāo)數(shù)據(jù)庫(kù)結(jié)構(gòu)對(duì)轉(zhuǎn)換后的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)進(jìn)行調(diào)整修正。
⑶方案三:先根據(jù)給定目標(biāo)數(shù)據(jù)庫(kù)利用XML 工作空間文檔進(jìn)行目標(biāo)空數(shù)據(jù)庫(kù)的建立,再將轉(zhuǎn)換后數(shù)據(jù)導(dǎo)入新建立的目標(biāo)空數(shù)據(jù)庫(kù)中。XML 數(shù)據(jù)導(dǎo)出對(duì)話框見圖3。具體步驟如下:
圖3 XML 數(shù)據(jù)導(dǎo)出對(duì)話框
①根據(jù)提供數(shù)據(jù)庫(kù)導(dǎo)出XML 工作空間文檔,結(jié)合數(shù)據(jù)實(shí)際情況,設(shè)定導(dǎo)出內(nèi)容和圖層;
②新建個(gè)人地理數(shù)據(jù)庫(kù),將上一步導(dǎo)出的XML工作空間文檔導(dǎo)入,形成備用數(shù)據(jù)庫(kù)。此步驟能保持?jǐn)?shù)據(jù)庫(kù)格式設(shè)定要求,且無需重新一一對(duì)應(yīng)建立;
③利用ArcGIS 軟件對(duì)應(yīng)的轉(zhuǎn)換工具進(jìn)行數(shù)據(jù)轉(zhuǎn)換常規(guī)操作;
④將處理后數(shù)據(jù)加載至對(duì)應(yīng)圖層中,數(shù)據(jù)自動(dòng)進(jìn)行匹配工作。
如果給定目標(biāo)數(shù)據(jù)庫(kù)本身為空數(shù)據(jù)庫(kù),直接從步驟三開始操作。
(4)三方案比較
方案三相對(duì)于方案一,能減少人為錯(cuò)誤及作業(yè)時(shí)間,提高作業(yè)效率;
方案三相對(duì)于方案二,能減少數(shù)據(jù)加載后屬性字段結(jié)構(gòu)、長(zhǎng)度及順序等繁瑣的信息調(diào)整工作,避免調(diào)整操作中信息的丟失。固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)方案比較說明見表3。
表3 固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)方案比較說明
如果給定目標(biāo)數(shù)據(jù)庫(kù)只有文字描述,并無數(shù)據(jù)庫(kù)形式,則方案三無法執(zhí)行。方案一適合字段結(jié)構(gòu)要求較少的數(shù)據(jù),方案二適合數(shù)據(jù)量較大的數(shù)據(jù)??删C合考慮,并在方案一或方案二中選擇。
3.3.2 固定格式的SHP 數(shù)據(jù)目標(biāo)
因SHP 格式數(shù)據(jù)的特殊性,其字段信息甚至字段間的順序都不可更改。因此根據(jù)SHP 數(shù)據(jù)用途的不同,對(duì)其數(shù)據(jù)質(zhì)量要求也不同,而對(duì)應(yīng)采取的處理方式也會(huì)不同。
3.3.2.1 與給定目標(biāo)完全一致
此類數(shù)據(jù)為高質(zhì)量數(shù)據(jù),主要是為以后數(shù)據(jù)建庫(kù)等工作使用,除屬性值保持一致外,其字段結(jié)構(gòu)及其屬性值必須保持嚴(yán)格一致。根據(jù)要求描述,主要有兩種方案可選擇。
⑴方案四
①現(xiàn)利用ArcGIS 軟件對(duì)應(yīng)的轉(zhuǎn)換工具對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換;
②通過與目標(biāo)格式的比對(duì),對(duì)不一致字段之后的所有字段按照目標(biāo)格式,按順序進(jìn)行全部重新新建設(shè)置;③將屬性值賦予新建立的正確字段;
④剔除多余、錯(cuò)誤字段,獲得與目標(biāo)數(shù)據(jù)結(jié)構(gòu)完全一致成果。
⑵方案五
①SHP 目標(biāo)格式數(shù)據(jù)清除,形成空數(shù)據(jù)文件,保留字段設(shè)定,SHP 數(shù)據(jù)數(shù)據(jù)清除見圖4;
②將數(shù)據(jù)導(dǎo)入至該空數(shù)據(jù)文件,形成自動(dòng)匹配,獲得與目標(biāo)數(shù)據(jù)結(jié)構(gòu)完全一致成果。
圖4 方案五SHP 數(shù)據(jù)數(shù)據(jù)清除
⑶兩方案比較
方案四適合字段結(jié)構(gòu)基本無變化的數(shù)據(jù)文件,方案五適合空間數(shù)據(jù)量較小數(shù)據(jù)文件。當(dāng)數(shù)據(jù)量大且字段結(jié)構(gòu)變化較大時(shí),需綜合考慮后選擇。固定格式的SHP 數(shù)據(jù)目標(biāo)完全一致方案比較說明見表4。
表4 固定格式的SHP 數(shù)據(jù)目標(biāo)完全一致方案比較說明
3.3.2.2 與給定目標(biāo)基本一致
該類數(shù)據(jù)主要作為保持通用格式使用,其特點(diǎn)是除屬性值及字段順序保持一致外,字段結(jié)構(gòu)主要體現(xiàn)為雙精度、浮點(diǎn)型等類數(shù)據(jù)字段精度和小數(shù)位設(shè)置不一致。針對(duì)該要求數(shù)據(jù),目前也有兩種轉(zhuǎn)換方案。
(1)方案六:通過SHP 格式數(shù)據(jù)本身屬性表DBF 進(jìn)行編輯,采用Microsoft Office Excel 97-2003版本編輯后順序可調(diào)整保持一致,但部分雙精度、浮點(diǎn)型類字段設(shè)定被自動(dòng)定義;
(2)方案七:通過建立MDB 格式數(shù)據(jù),根據(jù)目標(biāo)調(diào)整后,導(dǎo)出為SHP 數(shù)據(jù),因MDB 數(shù)據(jù)庫(kù)格式中對(duì)雙精度、浮點(diǎn)型等類字段的精度和小數(shù)無相關(guān)設(shè)定對(duì)話框,導(dǎo)出SHP 數(shù)據(jù)后,該部分字段屬性默認(rèn)值為0。MDB 和SHP 雙精度字段數(shù)據(jù)類型比較見圖5。
圖5 MDB(右)和SHP(左)雙精度字段數(shù)據(jù)類型比較
(3)兩方案比較
通過作業(yè)比較,方案七比方案六處理更便捷,容易對(duì)數(shù)據(jù)進(jìn)行把控,固定格式的SHP 數(shù)據(jù)目標(biāo)基本一致方案比較說明見表5。
表5 固定格式的SHP 數(shù)據(jù)目標(biāo)基本一致方案比較說明
通過固定格式的MDB 數(shù)據(jù)庫(kù)目標(biāo)方案及固定格式的SHP 數(shù)據(jù)目標(biāo)方案間各自的比較,發(fā)現(xiàn)在數(shù)據(jù)管理上MDB 數(shù)據(jù)庫(kù)相對(duì)于SHP 數(shù)據(jù)有較大優(yōu)勢(shì)。MDB 數(shù)據(jù)庫(kù)以數(shù)據(jù)庫(kù)的概念管理數(shù)據(jù),同時(shí)在ArcGIS 軟件中被劃定為個(gè)人地理數(shù)據(jù)庫(kù),有其一定的靈活性和自由性。作為目前使用最廣的中小型數(shù)據(jù)庫(kù)載體,數(shù)據(jù)的處理與編輯體驗(yàn)有較高舒適性,比較適合目前大部分GIS 企業(yè)的生產(chǎn)應(yīng)用模式。
SHP 格式數(shù)據(jù)作為通用格式數(shù)據(jù)得到廣泛使用,但同時(shí)存在數(shù)據(jù)管理修復(fù)或是數(shù)據(jù)整理上的缺陷,特別是字段等信息的修改處理上是一大難點(diǎn)。MDB 數(shù)據(jù)庫(kù)因結(jié)構(gòu)自身原因,無法與SHP 做到完美匹配對(duì)應(yīng),針對(duì)兩種格式的數(shù)據(jù)屬性特點(diǎn),在不影響數(shù)據(jù)使用,滿足數(shù)據(jù)處理的最終要求的基礎(chǔ)上,建議可以考慮適當(dāng)放寬特定需求,以換取作業(yè)效率。
在大數(shù)據(jù)時(shí)代下,數(shù)據(jù)庫(kù)的建立使用將會(huì)更加頻繁,數(shù)據(jù)的管理將更加有效靈活。以MDB 為存儲(chǔ)基礎(chǔ)的中小數(shù)據(jù)庫(kù)將會(huì)逐漸取代通用式、過程式的SHP 數(shù)據(jù)。