寧新穩(wěn),韓祖杰
(1.鐵道第三勘察設(shè)計(jì)院集團(tuán)有限公司,天津 300251;2.西南交通大學(xué) 地球科學(xué)與環(huán)境工程學(xué)院,成都 611756)
基于ArcSDE的DLG數(shù)據(jù)入庫(kù)系統(tǒng)研究與開(kāi)發(fā)
寧新穩(wěn)1,2,韓祖杰1
(1.鐵道第三勘察設(shè)計(jì)院集團(tuán)有限公司,天津 300251;2.西南交通大學(xué) 地球科學(xué)與環(huán)境工程學(xué)院,成都 611756)
大比例尺數(shù)字線劃圖(DLG)數(shù)據(jù)是鐵路勘察設(shè)計(jì)中重要、使用廣泛的基礎(chǔ)地理數(shù)據(jù),如何實(shí)現(xiàn)對(duì)DLG數(shù)據(jù)的高效存儲(chǔ)和管理是基礎(chǔ)地理信息管理系統(tǒng)建設(shè)的重點(diǎn)和難點(diǎn)。研究采用VB.NET和ArcGIS Engine作為平臺(tái)前端開(kāi)發(fā)工具,利用ArcSDE+Oracle作為后臺(tái)數(shù)據(jù)服務(wù)器存儲(chǔ)管理空間數(shù)據(jù),成功開(kāi)發(fā)了DLG數(shù)據(jù)入庫(kù)系統(tǒng),實(shí)現(xiàn)了DLG數(shù)據(jù)的批量、分層、自動(dòng)、快速入庫(kù)。
DLG;數(shù)據(jù)入庫(kù);ArcSDE Oracle;基礎(chǔ)地理信息
鐵道第三勘察設(shè)計(jì)院集團(tuán)有限公司在長(zhǎng)期的鐵路勘察設(shè)計(jì)中,生產(chǎn)了大量的1:500、1:2 000、1:5 000、1:10 000、1:50 000多種大比例尺數(shù)字線劃圖(DLG)、數(shù)字高程模型(DEM)、正射影像圖(DOM)、數(shù)字柵格地圖(DRG)等基礎(chǔ)地理數(shù)據(jù)產(chǎn)品,它們是鐵路勘察、設(shè)計(jì)、施工中最基本的數(shù)據(jù)資料和依據(jù)。為了減少數(shù)據(jù)冗余和資源浪費(fèi),實(shí)現(xiàn)基礎(chǔ)地理信息資源的高效共享,滿足各業(yè)務(wù)部門(mén)對(duì)基礎(chǔ)數(shù)據(jù)資料應(yīng)用的需求,需要建立一個(gè)對(duì)基礎(chǔ)地理數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化管理和維護(hù)的基礎(chǔ)地理信息管理系統(tǒng),通過(guò)采用先進(jìn)的分布式數(shù)據(jù)庫(kù)管理方式,為基礎(chǔ)地理數(shù)據(jù)的空間信息化管理提供可視化平臺(tái),為各專(zhuān)業(yè)和部門(mén)提供完善、優(yōu)質(zhì)高效的地理空間數(shù)據(jù)服務(wù),同時(shí)為“數(shù)字鐵路”空間基礎(chǔ)設(shè)施建設(shè)提供數(shù)據(jù)基礎(chǔ)。
DLG數(shù)據(jù)具有數(shù)據(jù)量大、要素復(fù)雜、精度要求高、質(zhì)量要求嚴(yán)、應(yīng)用范圍廣等特點(diǎn),如何實(shí)現(xiàn)對(duì)DLG數(shù)據(jù)的高效存儲(chǔ)和管理是基礎(chǔ)地理信息管理系統(tǒng)建設(shè)的重點(diǎn)和難點(diǎn)。本文研究采用Oracle空間數(shù)據(jù)庫(kù)系統(tǒng)對(duì)DLG數(shù)據(jù)進(jìn)行存儲(chǔ)管理,選用ArcSDE空間數(shù)據(jù)引擎作為應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)服務(wù)器之間的接口,利用ArcGIS Engine提供的組件實(shí)現(xiàn)DLG數(shù)據(jù)的入庫(kù)管理。
空間數(shù)據(jù)庫(kù)是采用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS,Relational Data Base Managment System)來(lái)管理空間數(shù)據(jù),具有數(shù)據(jù)的結(jié)構(gòu)化、數(shù)據(jù)共享等優(yōu)點(diǎn)。目前的空問(wèn)數(shù)據(jù)庫(kù)基本上都是建立在關(guān)系型數(shù)據(jù)庫(kù)之上,通過(guò)附加一個(gè)中間件(空間數(shù)據(jù)引擎),將不同的操作系統(tǒng)和數(shù)據(jù)庫(kù)平臺(tái)的差異屏蔽在中間件之后,這樣也使系統(tǒng)GIS功能應(yīng)用與后臺(tái)數(shù)據(jù)訪問(wèn)實(shí)現(xiàn)分離,從而降低了系統(tǒng)的復(fù)雜度。
Oracle+ArcSDE是目前成熟、穩(wěn)定的空間數(shù)據(jù)管理技術(shù)。Oracle關(guān)系型數(shù)據(jù)庫(kù)支持大數(shù)據(jù)庫(kù)、多用戶的高性能事務(wù)處理,在海量數(shù)據(jù)的存儲(chǔ)、查詢、管理方面具有很大優(yōu)勢(shì),在處理速度和穩(wěn)定性方面都有很好的表現(xiàn)[1]。
ArcSDE是空間數(shù)據(jù)庫(kù)解決方案,它在客戶端GIS應(yīng)用程序和RDBMS間提供了一條數(shù)據(jù)通路,通過(guò)該通路可以實(shí)現(xiàn)在數(shù)據(jù)庫(kù)中對(duì)空間數(shù)據(jù)的共享和管理[2~3]。由于利用了數(shù)據(jù)庫(kù)的強(qiáng)大數(shù)據(jù)查詢機(jī)制,ArcSDE可以管理海量的無(wú)縫地理數(shù)據(jù),可以實(shí)現(xiàn)在多用戶條件下的高效并發(fā)訪問(wèn)。它為所有的圖層建立了層表(layer table),以便用于索引,加快查詢速度。每一個(gè)圖層由業(yè)務(wù)表(business table)、特征表(feature table)、空間索引表(spatial index table)和坐標(biāo)表(point table)組成,在RDBMS中存儲(chǔ)和管理矢量數(shù)據(jù)。ArcSDE鏈接采用DBMS Server、ArcSDE Server和Client三層體系結(jié)構(gòu),ArcSDE服務(wù)器端軟件在RDBMS基礎(chǔ)上安裝,ArcSDE負(fù)責(zé)和服務(wù)器的所有信息通信,客戶端的請(qǐng)求先提交給ArcSDE,再由ArcSDE提交給數(shù)據(jù)庫(kù)??臻g數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖1所示。
圖1 空間數(shù)據(jù)庫(kù)結(jié)構(gòu)圖
2.1 數(shù)據(jù)質(zhì)量檢查
DLG類(lèi)型的基礎(chǔ)地形圖數(shù)據(jù)通過(guò)ArcSDE存入空間數(shù)據(jù)庫(kù)中,不經(jīng)過(guò)數(shù)據(jù)檢查分析而構(gòu)建的空間數(shù)據(jù)庫(kù),會(huì)出現(xiàn)入庫(kù)后的數(shù)據(jù)丟失、變形,空間邏輯關(guān)系錯(cuò)誤等情況,從而對(duì)使用空間數(shù)據(jù)庫(kù)造成很大影響。因此,必須對(duì)基礎(chǔ)地形圖數(shù)據(jù)的質(zhì)量進(jìn)行高效、細(xì)致的檢查,包括:完整性檢查、空間邏輯檢查、DEM數(shù)據(jù)檢查和拓?fù)湟恢滦詸z查等4個(gè)方面,保證入庫(kù)數(shù)據(jù)的質(zhì)量[4],具體內(nèi)容如表1所示。
表1 DLG數(shù)據(jù)檢查內(nèi)容表
基礎(chǔ)地理信息管理系統(tǒng)采用ObjectARX技術(shù),在AutoCAD2010平臺(tái)下成功開(kāi)發(fā)了DLG數(shù)據(jù)質(zhì)量檢查軟件。
2.2 元數(shù)據(jù)制定和生成
根據(jù)國(guó)家和原鐵道部地理信息元數(shù)據(jù)標(biāo)準(zhǔn),結(jié)合測(cè)繪生產(chǎn)的實(shí)際情況,制定DLG數(shù)據(jù)的元數(shù)據(jù)內(nèi)容,形成有一定層次結(jié)構(gòu)的,可滿足數(shù)據(jù)共享需求和數(shù)據(jù)管理要求的元數(shù)據(jù)體系結(jié)構(gòu),包括數(shù)據(jù)基本信息、數(shù)據(jù)質(zhì)量信息、數(shù)據(jù)坐標(biāo)系信息等內(nèi)容[5]。元數(shù)據(jù)與基礎(chǔ)地理數(shù)據(jù)的生產(chǎn)、加工、處理、生產(chǎn)管理、質(zhì)量檢查、數(shù)據(jù)入庫(kù)、用戶的查詢應(yīng)用等環(huán)節(jié)緊密結(jié)合,它能夠幫助用戶了解基礎(chǔ)地理信息,能更好地實(shí)現(xiàn)數(shù)據(jù)質(zhì)量控制、數(shù)據(jù)共享,達(dá)到測(cè)繪生產(chǎn)的共享和動(dòng)態(tài)管理?;A(chǔ)地理信息管理系統(tǒng)開(kāi)發(fā)了元數(shù)據(jù)自動(dòng)生成模塊,能夠批量生成基礎(chǔ)地理數(shù)據(jù)的元數(shù)據(jù)。
ArcGIS系列產(chǎn)品中的ArcCatolog軟件提供了數(shù)據(jù)入庫(kù)功能,DLG數(shù)字地形圖通過(guò)ArcCatolog錄入數(shù)據(jù)庫(kù)中,將被存儲(chǔ)為點(diǎn)、線、面、注記和multipatch共5個(gè)要素圖層。其中,地形圖中的面對(duì)象被存儲(chǔ)到面要素和線要素圖層中,文字注記被保存為點(diǎn)要素和注記,塊對(duì)象被保存為點(diǎn)要素,而組成塊對(duì)象的點(diǎn)、線、面又將分別存儲(chǔ)到點(diǎn)、線、面要素圖層中,帶有高程信息的點(diǎn)、線、面對(duì)象還被保存到multipatch圖層中,這樣同一個(gè)對(duì)象可能被存儲(chǔ)為多個(gè)要素,空間數(shù)據(jù)庫(kù)中將出現(xiàn)大量的冗余信息。通過(guò)ArcSDE存入到空間數(shù)據(jù)庫(kù)中的DLG數(shù)據(jù),原數(shù)據(jù)文件中的線型、塊符號(hào)等信息都丟失了,為了保證數(shù)據(jù)表達(dá)的準(zhǔn)確性和合理性,需要按圖層和地物類(lèi)型進(jìn)行符號(hào)化后顯示,而ArcCatolog軟件沒(méi)有按圖層進(jìn)行DLG數(shù)據(jù)的入庫(kù),不便于矢量數(shù)據(jù)的顯示和分析。
因此基于實(shí)際應(yīng)用需求,通過(guò)ArcGIS Engine+VB.Net來(lái)開(kāi)發(fā)DLG數(shù)據(jù)入庫(kù)系統(tǒng)。預(yù)先制定圖層的入庫(kù)規(guī)則,在Oracle數(shù)據(jù)庫(kù)中創(chuàng)建圖層入庫(kù)規(guī)則表(DLGRules table),如表2所示。
表2 DLG圖層入庫(kù)規(guī)則表
例如,圖層名為710100的圖層為等高線,此圖層只存儲(chǔ)為線要素,當(dāng)某條等高線閉合時(shí),此條等高線也不存儲(chǔ)為面要素;圖層名為1000的圖層,不入點(diǎn)、線、面要素,這樣1000圖層就不存入空間數(shù)據(jù)庫(kù),實(shí)現(xiàn)了圖層過(guò)濾。
系統(tǒng)首先讀取數(shù)據(jù)的元數(shù)據(jù)文件,獲取數(shù)據(jù)元數(shù)據(jù)信息,然后通過(guò)ArcGIS Engine提供的IPropertyset接口設(shè)置ArcSDE空間數(shù)據(jù)庫(kù)的連接屬性,包括設(shè)置服務(wù)器名、實(shí)例名、數(shù)據(jù)庫(kù)名、用戶名和密碼等,建立與空間數(shù)據(jù)庫(kù)的連接,主要代碼如下:
利用CadWorkspaceFactory、IFeatureDataset、IDatasetContainer等接口讀取DLG數(shù)據(jù),轉(zhuǎn)換為FeatureClass要素類(lèi),通過(guò)IFeatureCursor接口得到要素類(lèi)中的每個(gè)Feature要素,然后獲得每個(gè)Feature要素的Layer字段屬性值,進(jìn)入圖層入庫(kù)規(guī)則表中查找對(duì)應(yīng)圖層的入庫(kù)規(guī)則,根據(jù)規(guī)則將圖層和幾何類(lèi)型相同的要素組織起來(lái)。對(duì)于DLG數(shù)據(jù)中的塊符號(hào)需要做特殊處理,需要把組成塊符號(hào)的點(diǎn)、線和面要素過(guò)濾掉,系統(tǒng)通過(guò)判斷要素中是否包含BlkLinetype屬性字段,如果有則此線要素和面要素為塊符號(hào)的組成部分,不保存到要素類(lèi)中。讀取DLG數(shù)據(jù)的主要代碼如下:
系統(tǒng)采用GeoDatabase數(shù)據(jù)模型進(jìn)行數(shù)據(jù)的組織,為每個(gè)DLG文件建立一個(gè)FeatureDataset要素?cái)?shù)據(jù)集,數(shù)據(jù)集的空間參考從元數(shù)據(jù)文件中獲取,然后在FeatureDataset下將圖層和幾何類(lèi)型相同的要素組織成一個(gè)FeatureClass要素類(lèi),要素類(lèi)的命名規(guī)則為文件名+圖層名+隨機(jī)數(shù),以確保名稱的唯一性。在SDE數(shù)據(jù)庫(kù)中創(chuàng)建FeatureClass要素類(lèi)的主要代碼如下:
在Oracle數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)要素類(lèi)對(duì)應(yīng)表(AddFeatureClass table),用于記錄空間數(shù)據(jù)庫(kù)中每個(gè)要素類(lèi)對(duì)應(yīng)的DLG文件,這樣系統(tǒng)通過(guò)查找此表就能快速找到每個(gè)DLG文件包含的所有要素類(lèi)。
基礎(chǔ)地理信息管理系統(tǒng)實(shí)現(xiàn)了DLG數(shù)據(jù)的批量入庫(kù)功能,DLG數(shù)據(jù)入庫(kù)界面如圖2所示。
圖2 DLG數(shù)據(jù)入庫(kù)界面圖
基礎(chǔ)地理信息數(shù)據(jù)顯示與分析子系統(tǒng)從ArcSDE空間數(shù)據(jù)庫(kù)中讀取某DLG文件,圖層經(jīng)自動(dòng)符號(hào)化后的顯示結(jié)果如圖3所示。
圖3 空間數(shù)據(jù)庫(kù)中DLG數(shù)據(jù)顯示結(jié)果圖
本文在研究Oracle+ArcSDE空間數(shù)據(jù)庫(kù)技術(shù)的基礎(chǔ)上,制定了DLG數(shù)據(jù)的入庫(kù)流程和規(guī)則,成功開(kāi)發(fā)了基礎(chǔ)地理信息DLG數(shù)據(jù)入庫(kù)系統(tǒng),實(shí)現(xiàn)了DLG數(shù)據(jù)的批量、分層、自動(dòng)、快速入庫(kù),同時(shí)過(guò)濾了入庫(kù)過(guò)程中產(chǎn)生的冗余信息,為DLG空間數(shù)據(jù)的符號(hào)化顯示和分析應(yīng)用奠定了基礎(chǔ)。該系統(tǒng)經(jīng)過(guò)實(shí)際使用,大大提高了基礎(chǔ)地理數(shù)據(jù)加工和入庫(kù)的工作效率,與常規(guī)的數(shù)據(jù)入庫(kù)方法相比減少了80%~90%的人工工作量,同時(shí)在入庫(kù)過(guò)程中對(duì)數(shù)據(jù)質(zhì)量進(jìn)行了有效的監(jiān)督控制,達(dá)到了DLG數(shù)據(jù)全息入庫(kù)的目的。
[1] 蒙昭良.Oracle DBA高效入職指南[M].北京:清華大學(xué)出版社, 2012.
[2] 易國(guó)彪,白振興.基于ArcSDE的空間數(shù)據(jù)庫(kù)研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2008,24(3): 161-163.
[3] 黃夢(mèng)龍,胡 鵬,夏蘭芳.基于Oracle和Geodatabase的福建省基礎(chǔ)地理信息數(shù)據(jù)庫(kù)建設(shè)[J].地理空間信息,2008,6(1):46-49.
[4] 張明燈,左志進(jìn).1:50000 DLG數(shù)據(jù)質(zhì)量檢查軟件[J].地理空間信息,2009,7(3) :27-29.
[5] 毛煒青,郭容寰.元數(shù)據(jù)在測(cè)繪生產(chǎn)管理中的應(yīng)用[J].測(cè)繪科學(xué),2005,31(3):127-128.
責(zé)任編輯 徐侃春
DLG Data Loading System based on ArcSDE
NING Xinwen1,2,HAN Zujie1
( 1.Third Railway Survey and Design Institute Group Corporation,Tianjin 300251,China;2.School of Geosciences and Environmental Engineering,Southwest Jiaotong University,Chengdu 611756,China)
The data of Digital Line Graphics(DLG) are the most important and widely used basic geographic data in the survey and design of railways.How to store and manage the DLG data effciently was the key and diffcult point for the construction of Fundamental Geographic Information Management System.Using VB.NET and ArcGIS Engine as development tools,adopting ArcSDE and Oracle as data server to store and manage spatial data,DLG Data Loading System was developed successfully,DLG data can be bulked,layered and loaded into spatial database automatically and rapidly.
DLG;data loading;ArcSDE;Oracle;fundamental geographic information
U212.24∶TP39
A
1005-8451(2016)01-0008-04
2015-05-19
鐵道第三勘察設(shè)計(jì)院集團(tuán)有限公司科研項(xiàng)目(721439)。
寧新穩(wěn) ,工程師;韓祖杰,教授級(jí)高工。