李鳳生 ,彭順風 ,黃 云 ,黃大鵬
(1. 淮河水利委員會水文局(信息中心),安徽 蚌埠 233001;2. 中國氣象科學研究院,北京 100081)
隨著新一輪治淮工作的推進和淮河水利委員會第一次全國水利普查工作的開展,以及淮河流域管理數(shù)字化工作的不斷深入,高精度地形、高分辨率影像、數(shù)字高程模型和水利工程數(shù)字化成果等數(shù)據(jù)不斷生成和更新,淮河流域的空間數(shù)據(jù)呈現(xiàn)大幅增長的趨勢。這些數(shù)據(jù)具有海量,多類型、屬性、來源、時相等特點,如何科學地組織和管理這些海量數(shù)據(jù),更好地為治淮工作提供基礎數(shù)據(jù)服務,不僅是流域數(shù)字化管理的基礎工作,也是今后淮河水利委員會信息中心日常管理和對外服務的重要內(nèi)容。
為此針對淮河流域空間數(shù)據(jù)的特點及應用要求,分析和選取合適的空間數(shù)據(jù)庫組建模式,研究數(shù)據(jù)的組織模型,設計淮河流域基礎空間數(shù)據(jù)庫,規(guī)范數(shù)據(jù)的入庫流程,實現(xiàn)淮河流域空間和屬性數(shù)據(jù)的統(tǒng)一存儲管理,并對空間數(shù)據(jù)庫的性能優(yōu)化進行探討,以形成具有流域特征的空間數(shù)據(jù)庫的建設方法。希望通過研究,為流域管理數(shù)字化提供合適可行的空間數(shù)據(jù)存儲與管理方法,為“數(shù)字流域”的建設提供數(shù)據(jù)支撐。
空間數(shù)據(jù)因其固有的復雜性和特殊性,一般商用數(shù)據(jù)庫管理系統(tǒng)難以滿足要求??臻g數(shù)據(jù)的管理方式與數(shù)據(jù)庫技術(shù)的發(fā)展緊密聯(lián)系,除文件管理方式外,圍繞空間數(shù)據(jù)管理方法,出現(xiàn)了以下幾種模式[1]:
1)文件與關系數(shù)據(jù)庫混合模式。采用地理信息系統(tǒng)(GIS)軟件文件存儲和管理幾何圖形數(shù)據(jù),屬性數(shù)據(jù)則存儲于關系數(shù)據(jù)庫中,兩者通過目標標識碼相連接。這種管理模式下,幾何圖形和屬性數(shù)據(jù)獨立組織、存儲和管理,并非真正意義的空間數(shù)據(jù)庫。文件系統(tǒng)的數(shù)據(jù)管理功能較弱,在安全性、一致性、并發(fā)訪問控制和數(shù)據(jù)恢復等方面缺少基礎功能。
2)全關系型空間數(shù)據(jù)庫管理模式。這種模式完全依靠普通關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)管理圖形和屬性數(shù)據(jù)。有 2 種方式,一種是基于關系模型的方式,按關系數(shù)據(jù)模型組織圖形數(shù)據(jù),因涉及一系列關系連接運算,這種方式相當費時;另一種方式是將圖形數(shù)據(jù)的變長部分處理成二進制塊字段,省去大量的關系連接操作,但二進制塊的讀寫效率較低,涉及對象嵌套時速度很慢。
3)對象—關系數(shù)據(jù)庫管理模式。以關系數(shù)據(jù)庫為核心引入面向?qū)ο髾C制,利用面向?qū)ο蠼5哪芰Γ峁碗s數(shù)據(jù)的復式查詢支持,是面向?qū)ο蠛完P系型數(shù)據(jù)庫管理系統(tǒng)的結(jié)合。有 2 種方式,一種是“嵌入式”空間數(shù)據(jù)庫引擎,由數(shù)據(jù)庫軟件廠商在關系型數(shù)據(jù)庫中進行擴展,添加專用模塊實現(xiàn)空間數(shù)據(jù)變長記錄的管理,但無法解決空間對象的嵌套問題,且數(shù)據(jù)結(jié)構(gòu)也不能由用戶任意定義,使用上受到一定限制;另一種方式是“中間件”空間數(shù)據(jù)庫引擎,由 GIS 軟件廠商在現(xiàn)有關系型數(shù)據(jù)庫的基礎上增加面向?qū)ο蟮臄?shù)據(jù)模型,利用空間數(shù)據(jù)引擎將地理空間數(shù)據(jù)查詢語言轉(zhuǎn)化成標準的 SQL 查詢語言,并且借助數(shù)據(jù)的空間索引實現(xiàn)對空間數(shù)據(jù)的操作。
4)面向?qū)ο蟮目臻g數(shù)據(jù)庫管理模式。面向?qū)ο竽P瓦m用于空間數(shù)據(jù)的表達和管理,支持變長記錄、對象的嵌套、信息的繼承與聚集,而且允許用戶定義對象。但目前面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)還不夠成熟,在 GIS 領域還不大通用。
通過分析,面向?qū)ο蟮目臻g數(shù)據(jù)庫管理模式雖然先進,但目前尚不成熟且價格昂貴,因而對象—關系數(shù)據(jù)庫是比較理想的選擇,并將成為 GIS 空間數(shù)據(jù)庫發(fā)展的主流[2]。考慮到淮河流域空間數(shù)據(jù)特點及應用需求,選用基于 ArcSDE 中間件空間數(shù)據(jù)庫引擎的方式,構(gòu)建對象—關系型空間數(shù)據(jù)庫,數(shù)據(jù)庫軟件則選用業(yè)界領先的產(chǎn)品。Oracle + ArcSDE 的典型應用方式是目前國際上最先進的地理信息管理方案之一[3]。這種方式提供強大的地理信息存儲訪問機制,對于多種空間數(shù)據(jù),尤其是海量的柵格影像數(shù)據(jù),使用 ArcSDE 的壓縮二進制存儲方式,創(chuàng)建影像金字塔可以大大節(jié)省存儲空間,提高檢索和并發(fā)訪問的響應速度。此外,ArcSDE 具有強大的空間分析功能,提供豐富的應用程序接口,能夠滿足水利空間數(shù)據(jù)的多樣化查詢和展現(xiàn)要求。
淮河流域空間數(shù)據(jù)庫采用 2000 年國家大地坐標系統(tǒng)作為基準坐標系統(tǒng),高程基準采用 1985 國家高程。
矢量數(shù)據(jù)采用地理坐標。地理坐標的數(shù)據(jù)連續(xù)性解決了跨帶問題,保證了地理對象的完整性,便于數(shù)據(jù)庫的查詢檢索和分析應用[4]。需要進行坐標轉(zhuǎn)換和投影變換,但矢量數(shù)據(jù)轉(zhuǎn)換速度快,不改變拓撲和屬性的關聯(lián)等關系,無精度損失。當需要制圖或分發(fā)數(shù)據(jù)時,可以將地理坐標轉(zhuǎn)換成相應坐標系統(tǒng)后輸出。
柵格影像數(shù)據(jù)采用高斯平面坐標。柵格數(shù)據(jù)投影轉(zhuǎn)換不僅費時,而且需要進行重采樣處理,對影像質(zhì)量和數(shù)據(jù)精度都有影響。而采用高斯平面坐標,在相同投影帶范圍之內(nèi)的工程項目可以直接使用數(shù)據(jù),可避免數(shù)據(jù)的投影變換。
基于空間數(shù)據(jù)庫的模式分析,淮河流域空間數(shù)據(jù)的組織采用 ArcSDE Geodatabase 數(shù)據(jù)模型,這是一種面向?qū)ο蟮目臻g數(shù)據(jù)庫模型,通過 ArcSDE 在關系數(shù)據(jù)庫中實現(xiàn)。Geodatabase 以層次結(jié)構(gòu)的數(shù)據(jù)對象組織地理數(shù)據(jù),包含以下 4 種地理數(shù)據(jù)的描述方式:要素的矢量數(shù)據(jù),影像、專題格網(wǎng)和地面的柵格數(shù)據(jù),地面的不規(guī)則三角網(wǎng),地理位置的地址數(shù)據(jù)[5]。
淮河流域的空間數(shù)據(jù)一般存儲為矢量、柵格數(shù)據(jù),以及傳統(tǒng)意義上的屬性表。對于矢量數(shù)據(jù),要素類以 1 組表格來存儲,要素表存儲要素類的幾何坐標、位置信息;空間索引表存儲要素類的索引格網(wǎng)和要素的封裝邊界;業(yè)務表存儲要素類的屬性數(shù)據(jù)。由于水利行業(yè)自身特點,要素屬性信息類別多、專業(yè)性強,無法簡單存儲于業(yè)務表中,通常直接調(diào)用各專用數(shù)據(jù)庫表,通過建立要素關聯(lián)關系,實現(xiàn)空間數(shù)據(jù)和專業(yè)屬性數(shù)據(jù)的關聯(lián)。對于柵格數(shù)據(jù),由于數(shù)據(jù)量較大,數(shù)據(jù)被轉(zhuǎn)換成 SDE 的柵格數(shù)據(jù)格式,并分成若干數(shù)據(jù)塊存放于單獨的塊表記錄中。同時創(chuàng)建多重分辨率的柵格數(shù)據(jù)金字塔,并建立空間索引,提高柵格數(shù)據(jù)的檢索和實現(xiàn)效率。
基于多用戶的 ArcSDE Geodatabase 利用底層關系數(shù)據(jù)庫的優(yōu)點,能夠?qū)崿F(xiàn):支持海量、連續(xù)的 GIS數(shù)據(jù)庫;多用戶的并發(fā)訪問;長事務和版本管理的工作流[6]。
淮河流域空間數(shù)據(jù)主要由數(shù)字線劃圖(DLG)、數(shù)字高程模型(DEM)和遙感影像 3 類數(shù)據(jù)組成。這些數(shù)據(jù)必須按照一定規(guī)則組織起來才能協(xié)同使用,在統(tǒng)一的坐標系統(tǒng)下,DLG 數(shù)據(jù)作為空間數(shù)據(jù)的紐帶,DEM 基于 DLG 生成,而遙感影像數(shù)據(jù)則依賴 DLG 和 DEM 進行幾何和正射校正,數(shù)據(jù)組織模型如圖 1 所示。
圖1 淮河流域空間數(shù)據(jù)庫數(shù)據(jù)組織模型
對于空間與水利專業(yè)屬性數(shù)據(jù)的集成,采用代碼對應的方法,將圖形要素的代碼與專業(yè)屬性數(shù)據(jù)庫的標識碼一一對應,建立關聯(lián)關系表形成數(shù)據(jù)的統(tǒng)一體,從而實現(xiàn) 2 類數(shù)據(jù)的統(tǒng)一存儲和集成使用。
空間數(shù)據(jù)的元數(shù)據(jù)庫內(nèi)容分為基本元和完全元2 個級別的數(shù)據(jù)?;驹獢?shù)據(jù)內(nèi)容主要包括基本識別(標題名稱、地理范圍等)、數(shù)據(jù)組織(數(shù)據(jù)結(jié)構(gòu)等)、空間參考(參考坐標系、編碼方法等)、數(shù)據(jù)質(zhì)量(空間位置和屬性的精度、完整性、一致性及數(shù)據(jù)生產(chǎn)的方法等)、數(shù)據(jù)來源及其他參考等信息;完全元數(shù)據(jù)用于全面詳細描述數(shù)據(jù)集,數(shù)據(jù)集系列、要素和屬性,包括主要元數(shù)據(jù)子集的 8 個信息,即:數(shù)據(jù)集基本、單位與發(fā)行、關鍵詞、坐標范圍、數(shù)據(jù)更新記錄、空間數(shù)據(jù)、圖層數(shù)據(jù)和非空間數(shù)據(jù)描述等信息。
數(shù)據(jù)庫設計包括邏輯和物理設計。物理設計包括數(shù)據(jù)庫的物理結(jié)構(gòu),存儲結(jié)構(gòu)、方式等?;诳臻g數(shù)據(jù)庫模式和 Geodatabase 數(shù)據(jù)模型,淮河流域空間數(shù)據(jù)庫的邏輯層次結(jié)構(gòu)劃為 5 級:總庫—分庫—子庫—邏輯層—物理層。
1)總庫。由于 ArcSDE 未提供 Geodatabase 之上的物理存儲概念,因此總庫的命名通過 Oracle 數(shù)據(jù)庫中自定義的數(shù)據(jù)結(jié)構(gòu)定義。總庫命名為淮委的拼音縮寫“HW”,別名為“淮河流域基礎空間 01 數(shù)據(jù)庫”。
2)分庫??値煜掳凑諗?shù)據(jù)來源的比例尺等級劃分分庫,每級比例尺的數(shù)據(jù)作為 1 個分庫。同總庫一樣,分庫的命名也是通過 Oracle 數(shù)據(jù)庫中自定義的數(shù)據(jù)結(jié)構(gòu)定義。分庫的命名規(guī)則如下:1∶250000 為“250K”,1∶50000 為“50K”,1∶5000為“5K”,別名為“**萬空間數(shù)據(jù)庫”。
3)子庫。每個分庫按數(shù)據(jù)的形式劃分子庫(數(shù)據(jù)集),每種數(shù)據(jù)形式對應 1 個子庫,共分為數(shù)字線劃圖、高程模型、遙感或正攝影像等數(shù)據(jù)庫。子庫對應于 ArcSDE 的數(shù)據(jù)集,命名規(guī)則如下:矢量數(shù)據(jù)庫為“DLG”,數(shù)據(jù)高程模型數(shù)據(jù)庫為“DEM”,數(shù)字正射影像數(shù)據(jù)庫為“DOM”,數(shù)字柵格地圖數(shù)據(jù)庫為“DRG”,地名數(shù)據(jù)庫為“PN”。
4)邏輯層。對于數(shù)字線劃數(shù)據(jù)庫按照地理要素的分類進行邏輯分層,每個邏輯層按要素類進行物理分層。
5)物理層。SDE 中相對應要素類的命名規(guī)則為總庫名 + 分庫名 +“_”+ 子庫名 +“_”+ 邏輯層代碼 +“_”+ 物理層層代碼。例如 1∶50000 DLG“河流”面層的完整 Feature Class 名為HW50K_DLG_HELIU_PY。
淮河流域空間數(shù)據(jù)庫建設的數(shù)據(jù)入庫流程如圖 2所示,可分為以下 5 個步驟:
圖2 數(shù)據(jù)入庫流程圖
1)規(guī)范化處理。原始成果數(shù)據(jù)的差別是客觀存在的,若不進行必要的規(guī)范化處理,則無法滿足建庫的要求。規(guī)范化處理過程主要包括:數(shù)據(jù)分析、要素加工整理、代碼及屬性轉(zhuǎn)換、坐標變換、數(shù)據(jù)接邊和重構(gòu)拓撲等。
2)數(shù)據(jù)檢查。對規(guī)范化處理的成果進行檢查,主要包括數(shù)據(jù)格式、數(shù)據(jù)完整性、分層類型、編碼等檢查工作,不符合要求的需進行重新處理。
3)數(shù)據(jù)轉(zhuǎn)換與整理。數(shù)據(jù)轉(zhuǎn)換與整理過程是數(shù)據(jù)入庫過程中的重要環(huán)節(jié),數(shù)據(jù)轉(zhuǎn)換包括格式、代碼轉(zhuǎn)換,圖層重新定義等;整理工作包括圖形,空間、符號和文字屬性等整理內(nèi)容。通過轉(zhuǎn)換與整理,解決數(shù)據(jù)格式、分層分類編碼等方面的差異。
4)數(shù)據(jù)審核與驗收。以數(shù)據(jù)的規(guī)范性、完整性、正確性為原則,對數(shù)據(jù)的定義和組織、數(shù)據(jù)精度、圖形空間關系、屬性邏輯關系、圖屬一致性、圖幅接邊等進行全面審核。質(zhì)量驗收是在數(shù)據(jù)質(zhì)量檢查的基礎上依據(jù)驗收標準對數(shù)據(jù)質(zhì)量進行評價,從而決定驗收與否。數(shù)據(jù)審核與驗收是空間數(shù)據(jù)入庫前必不可少的工作內(nèi)容,是空間數(shù)據(jù)庫質(zhì)量的重要保證。
5)數(shù)據(jù)入庫。合理設置入庫參數(shù),將質(zhì)檢合格的空間數(shù)據(jù)入庫,可借助 ArcCataLog 或?qū)S密浖搿?/p>
空間數(shù)據(jù)的時序變化管理一直是 GIS 應用面臨主要的問題,ArcSDE 空間數(shù)據(jù)版本管理(Versioning)為解決這一問題提供了有效的途徑?;春恿饔蚩臻g數(shù)據(jù)庫的時態(tài)管理借助于 ArcSDE 空間數(shù)據(jù)版本管理功能實現(xiàn),對于不同的數(shù)據(jù)變化,ArcSDE 生成不同的“版本”,實現(xiàn)對數(shù)據(jù)變化的跟蹤,只要指定某一版本(名稱),即可得到當時的空間數(shù)據(jù),并能夠在此基礎上進行進一步操作,從而實現(xiàn)空間數(shù)據(jù)的時態(tài)管理。
隨著數(shù)據(jù)量和訪問用戶數(shù)的增長,性能壓力將成為制約空間數(shù)據(jù)庫的主要因素,為保證響應速度和服務質(zhì)量,需要對數(shù)據(jù)庫進行調(diào)優(yōu)。性能優(yōu)化涉及環(huán)節(jié)較多,需要在數(shù)據(jù)庫設計、建設和管理維護中統(tǒng)籌考慮,并且須按照一定的順序進行,避免前后調(diào)整之間相互影響。結(jié)合 Oracle 數(shù)據(jù)庫服務器優(yōu)化和 ArcSDE 的調(diào)優(yōu),淮河流域空間數(shù)據(jù)庫的性能優(yōu)化主要從以下幾個方面考慮:
1)合理布局數(shù)據(jù)庫,減少磁盤 IO 次數(shù)。在任何 GIS 數(shù)據(jù)庫中,磁盤 IO 速度對整個系統(tǒng)性能有重要影響,磁盤的 IO 爭用往往是數(shù)據(jù)庫性能的瓶頸[2]。創(chuàng)建數(shù)據(jù)庫時,建立空間數(shù)據(jù)庫的臨時表空間,避免與其它應用共同占用默認的臨時表空間,盡可能將聯(lián)機日志、數(shù)據(jù)、臨時表空間等文件,以及索引表、回滾表空間分散到各個磁盤上,減少數(shù)據(jù)庫文件 IO 競爭,從而有效改善服務器的性能。對于磁盤陣列,需合理規(guī)劃 RAID(磁盤陣列)方式,其中 RAID10 的讀寫效率和安全性高,適合存放控件文件、系統(tǒng)表空間、臨機日志文件等;RAID5 方式能獲得更大的存儲空間,且連續(xù)讀的效率高,適合存儲空間數(shù)據(jù)庫的數(shù)據(jù)文件。為減少數(shù)據(jù)鏈接和行遷移,提高磁盤空間的利用率,在數(shù)據(jù)庫設計時要確定合適的數(shù)據(jù)塊大小和存儲參數(shù),推薦將DB_Block_Size 設置為 16 kB;
2)調(diào)整參數(shù)和內(nèi)存分配。調(diào)整 Oracle 和ArcSDE 的相應參數(shù),合理配置資源,提高內(nèi)存的利用率;Oracle 系統(tǒng)全局區(qū)(System GlobalArea,SGA)本身需要頻繁地進行釋放、分配,應把 SGA放在主存中,不要放在虛擬內(nèi)存中。典型的內(nèi)存分配為:一半物理內(nèi)存給 SGA;另一半物理內(nèi)存分配給操作系統(tǒng)、Oracle 的存儲過程和 ArcSDE;共享池通常使用默認值;增加內(nèi)存時,應重點給塊緩存,其他使用默認值以提高系統(tǒng)性能。
3)調(diào)整空間索引。ArcSDE 使用格網(wǎng)索引機制,分為 3 級層次,是覆蓋整個要素類的二維索引。調(diào)整索引層次將會影響空間索引表的大小,由于空間數(shù)據(jù)的差異性,沒有統(tǒng)一配置的模式,需嘗試調(diào)整以達到最好性能,并定期重建索引以提升數(shù)據(jù)查詢的性能。
4)創(chuàng)建視圖。對于重復的查詢,可采用創(chuàng)建視圖的方式加快查詢速度,提高表空間的檢索效率。
根據(jù)流域數(shù)據(jù)特點和應用需求,基于 ArcSDE+Oracle 對象—關系空間數(shù)據(jù)庫方式構(gòu)建流域基礎空間數(shù)據(jù)庫,通過合理數(shù)據(jù)模型組織和數(shù)據(jù)庫結(jié)構(gòu)設計,在同一坐標系統(tǒng)下可實現(xiàn)大規(guī)模、多類型海量空間數(shù)據(jù)的統(tǒng)一管理,提供強大的地理信息存儲訪問和分析功能?;诖朔椒ńㄔO的淮河流域空間數(shù)據(jù)庫在流域日常管理中發(fā)揮了重要作用,其數(shù)據(jù)組織模型和建設方法也可應用于其它流域或類似級別的空間數(shù)據(jù)庫建設。以該數(shù)據(jù)模型為基礎,可繼續(xù)將水文時間序列數(shù)據(jù)、人文要素納入到流域數(shù)據(jù)模型中,建立完善的水文時空數(shù)據(jù)模型,進一步探索時空數(shù)據(jù)動態(tài)結(jié)合反映水文自然過程的變化規(guī)律。
[1]龔健雅. 空間數(shù)據(jù)庫管理系統(tǒng)的概念與發(fā)展趨勢[J]. 測繪科學,2001, 26 (3): 4-9.
[2]東凱,方裕. 空間數(shù)據(jù)庫模型概念與結(jié)構(gòu)研究[J]. 地理信息世界,2004, 2 (2): 8-16.
[3]趙村民,宋利好,趙曉民. 基于 Oracle 與 ArcSDE 的空間信息訪問優(yōu)化[J]. 吉林大學學報(信息科學版),2004, 22 (3): 283-288.
[4]喻冰春. 基于ArcSDE的省級空間數(shù)據(jù)庫管理系統(tǒng)的設計與實現(xiàn)[D]. 長春:吉林大學,2006: 30-31.
[5]張佐幫,尚穎娟. 基于 Geodatabase 的面向?qū)ο罂臻g數(shù)據(jù)庫設計[J]. 地理空間信息,2005, 3 (2): 33-35.
[6]張耀波,張遷. 基于 GeoDatabase 海量地理信息數(shù)據(jù)的組織與管理[J]. 地理空間信息,2011, 9 (3): 44-50.