多源空間數(shù)據(jù)無(wú)縫集成(SIMS)技術(shù)研究_第1頁(yè)
多源空間數(shù)據(jù)無(wú)縫集成(SIMS)技術(shù)研究_第2頁(yè)
多源空間數(shù)據(jù)無(wú)縫集成(SIMS)技術(shù)研究_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余6頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

多源空間數(shù)據(jù)無(wú)縫集成(SIMS)技術(shù)研究

[摘要]地理信息系統(tǒng)的迅速發(fā)展和廣泛應(yīng)用積累了大量數(shù)據(jù)資源,它們分別存儲(chǔ)為不同數(shù)據(jù)格式,為數(shù)據(jù)綜合利用帶來(lái)不便。多源空間數(shù)據(jù)無(wú)縫集成(SIMS)技術(shù)實(shí)現(xiàn)了一種特殊的數(shù)據(jù)訪問(wèn)機(jī)制,不僅提供了直接存取多種數(shù)據(jù)格式的能力,而且使GIS軟件軟件具有跨數(shù)據(jù)源復(fù)合分析功能。本文闡述了SIMS技術(shù)體系結(jié)構(gòu),并探討了SIMS技術(shù)在GIS軟件開(kāi)發(fā)中的應(yīng)用。[關(guān)鍵詞]地理信息系統(tǒng)多源數(shù)據(jù)多源空間數(shù)據(jù)無(wú)縫集成虛擬空間數(shù)據(jù)引擎一、概述經(jīng)過(guò)三十多年的發(fā)展,隨著地理信息系統(tǒng)(GIS)的廣泛應(yīng)用,積累了大量GIS數(shù)據(jù)資源。由于使用了不同的GIS軟件,這些數(shù)據(jù)分別存儲(chǔ)為不同格式和不同結(jié)構(gòu)。為了更好地綜合利用這些數(shù)據(jù),通常的做法是使用GIS軟件提供的數(shù)據(jù)格式轉(zhuǎn)換功能,轉(zhuǎn)換為某種統(tǒng)一格式。眾所周知,不同軟件數(shù)據(jù)格式之間的轉(zhuǎn)換往往會(huì)造成一定的信息損失,如MapInfo的Tab文件轉(zhuǎn)換到Arc/Info的Coverage會(huì)丟失線型、顏色等與顯示有關(guān)的屬性;更為嚴(yán)重的是,Arc/Info采用拓?fù)鋽?shù)據(jù)結(jié)構(gòu),MapInfo數(shù)據(jù)則是非拓?fù)鋽?shù)據(jù)結(jié)構(gòu),轉(zhuǎn)換之后還需要進(jìn)行拓?fù)渲亟ǖ却罅刻幚砉ぷ?。另外,?shù)據(jù)轉(zhuǎn)換一般通過(guò)交換格式進(jìn)行,轉(zhuǎn)換過(guò)程復(fù)雜。比如,要轉(zhuǎn)換MapInfo的Tab文件到Arc/Info的Coverage,首先需要使用MapInfo軟件把Tab文件輸出為E00或DXF文件,然后運(yùn)行Arc/Info把E00或DXF文件轉(zhuǎn)為Arc/InfoCoverage。一些單位同時(shí)運(yùn)行著幾個(gè)使用不同GIS軟件建立的應(yīng)用系統(tǒng)。如果數(shù)據(jù)需要不斷更新,為保證不同系統(tǒng)之間數(shù)據(jù)的一致性,需要頻繁進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換。為解決數(shù)據(jù)格式轉(zhuǎn)換帶來(lái)的種種問(wèn)題,理想的方案是在一個(gè)軟件中實(shí)現(xiàn)對(duì)多種數(shù)據(jù)格式的直接訪問(wèn)。多源空間數(shù)據(jù)無(wú)縫集成—SIMS(SeamlessIntegrationofMultisourceSpatialdata)就是這樣一種技術(shù)。二、理解SIMSSIMS是一種無(wú)須數(shù)據(jù)格式轉(zhuǎn)換,直接訪問(wèn)多種數(shù)據(jù)格式的高級(jí)空間數(shù)據(jù)集成技術(shù),SIMS技術(shù)具有如下特點(diǎn):多格式數(shù)據(jù)直接訪問(wèn)。這是SIMS技術(shù)的基本功能,由于避免了數(shù)據(jù)格式轉(zhuǎn)換,為綜合利用不同格式的數(shù)據(jù)資源帶來(lái)了方便。格式無(wú)關(guān)數(shù)據(jù)集成。GIS用戶在使用數(shù)據(jù)時(shí),可以不必關(guān)心數(shù)據(jù)存儲(chǔ)于何種格式,真正實(shí)現(xiàn)格式無(wú)關(guān)數(shù)據(jù)集成。位置無(wú)關(guān)數(shù)據(jù)集成。如果使用大型關(guān)系數(shù)據(jù)庫(kù)(如Oracle和SQLServer)存儲(chǔ)空間數(shù)據(jù),這些數(shù)據(jù)可以存放在網(wǎng)絡(luò)服務(wù)器、甚至Web服務(wù)器,如果使用文件存儲(chǔ)空間數(shù)據(jù),這些數(shù)據(jù)一般是本地的。通過(guò)SIMS技術(shù)訪問(wèn)數(shù)據(jù),不僅不必關(guān)心數(shù)據(jù)的存儲(chǔ)格式,也不必關(guān)心數(shù)據(jù)的存放位置。用戶可以象操作本地?cái)?shù)據(jù)一樣去操作網(wǎng)絡(luò)數(shù)據(jù)。多源數(shù)據(jù)復(fù)合分析。SIMS技術(shù)還允許使用來(lái)自不同格式的數(shù)據(jù)直接進(jìn)行聯(lián)合/復(fù)合空間分析。例如,用戶可以使用一個(gè)格式為Arc/InfoCoverage的土地利用數(shù)據(jù)集和一個(gè)存儲(chǔ)于SDE的行政區(qū)劃數(shù)據(jù)集進(jìn)行疊加分析,疊加結(jié)果可以存儲(chǔ)到SQLServer數(shù)據(jù)庫(kù)。經(jīng)過(guò)分析表明,AutoCAD和MicroStation等CAD軟件,在打開(kāi)文件時(shí),把整個(gè)文件內(nèi)容全部讀入內(nèi)存。在這種方式下實(shí)現(xiàn)對(duì)多種數(shù)據(jù)格式直接訪問(wèn)的機(jī)制比較簡(jiǎn)單:打開(kāi)其他格式文件時(shí)在內(nèi)存中進(jìn)行格式轉(zhuǎn)換,來(lái)自無(wú)論何種格式的數(shù)據(jù)源,一律轉(zhuǎn)換為軟件自己的格式存儲(chǔ)于內(nèi)存中,所有對(duì)數(shù)據(jù)的修改操作都以自己的格式進(jìn)行,存盤(pán)時(shí)再轉(zhuǎn)換為原來(lái)的結(jié)構(gòu)。在以上方式下,數(shù)據(jù)可以被全部調(diào)入內(nèi)存其操作的前提。一般而言,CAD圖件大小有限,有些CAD軟件的文件結(jié)構(gòu)本身就限制了數(shù)據(jù)文件的大小,因此CAD軟件可以做到這一點(diǎn)。GIS軟件需要處理比CAD圖件大得多的地圖數(shù)據(jù),無(wú)法全部讀入內(nèi)存。因此,在GIS軟件中實(shí)現(xiàn)多源數(shù)據(jù)直接訪問(wèn),不能簡(jiǎn)單地采用內(nèi)存數(shù)據(jù)格式轉(zhuǎn)換來(lái)解決。SIMS技術(shù)的核心不是分析、破解和轉(zhuǎn)換其他GIS軟件的二進(jìn)制文件格式,SIMS提出了一種內(nèi)置于GIS軟件中的特殊數(shù)據(jù)訪問(wèn)體系結(jié)構(gòu)。它需要實(shí)現(xiàn)不同格式數(shù)據(jù)的管理、調(diào)度、緩存(Cache),并提供不同格式數(shù)據(jù)之間的互操作能力。三、SIMS的體系結(jié)構(gòu)SIMS技術(shù)體系是一種緊湊三層結(jié)構(gòu),包括:數(shù)據(jù)消費(fèi)者(Customer)、數(shù)據(jù)代理(Agency)和數(shù)據(jù)提供者(Provider)。每一層有明確分工:數(shù)據(jù)提供者直接訪問(wèn)數(shù)據(jù)文件或者數(shù)據(jù)庫(kù),并通過(guò)數(shù)據(jù)代理提供給其他模塊使用;數(shù)據(jù)消費(fèi)者消費(fèi)和使用數(shù)據(jù)的模塊,通常負(fù)責(zé)對(duì)數(shù)據(jù)的各種分析、處理和表現(xiàn);數(shù)據(jù)代理是維系數(shù)據(jù)消費(fèi)者和數(shù)據(jù)提供者之間的紐帶,來(lái)自提供者的數(shù)據(jù)通過(guò)代理這個(gè)中介傳遞給消費(fèi)者,完成一次數(shù)據(jù)訪問(wèn)(或者數(shù)據(jù)消費(fèi)),一次數(shù)據(jù)消費(fèi)行為可能產(chǎn)生新的數(shù)據(jù)(如:迭加分析產(chǎn)生的新圖層、緩沖區(qū)分析產(chǎn)生的緩沖區(qū)多邊形等),這些新的數(shù)據(jù)也是通過(guò)代理傳遞給提供者,由提供者完成存盤(pán)動(dòng)作。1、數(shù)據(jù)消費(fèi)者數(shù)據(jù)消費(fèi)者指GIS軟件中使用或者消費(fèi)數(shù)據(jù)的部分。它們包括:拓?fù)涮幚?、地圖顯示、空間分析、三維表現(xiàn)、專題圖制作、數(shù)據(jù)轉(zhuǎn)換、制圖輸出等等模塊。這些模塊使用數(shù)據(jù),是數(shù)據(jù)消費(fèi)者。數(shù)據(jù)消費(fèi)者不直接與存儲(chǔ)數(shù)據(jù)的文件或者數(shù)據(jù)庫(kù)打交道,所有對(duì)數(shù)據(jù)的訪問(wèn)都通過(guò)數(shù)據(jù)代理完成。2、數(shù)據(jù)代理數(shù)據(jù)代理是聯(lián)系數(shù)據(jù)消費(fèi)者和數(shù)據(jù)提供者的中介,代理負(fù)責(zé)把來(lái)自提供者的數(shù)據(jù)傳遞給消費(fèi)者使用,并把消費(fèi)者產(chǎn)生的新數(shù)據(jù)傳遞給提供者存儲(chǔ)。SIMS技術(shù)中的數(shù)據(jù)代理是一個(gè)虛擬空間數(shù)據(jù)引擎(VirtualSpatialdataEngine)。該引擎定義了數(shù)據(jù)訪問(wèn)的框架,但并不實(shí)現(xiàn)具體的數(shù)據(jù)訪問(wèn)功能,因此該引擎是“虛擬”的。3、數(shù)據(jù)提供者數(shù)據(jù)提供者指直接訪問(wèn)數(shù)據(jù)文件或者數(shù)據(jù)庫(kù)的模塊,這些模塊獲取數(shù)據(jù)并通過(guò)代理提供給消費(fèi)者使用,并且把傳回來(lái)的數(shù)據(jù)存儲(chǔ)到文件或數(shù)據(jù)庫(kù)。SIMS提供了訪問(wèn)多種格式數(shù)據(jù)的能力,對(duì)每一種數(shù)據(jù)格式的訪問(wèn),最終通過(guò)空間數(shù)據(jù)引擎(SpatialdataEngine)實(shí)現(xiàn)。數(shù)據(jù)提供者由一組空間數(shù)據(jù)引擎組成,每個(gè)引擎負(fù)責(zé)訪問(wèn)一種數(shù)據(jù)格式。比如SQLServer引擎訪問(wèn)存儲(chǔ)在SQLServer中的空間數(shù)據(jù)、Oracle引擎訪問(wèn)OracleSpatial數(shù)據(jù)庫(kù)、SDE引擎訪問(wèn)ESRISDE支持的各種數(shù)據(jù)庫(kù)、Arc/Info引擎存取Arc/InfoCoverage等等。為方便引擎的管理和調(diào)度,每個(gè)引擎具有統(tǒng)一的接口,封裝成一個(gè)動(dòng)態(tài)連接庫(kù)—DLL(DynamicLinkingLibrary)。類(lèi)似于一些軟件的插件(Plug-in或Add-in)機(jī)制,引擎DLL存放在特定目錄下,程序啟動(dòng)時(shí)自動(dòng)搜索該目錄,動(dòng)態(tài)調(diào)入并注冊(cè)。一般而言,空間數(shù)據(jù)引擎只提供存儲(chǔ)、讀取、檢索、管理數(shù)據(jù)和對(duì)數(shù)據(jù)的基本處理等功能,不負(fù)責(zé)進(jìn)行空間分析和復(fù)雜處理。但是基于第三方API(如:OracleSpatial和ESRISDE)開(kāi)發(fā)的引擎可以提供更多功能。一般而言,空間數(shù)據(jù)引擎動(dòng)態(tài)連接庫(kù)的實(shí)現(xiàn)有三種方式,即:標(biāo)準(zhǔn)API函數(shù)DLL、C++類(lèi)庫(kù)DLL和OLE自動(dòng)化DLL。由于空間數(shù)據(jù)引擎結(jié)構(gòu)復(fù)雜、函數(shù)接口多;標(biāo)準(zhǔn)API函數(shù)DLL中的函數(shù)缺乏層次性,不便使用,而且不符合面向?qū)ο蟪绦蛟O(shè)計(jì)的潮流,不適合空間數(shù)據(jù)引擎。OLE自動(dòng)化DLL中可以實(shí)現(xiàn)一系列具有標(biāo)準(zhǔn)接口的二進(jìn)制對(duì)象,對(duì)象層次清晰,接口標(biāo)準(zhǔn),適合建立空間數(shù)據(jù)引擎。為了達(dá)到更高的數(shù)據(jù)訪問(wèn)速度,本研究采用了C++類(lèi)庫(kù)DLL。但是,使用C++類(lèi)的DLL只能使用編譯連接,無(wú)法實(shí)現(xiàn)DLL的動(dòng)態(tài)載入。使用C++的虛函數(shù)機(jī)制可以較好地解決這個(gè)問(wèn)題。虛擬空間數(shù)據(jù)引擎也是一個(gè)單獨(dú)的動(dòng)態(tài)連接庫(kù),這個(gè)動(dòng)態(tài)連接庫(kù)定義了數(shù)據(jù)訪問(wèn)需要的所有類(lèi),比如CDataSource*CreateDataSource(){CSqlDataSource*pDataSource=newCSqlDataSource;return(CDataSource*)pDataSource;}該函數(shù)負(fù)責(zé)創(chuàng)建相應(yīng)的數(shù)據(jù)源派生類(lèi),主調(diào)函數(shù)可以在不知道CDataSource的子類(lèi)名(此例中為CSqlDataSource)的情況下創(chuàng)建該類(lèi)的實(shí)例。其他的類(lèi)如數(shù)據(jù)集、記錄集等由數(shù)據(jù)源創(chuàng)建。一旦對(duì)象被創(chuàng)建,所有的操作均使用虛基類(lèi)定義的函數(shù)接口進(jìn)行,但是實(shí)際的運(yùn)行將會(huì)自動(dòng)調(diào)用子類(lèi)的函數(shù)。這種方式可以充分利用C++的優(yōu)點(diǎn),如繼承,多態(tài)、封裝等,而且不影響系統(tǒng)響應(yīng)速度。盡管從概念模型上看,數(shù)據(jù)提供者總是通過(guò)虛擬空間數(shù)據(jù)引擎(數(shù)據(jù)代理)傳遞給消費(fèi)者,實(shí)際上并沒(méi)有任何多余的內(nèi)存拷貝和數(shù)據(jù)轉(zhuǎn)換,所謂的數(shù)據(jù)傳遞變成了調(diào)用接口的傳遞,這種傳遞通過(guò)C++類(lèi)庫(kù)的虛函數(shù)機(jī)制實(shí)現(xiàn),不影響效率。因此,SIMS采用的是緊湊三層結(jié)構(gòu),與Web三層體系不同。四、SIMS技術(shù)在GIS軟件開(kāi)發(fā)中的應(yīng)用中國(guó)科學(xué)院地理信息產(chǎn)業(yè)發(fā)展中心研制的新一代組件式GIS軟件—SuperMap2000采用了SIMS技術(shù)。為了適應(yīng)不同層次應(yīng)用的需要,SuperMap創(chuàng)造性地實(shí)現(xiàn)了以多種方式存儲(chǔ)、管理GIS數(shù)據(jù)。除了支持其他GIS軟件的一些文件格式(如:OracleSpatial和ESRISDE)外,SuperMap自定義的數(shù)據(jù)結(jié)構(gòu)也提供了多種方式,包括:AccessMDB數(shù)據(jù)庫(kù)、SQLServer數(shù)據(jù)庫(kù)和OLE復(fù)合文檔(SuperMapSDB文件)。這幾種存儲(chǔ)方式適合于建立不同層次的應(yīng)用。MDB和SDB數(shù)據(jù)一般存儲(chǔ)在本地、SQLServer、Oracle、SDE數(shù)據(jù)庫(kù)一般存放在網(wǎng)絡(luò)服務(wù)器。因此,SuperMap通過(guò)SIMS技術(shù)進(jìn)行分析和數(shù)據(jù)處理時(shí),不僅實(shí)現(xiàn)了數(shù)據(jù)格式無(wú)關(guān),而且實(shí)現(xiàn)了存儲(chǔ)位置無(wú)關(guān)。SuperMap2.0提供的引擎包括:SDB、MDB、SQLServer、Oracle、SDE。其中SDB、MDB、SQLServer使用了SuperMap的內(nèi)部格式,Oracle、SDE基于相應(yīng)的API開(kāi)發(fā)工具實(shí)現(xiàn)。在以后的版本中,將會(huì)逐步提供Arc/InfoCoverage、MicroStationDGN、ArcViewShape、AutoCADDWG等引擎以直接訪問(wèn)其他GIS/CAD軟件的數(shù)據(jù)格式(圖2)。1、SDB引擎SDB(SuperMapSpatialDatabase)引擎是SuperMap2.0中唯一的文件型空間數(shù)據(jù)引擎。這種引擎采用傳統(tǒng)的文件+數(shù)據(jù)庫(kù)混合存儲(chǔ)方式。SDB引擎的一個(gè)數(shù)據(jù)工程包括兩個(gè)文件,擴(kuò)展名為SDB的文件存儲(chǔ)空間數(shù)據(jù),采用OLE復(fù)合文檔技術(shù);擴(kuò)展名為SDD的文件為屬性數(shù)據(jù)庫(kù),采用Access的MDB數(shù)據(jù)庫(kù)格式。由于SDB文件采用了復(fù)合文檔技術(shù),因此提供了在一個(gè)SDB工程中存儲(chǔ)多個(gè)數(shù)據(jù)集的能力。這一點(diǎn)與Arc/InfoCoverage、MapInfoTable文件等技術(shù)不同。SDB主要面向中、小型系統(tǒng)和桌面應(yīng)用,目的在于提高效率,彌補(bǔ)純數(shù)據(jù)庫(kù)引擎在這方面的不足。2、MDB引擎MDB引擎是一種純數(shù)據(jù)庫(kù)引擎,采用Access的MDB數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)介質(zhì)。基于Microsoft的Jet數(shù)據(jù)引擎實(shí)現(xiàn)。MDB引擎把空間數(shù)據(jù)和非空間數(shù)據(jù)存儲(chǔ)在同一個(gè)MDB數(shù)據(jù)庫(kù)中,真正實(shí)現(xiàn)了空間數(shù)據(jù)和非空間數(shù)據(jù)的無(wú)縫組織,同時(shí)便于維護(hù)數(shù)據(jù)。一個(gè)MDB文件中可以存儲(chǔ)多個(gè)數(shù)據(jù)集。與SDB一樣,MDB引擎面向中小型桌面應(yīng)用系統(tǒng),一個(gè)MDB的最大空間容量為1G。3、SQLServer引擎這是一個(gè)基于大型數(shù)據(jù)庫(kù)SQLServer的純關(guān)系數(shù)據(jù)庫(kù)空間引擎。SuperMap中采用微軟提供的開(kāi)發(fā)工具DBLibrary實(shí)現(xiàn)。與SDB、MDB引擎一樣,本引擎采用SuperMap自定義的數(shù)據(jù)結(jié)構(gòu)。SQLServer引擎適合建立大型空間數(shù)據(jù)應(yīng)用。4、Oracle引擎Oracle也是一種基于純關(guān)系數(shù)據(jù)庫(kù)的空間數(shù)據(jù)引擎。與前三種引擎不同,Oracle引擎的數(shù)據(jù)結(jié)構(gòu)采用OracleSpatial的空間數(shù)據(jù)存儲(chǔ)方案。由于OracleSpatial目前缺乏對(duì)TIN、DEM等三維數(shù)據(jù)存儲(chǔ)的支持,功能上受到限制。Oracle引擎適合建立大型空

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論