謝志萍 楊昆 李澤城
摘要:針對(duì)滇池流域非點(diǎn)源污染應(yīng)急響應(yīng)、模擬及數(shù)據(jù)挖掘過(guò)程中,現(xiàn)有的基于關(guān)系數(shù)據(jù)庫(kù)建立的時(shí)空數(shù)據(jù)模型進(jìn)行了分析并指出其不足,提出了基于MongoDB及面向?qū)ο髸r(shí)空數(shù)據(jù)模型改進(jìn)的文檔型時(shí)空數(shù)據(jù)模型,以有效組織、存儲(chǔ)與管理非點(diǎn)源數(shù)據(jù);最后設(shè)計(jì)了滇池流域非點(diǎn)源污染時(shí)空數(shù)據(jù)管理系統(tǒng),實(shí)現(xiàn)不同來(lái)源、格式數(shù)據(jù)的導(dǎo)入導(dǎo)出、編輯、索引及高級(jí)運(yùn)算功能。試驗(yàn)證明,系統(tǒng)在存儲(chǔ)、管理和維護(hù)海量時(shí)空數(shù)據(jù)等方面得到了提升,能為滇池流域非點(diǎn)源污染時(shí)空過(guò)程數(shù)據(jù)的模擬以及大數(shù)據(jù)挖掘提供統(tǒng)一的訪(fǎng)問(wèn)接口和數(shù)據(jù)支撐。
關(guān)鍵詞:面向?qū)ο髸r(shí)空數(shù)據(jù)模型;MongoDB;滇池流域;非點(diǎn)源污染
中圖分類(lèi)號(hào):P208 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):0439-8114(2016)05-1295-06
DOI:10.14088/j.cnki.issn0439-8114.2016.05.053
Research and Application on Document Type Spatio-temporal Data Model of
Non-point Source Pollution in Dianchi Lake Basin
XIE Zhi-ping1a,2,YANG Kun1a,2,LI Ze-cheng1b,2
(1.a.School of Information Science and Technology;b.School of Tourism and Geographic Science,Yunnan Normal University,Kunming 650500,China;
2.GIS Technology Engineering Research Center for West-China Resources and Environment of Educational Ministry,Kunming 650500,China)
Abstract:In the non-point source pollution in Dianchi Lake Basin emergency response, simulation and data mining process, the existing temporal data model based on a relational database were analyzed and its shortcomings were pointed out,an improved model based on MongoDB and object-oriented spatio-temporal data model was proposed to organize, store and manage the non-point source data; Finally, the non-point source pollution spatio-temporal data management system of Dianchi Lake Basin was designed to achieve the following functions, such as importing & exporting,editing, indexing and advanced operation function of different sources or format data. The experiment results showed that,the system had been improved in storage, management and maintenance of huge amounts of spatial-temporal data, which could provide a unified access interface and data support for the data simutation and big data mining of non-point source pollution spatio-temporal process in Dianchi lake Basin.
Key words: object-oriented spatio-temporal data model; MongoDB; Dianchi Lake Basin; non-point source pollution
近年來(lái),滇池流域點(diǎn)源污染經(jīng)過(guò)治理已得到有效控制,而非點(diǎn)源污染問(wèn)題卻越來(lái)越突出,其產(chǎn)生來(lái)源范圍廣、隱蔽性與潛伏性強(qiáng)、隨機(jī)性大,主要通過(guò)淋溶與降雨徑流的沖刷作用,促使污染物匯入水體[1]。為了研究非點(diǎn)源污染的產(chǎn)生與擴(kuò)散情況,設(shè)計(jì)了滇池流域非點(diǎn)源污染的時(shí)空過(guò)程模擬應(yīng)急響應(yīng)示范系統(tǒng)、SWMM、SWAT、ABM、葉綠素反演模擬等。但這些系統(tǒng)“信息孤島”現(xiàn)象嚴(yán)重,系統(tǒng)大多強(qiáng)調(diào)的是空間數(shù)據(jù)的分析、處理及可視化等功能,而忽略了空間數(shù)據(jù)統(tǒng)一存儲(chǔ)、管理和維護(hù)。對(duì)此需設(shè)計(jì)一個(gè)非點(diǎn)源污染空間數(shù)據(jù)的管理系統(tǒng)為研究提供統(tǒng)一的訪(fǎng)問(wèn)數(shù)據(jù)的接口的同時(shí),支持海量數(shù)據(jù)的存儲(chǔ)和管理。然而,傳統(tǒng)空間數(shù)據(jù)研究中,大多是通過(guò)建立關(guān)系數(shù)據(jù)模型,以屬性的方式描述和表達(dá)空間數(shù)據(jù),存在一些不足[2],為此,針對(duì)滇池流域非點(diǎn)源污染空間數(shù)據(jù)管理系統(tǒng)對(duì)空間數(shù)據(jù)模型的需求,提出了基于MongoDB文檔特性與面向?qū)ο髸r(shí)空數(shù)據(jù)模型改進(jìn)的文檔型時(shí)空數(shù)據(jù)模型,為空間數(shù)據(jù)模型增加時(shí)間要素,利用MongoDB對(duì)流域內(nèi)歷史數(shù)據(jù)和現(xiàn)狀數(shù)據(jù)進(jìn)行統(tǒng)一的存儲(chǔ)和管理,以期為滇池流域非點(diǎn)源污染應(yīng)急響應(yīng)、模擬和數(shù)據(jù)挖掘提供統(tǒng)一的訪(fǎng)問(wèn)接口和數(shù)據(jù)支撐。
1 面向?qū)ο蟮臅r(shí)空數(shù)據(jù)模型
時(shí)空數(shù)據(jù)模型的研究從20世紀(jì)70年代開(kāi)始,一直到80年代都是重點(diǎn)對(duì)時(shí)態(tài)數(shù)據(jù)庫(kù)的空間信息和時(shí)間信息的處理,但基于時(shí)空組合的研究涉及較少。直到20世紀(jì)90年代早期,出現(xiàn)了以GIS中柵格、矢量數(shù)據(jù)模型為基礎(chǔ)的面向?qū)ο蟮臅r(shí)空數(shù)據(jù)模型[3,4]。但是對(duì)時(shí)間和空間的表達(dá)仍舊較少,不能反映空間對(duì)象前后變化之間的因果聯(lián)系,時(shí)間存儲(chǔ)在一個(gè)普通屬性表里,與空間數(shù)據(jù)其他屬性一樣,重點(diǎn)對(duì)地理狀態(tài)作描述[5]。
面向?qū)ο髸r(shí)空數(shù)據(jù)模型中,為了充分描述對(duì)象的活躍狀態(tài)及變化過(guò)程,把真實(shí)世界表示為各個(gè)地理時(shí)空對(duì)象類(lèi),包含空間對(duì)象類(lèi)、時(shí)間對(duì)象類(lèi)及屬性對(duì)象類(lèi)[6,7]。每個(gè)對(duì)象類(lèi)封裝了時(shí)間、空間與屬性特征,還包括對(duì)象間關(guān)系和行為操作[8]。如圖1,時(shí)間對(duì)象類(lèi)是針對(duì)時(shí)間信息來(lái)建模,空間對(duì)象類(lèi)是針對(duì)空間信息來(lái)建模,包括空間位置(經(jīng)緯度坐標(biāo))、地物形狀(點(diǎn)、線(xiàn)、面)以及空間拓?fù)湫畔⒌龋粚傩詫?duì)象類(lèi)是操作者自己定義的,有標(biāo)識(shí)ID、Name、Type等屬性,其中Name可以為道路、河流、規(guī)劃區(qū)、土地利用或建筑等。面向?qū)ο髸r(shí)空數(shù)據(jù)模型增加時(shí)間信息來(lái)表示多邊形、弧段、節(jié)點(diǎn)等幾何要素,充分考慮了時(shí)間拓?fù)渑c空間拓?fù)浣Y(jié)構(gòu),但對(duì)分層圖層間的時(shí)空性質(zhì)以及內(nèi)在的關(guān)系的考慮存在不足,并且在基礎(chǔ)關(guān)系描述與顯示定義方面也相對(duì)缺乏[9]。
2 MongoDB數(shù)據(jù)庫(kù)
MongoDB是非關(guān)系型數(shù)據(jù)庫(kù)。該數(shù)據(jù)庫(kù)具有如下的邏輯模型:一系列字段構(gòu)成單個(gè)文檔,一系列文檔構(gòu)成集合,一系列集合又構(gòu)成數(shù)據(jù)庫(kù),最終多個(gè)數(shù)據(jù)庫(kù)構(gòu)成MongoDB系統(tǒng)實(shí)例[10-12]。具體如下:①集合等同于表,其實(shí)質(zhì)為一組文檔。與關(guān)系數(shù)據(jù)庫(kù)不同的是,由于MongoDB的模式自由特性,對(duì)字段結(jié)構(gòu)并沒(méi)有作強(qiáng)制要求。因此,用戶(hù)可以存儲(chǔ)不同結(jié)構(gòu)的文檔在相同集合中,而不必預(yù)先定義一個(gè)集合的字段結(jié)構(gòu);在數(shù)據(jù)庫(kù)運(yùn)行時(shí),可以隨時(shí)動(dòng)態(tài)地添加或刪除文檔的字段,支持?jǐn)?shù)據(jù)的變長(zhǎng)記錄。②MongoDB文檔指結(jié)構(gòu)化的文檔,通過(guò)規(guī)則的Key-Value對(duì)來(lái)表示數(shù)據(jù),而并非自由文本[13]。MongoDB的文檔使用BSON語(yǔ)言表示,MongoDB的BSON文檔是數(shù)據(jù)的抽象,是非關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)的基本單元和的數(shù)據(jù)交換格式。單個(gè)文檔等同于單個(gè)BSON對(duì)象,含有多個(gè)鍵值對(duì)。BSON以二進(jìn)制字節(jié)的形式存儲(chǔ)鍵值對(duì),鍵為字符串格式,值可以為任意的數(shù)據(jù)類(lèi)型,除了基本的浮點(diǎn)數(shù)、整數(shù)、日期、字符串等,還可以是鍵值對(duì)或數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu),可以嵌套數(shù)組或者子文檔,即文檔的字段值可以是一個(gè)文檔或者數(shù)組類(lèi)型的,支持?jǐn)?shù)據(jù)的不一致存儲(chǔ)。如下所示即為用BSON對(duì)象表示滇池流域非點(diǎn)源污染時(shí)空數(shù)據(jù)信息的一條記錄:
{
ID:"001",
Name:"DianchiRoad",
RoadGrade:5,
RoadWidth:16
Adress:{Area:"XishanDistrict",City:"Kunming"}
Company:[{DesignUnit:"RoadConstruction" , DesignCost:"10W"},{ ConstructionUnit:"RoadConstruction",ConstructionCost:"50W"}]
}
在記錄中,道路有ID、Name、RoadGrade、RoadWidth、Adress、Company六個(gè)屬性。ID和Name屬性對(duì)應(yīng)的值類(lèi)型為字符型,RoadGrade和RoadWidth對(duì)應(yīng)的值類(lèi)型為整形,Adress對(duì)應(yīng)的是鍵值對(duì),Company對(duì)應(yīng)的是數(shù)組,數(shù)組元素的類(lèi)型是鍵值對(duì)。同時(shí),MongoDB能將關(guān)系型數(shù)據(jù)庫(kù)中本來(lái)要使用外鍵聯(lián)接的多個(gè)集合歸納到一個(gè)集合中,減少了集合與集合之間的關(guān)聯(lián),提高了數(shù)據(jù)庫(kù)的性能。如記錄中,Adress中的Area和City需要建立Area和City對(duì)應(yīng)的表Area和City,其中City表外鍵指向Area表,查詢(xún)時(shí)需要二級(jí)聯(lián)動(dòng)查詢(xún)。MongoDB的這種能夠存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),以及支持?jǐn)?shù)據(jù)不定長(zhǎng)與不一致的特性正是本文提出文檔型時(shí)空數(shù)據(jù)的關(guān)鍵。
3 文檔型時(shí)空數(shù)據(jù)模型
由于現(xiàn)實(shí)世界的復(fù)雜性,設(shè)計(jì)通用的時(shí)空數(shù)據(jù)模型面臨巨大困難,學(xué)者們更傾向于針對(duì)一個(gè)或一類(lèi)地理問(wèn)題設(shè)計(jì)時(shí)空數(shù)據(jù)模型并加以驗(yàn)證,現(xiàn)已在城市綠色空間、地下管網(wǎng)、地籍管理等領(lǐng)域有重大突破。滇池流域非點(diǎn)源污染時(shí)空變化研究是前人很少涉足的領(lǐng)域,包括點(diǎn)、線(xiàn)、面及其復(fù)合對(duì)象的時(shí)空變化規(guī)律,其地表變化過(guò)程復(fù)雜,建模困難。然而,建立滇池流域內(nèi)非點(diǎn)源污染文檔型時(shí)空數(shù)據(jù)模型來(lái)描述非點(diǎn)源污染的連續(xù)變化,能為解決滇池流域非點(diǎn)源污染相關(guān)問(wèn)題提供理論依據(jù)和應(yīng)用方法。
3.1 現(xiàn)有時(shí)空數(shù)據(jù)模型的不足
現(xiàn)有的關(guān)系數(shù)據(jù)模型,其內(nèi)在的關(guān)系模式會(huì)制約時(shí)空數(shù)據(jù)處理及便捷訪(fǎng)問(wèn)。圖2為關(guān)系數(shù)據(jù)庫(kù)概念模型,包含兩個(gè)時(shí)空要素類(lèi),其存儲(chǔ)時(shí)空數(shù)據(jù)不足,具體如下。
1)非點(diǎn)源污染時(shí)空數(shù)據(jù)是一種非結(jié)構(gòu)化的數(shù)據(jù)。其非結(jié)構(gòu)化特點(diǎn)主要表現(xiàn)在:空間實(shí)體不固定,例如一條弧段可能包含兩對(duì)坐標(biāo)點(diǎn),也可以包含10萬(wàn)對(duì)坐標(biāo)點(diǎn);空間實(shí)體具有非原子性特點(diǎn),有的甚至是嵌套的,如一個(gè)多邊形可能有多條弧段,每個(gè)弧段由多點(diǎn)構(gòu)成。因此如果要用關(guān)系型時(shí)空數(shù)據(jù)庫(kù)表示通常需要疊加復(fù)雜的多對(duì)多關(guān)系及其要素,一個(gè)概念模型通常含有多個(gè)關(guān)系,也即含有多張二維的關(guān)系表。其關(guān)系復(fù)雜,涉及的要素較多,最終造成數(shù)十甚至數(shù)百個(gè)表的數(shù)據(jù)規(guī)模,數(shù)據(jù)量龐大,同時(shí)不利于系統(tǒng)的維護(hù)。因此對(duì)于滇池流域非點(diǎn)源污染的時(shí)空數(shù)據(jù)這種非結(jié)構(gòu)化的數(shù)據(jù),不方便用二維表邏輯進(jìn)行表示。
2)基于關(guān)系數(shù)據(jù)庫(kù)建立的時(shí)空數(shù)據(jù)模型要求對(duì)象固化,而面對(duì)非點(diǎn)源污染時(shí)空數(shù)據(jù)具有的不一致、不定長(zhǎng)特性時(shí),就需要對(duì)其進(jìn)行分類(lèi),增加了關(guān)系數(shù)據(jù)庫(kù)的復(fù)雜性,成本較高,修改較難。
3)時(shí)間是地理實(shí)體和地理現(xiàn)象的另一個(gè)內(nèi)在基本特征,是地理實(shí)體演變過(guò)程的一個(gè)重要組成部分,地理現(xiàn)象的特性隨時(shí)間的變化而變化?;陉P(guān)系數(shù)據(jù)庫(kù)建立的時(shí)空數(shù)據(jù)模型的時(shí)間記錄的是關(guān)系表記錄的時(shí)間,往往會(huì)將各個(gè)時(shí)期的演變和關(guān)系破碎化和復(fù)雜化,增加時(shí)空關(guān)系的維護(hù)難度。
4)任務(wù)繁重。目前時(shí)空數(shù)據(jù)管理系統(tǒng)中缺乏完整的歷史變化數(shù)據(jù)及動(dòng)態(tài)變化過(guò)程的存儲(chǔ)和管理,無(wú)法有效地進(jìn)行動(dòng)態(tài)跟蹤及預(yù)測(cè)未來(lái)的發(fā)展趨勢(shì);針對(duì)滇池流域非點(diǎn)源污染模擬的時(shí)空數(shù)據(jù)建模方法在國(guó)內(nèi)外的研究中涉及很少,沒(méi)有通用的建模方式,因此對(duì)滇池流域非點(diǎn)源污染模擬時(shí)空數(shù)據(jù)的建模難度較大。
3.2 文檔型時(shí)空數(shù)據(jù)模型創(chuàng)建
滇池流域非點(diǎn)源污染時(shí)空數(shù)據(jù)模型構(gòu)建的核心和難點(diǎn)是準(zhǔn)確、清晰地描述滇池流域非點(diǎn)源污染各類(lèi)對(duì)象的時(shí)空變化過(guò)程,同時(shí)能兼容簡(jiǎn)單對(duì)象的時(shí)空變化過(guò)程。針對(duì)前文中對(duì)現(xiàn)有時(shí)空數(shù)據(jù)模型的比較和對(duì)滇池流域非點(diǎn)源污染時(shí)空變化特點(diǎn)的分析,并結(jié)合實(shí)際應(yīng)用的需要,發(fā)現(xiàn)面向?qū)ο蟮姆椒鼙容^容易地描述以滇池流域非點(diǎn)源污染的時(shí)空變化。結(jié)合MongoDB數(shù)據(jù)庫(kù)的特點(diǎn),在物理實(shí)現(xiàn)上所有數(shù)據(jù)以模式自由的文檔結(jié)構(gòu)存儲(chǔ)。根據(jù)滇池流域非點(diǎn)源污染時(shí)空數(shù)據(jù)變化特點(diǎn),從建立動(dòng)態(tài)空間數(shù)據(jù)和屬性數(shù)據(jù)合一的非點(diǎn)源污染模擬時(shí)空數(shù)據(jù)庫(kù)的角度出發(fā)進(jìn)行設(shè)計(jì),建立非點(diǎn)源污染文檔型時(shí)空數(shù)據(jù)概念模型,如圖3所示。
文檔型時(shí)空數(shù)據(jù)模型兼具M(jìn)ongoDB文檔模式自由和面向?qū)ο髸r(shí)空數(shù)據(jù)模型特性,支持松散的數(shù)據(jù)結(jié)構(gòu),采用BSON格式進(jìn)行組織,存儲(chǔ)復(fù)雜的時(shí)空數(shù)據(jù)類(lèi)型,將不同結(jié)構(gòu)、類(lèi)型的時(shí)空數(shù)據(jù)存儲(chǔ)進(jìn)一張共同的大表中,實(shí)現(xiàn)一體化存儲(chǔ)[14],主要包括以下幾部分。
1)在對(duì)象管理上,利用MongoDB模式自由的特性,以水體為對(duì)象進(jìn)行管理,將污染水域的各種對(duì)象導(dǎo)入一個(gè)庫(kù)中。有效降低非點(diǎn)源污染時(shí)空數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)和建設(shè)的復(fù)雜度。解決數(shù)據(jù)不一致、不定長(zhǎng)導(dǎo)致的數(shù)據(jù)表增加或結(jié)構(gòu)冗余的難題。
2)在空間上,將監(jiān)測(cè)點(diǎn)、河流、湖泊整合在一起,以點(diǎn)、線(xiàn)、面的形式存儲(chǔ)。對(duì)于非結(jié)構(gòu)化的時(shí)空數(shù)據(jù),通過(guò)充分利用MongoDB的文檔特性,以面向?qū)ο蠓绞絹?lái)表達(dá)地理對(duì)象,以文檔形式無(wú)限制地存儲(chǔ)任意的時(shí)空變化類(lèi)型對(duì)象驅(qū)動(dòng)事件對(duì)象,一個(gè)對(duì)象可以自由嵌套許多原來(lái)對(duì)象的字段,實(shí)現(xiàn)非點(diǎn)源污染非結(jié)構(gòu)化時(shí)空數(shù)據(jù)的存儲(chǔ)與管理。
3)在不同屬性數(shù)據(jù)建模中,對(duì)時(shí)空變化不活躍的地理現(xiàn)象,選用靜態(tài)數(shù)據(jù)建模;而對(duì)時(shí)空變化活躍的地理現(xiàn)象,選用動(dòng)態(tài)數(shù)據(jù)建模,區(qū)別表示隨時(shí)間變化的信息和與時(shí)間變化無(wú)關(guān)的信息。
4)在時(shí)態(tài)上,由于水污染各個(gè)時(shí)期的演變關(guān)系破碎,導(dǎo)致維護(hù)工作繁重,因此針對(duì)不同歷史頻率的數(shù)據(jù)進(jìn)行分別存儲(chǔ),以便區(qū)別對(duì)待數(shù)據(jù)輸入時(shí)間和使用的時(shí)間,實(shí)現(xiàn)將水體各個(gè)時(shí)期的過(guò)程數(shù)據(jù)統(tǒng)一管理起來(lái),忠實(shí)記錄水體來(lái)龍去脈。對(duì)水體信息的歷史狀態(tài)進(jìn)行保存、恢復(fù)、跟蹤和預(yù)測(cè)。
5)對(duì)于滇池流域非點(diǎn)源污染的海量數(shù)據(jù),采用本地磁盤(pán)上存儲(chǔ)當(dāng)前數(shù)據(jù),而將歷史數(shù)據(jù)存儲(chǔ)在遠(yuǎn)程服務(wù)器大容量光盤(pán)上,同時(shí),采用MapReduce技術(shù)對(duì)海量數(shù)據(jù)進(jìn)行高級(jí)統(tǒng)計(jì)運(yùn)算。
6)在查詢(xún)效率提升中,通過(guò)時(shí)空數(shù)據(jù)所具有的空間特征,建立一系列的空間索引,同時(shí)也通過(guò)歷史頻率數(shù)據(jù)的存儲(chǔ)建立時(shí)間和空間索引來(lái)提高查詢(xún)的效率。
模型分為4個(gè)主要部分:ID、水體對(duì)象類(lèi)、索引與事件。①?gòu)膶?duì)象來(lái)看,對(duì)水體對(duì)象作惟一性標(biāo)識(shí)和信息管理,用對(duì)象ID來(lái)標(biāo)識(shí)不同對(duì)象,不同對(duì)象的內(nèi)涵可能差別較大,這得益于MongoDB的模式自由特性,這些差別較大的對(duì)象仍然可以整合在一起。②在水體對(duì)象類(lèi)中,將水體的基本屬性和空間信息整合到一起,利用BSON格式類(lèi)型來(lái)無(wú)限制嵌套存儲(chǔ)任意的點(diǎn)、線(xiàn)、面對(duì)象字段。③采用陣列存儲(chǔ)雨量的變化信息,能夠兼容存儲(chǔ)若干個(gè)有差別的雨量變化對(duì)象,有效地存儲(chǔ)空間信息類(lèi)、屬性信息類(lèi)以及時(shí)間信息類(lèi),同時(shí)記錄時(shí)空對(duì)象變化類(lèi)型驅(qū)動(dòng)地理對(duì)象發(fā)生變化,時(shí)空對(duì)象變化類(lèi)型即為降雨、季節(jié)變化、農(nóng)作物灌溉、工業(yè)排污等各種不同的變化類(lèi)型。圖4即為連續(xù)記錄未降雨、降小雨、降大雨的滇池流域隨事件發(fā)生變化的成長(zhǎng)樹(shù),通過(guò)降雨事件的驅(qū)動(dòng)實(shí)現(xiàn)非點(diǎn)源污染時(shí)空數(shù)據(jù)實(shí)時(shí)、完整、有序的記載。在以后的模擬與研究中,可以通過(guò)大量的歷史數(shù)據(jù)以及實(shí)時(shí)數(shù)據(jù)分析,獲得降雨對(duì)流域非點(diǎn)源污染的影響以及它們之間的關(guān)聯(lián),從而有效降低降雨對(duì)流域非點(diǎn)源污染的影響。
從形態(tài)上來(lái)說(shuō),在不同事件的驅(qū)動(dòng)下,利用對(duì)象狀態(tài)變化來(lái)表達(dá)時(shí)空過(guò)程,水體時(shí)空對(duì)象變成一個(gè)可以成長(zhǎng)的樹(shù)。連續(xù)記錄未降雨、降小雨、降大雨時(shí)候的水體時(shí)空數(shù)據(jù),包括流域內(nèi)的屬性數(shù)據(jù)及空間數(shù)據(jù)。由于雨量變化的不同,樹(shù)的結(jié)構(gòu)亦不相同。從時(shí)間上來(lái)說(shuō),數(shù)據(jù)中的各雨量變化對(duì)象以實(shí)際發(fā)生的時(shí)序排列,在雨量變化對(duì)象中,記錄了每一個(gè)流程的時(shí)間,將時(shí)態(tài)寓于對(duì)象的變化信息中。利用MongoDB的非點(diǎn)源污染時(shí)空數(shù)據(jù)庫(kù)管理系統(tǒng),通過(guò)將水體各個(gè)時(shí)期的實(shí)測(cè)數(shù)據(jù)或者模擬數(shù)據(jù),依雨量變化的時(shí)間序列順序進(jìn)行存儲(chǔ)管理,將各種要素復(fù)雜關(guān)系內(nèi)化到水體對(duì)象中,一體化地存儲(chǔ)各種水體要素,可以有效解決水體管理時(shí)空屬性的特殊要求。如下為滇池流域中一個(gè)點(diǎn)在降雨開(kāi)始以及降雨結(jié)束情況下的實(shí)時(shí)監(jiān)測(cè)GPS數(shù)據(jù),包括水體對(duì)象的基礎(chǔ)數(shù)據(jù)信息、監(jiān)測(cè)信息以及時(shí)間記錄。
降雨開(kāi)始監(jiān)測(cè)信息:
{
"ID":"2015070901",
"MonitoringTime": [{"Time1": 14:49:56}]
"Name": "DianChi",
"Adress":{"Area":"xinan", "City":"Kunming"}
"Longitude":24°33'13.4172",
"Latitude": 102°26'20.1228",
"Data":[{"Depth":2.5, "Temp": 22.1, "DO": 11.33, "Achl": 33.2,"PH":08.35,"TP":2.12, "TN":3.66}]
"StorageTime": 14:49:57
}
降雨結(jié)束監(jiān)測(cè)信息:
{
"ID":"2015070901",
"MonitoringTime":[
{" Time1": 14:49:56} ,
{" Time2":14:49:56}]
"Name":"DianChi",
"Adress":{"Area":"xinan" , "City":"Kunming" } ,
"Longitude":"24°33'13.4172"",
"Latitude": "102°26'20.1228" ",
"Data":[{"Depth1":2.5, "Temp1":22.1,"Achl1": 33.2,"DO1":11.33","pH1":08.35,"TP1":2.12,"TN1":3.66},{"Achl2": 28.5, "Depth2" :2.8, "Temp2": 19.5,"DO2": 11.33, " pH2": 08.04, "TP2": 2.38,"TN2":3.76}]
"StorageTime": [{" StorageTime1": 14:49:57},
{"StorageTime2": 15:30:13}]
}
在降雨前后的BSON文檔中,完整記錄ID號(hào)為2015070901水體對(duì)象的詳細(xì)信息,包含時(shí)間信息,空間信息和屬性信息。其中時(shí)間信息為降雨開(kāi)始監(jiān)測(cè)時(shí)間Time1、降雨結(jié)束監(jiān)測(cè)時(shí)間Time2、入庫(kù)時(shí)間信息StorageT1和StorageT2;水體對(duì)象空間信息為水體對(duì)象經(jīng)緯度信息Longitude和Latitude;水體對(duì)象屬性信息包含水體水深(Depth)、水溫(Temp)、渾濁度(DO)、水體葉綠素a含量(Achl)、pH、總氮(TN)、總磷(TP)等。
4 時(shí)空數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
4.1 系統(tǒng)數(shù)據(jù)庫(kù)
滇池流域非點(diǎn)源污染模擬時(shí)空數(shù)據(jù)管理系統(tǒng)包含存儲(chǔ)實(shí)時(shí)觀測(cè)數(shù)據(jù)、模擬結(jié)果的觀測(cè)數(shù)據(jù)庫(kù)以及模擬數(shù)據(jù)庫(kù)兩個(gè)物理子庫(kù)。圖5為存儲(chǔ)的時(shí)空數(shù)據(jù)。觀測(cè)數(shù)據(jù)庫(kù)主要有柵格、矢量、GPS、傳感器、影像五類(lèi)對(duì)象,模擬數(shù)據(jù)庫(kù)包括柵格、矢量和影像、文本四類(lèi)對(duì)象。
4.2 系統(tǒng)功能簡(jiǎn)介
根據(jù)滇池流域時(shí)空過(guò)程模擬研究以及數(shù)據(jù)挖掘的時(shí)空數(shù)據(jù)組織、入庫(kù)、輸出、存儲(chǔ)、管理的需求,系統(tǒng)總體功能需求如圖6。系統(tǒng)子功能包括Add、Update、Delete、Check等編輯功能;聚合功能、MapRduce等高級(jí)運(yùn)算功能;數(shù)據(jù)導(dǎo)入導(dǎo)出功能;時(shí)間與空間等索引功能。
4.3 系統(tǒng)試驗(yàn)結(jié)果
從滇池流域?qū)嶋H情況出發(fā),結(jié)合MongoDB文檔特性、面向?qū)ο髸r(shí)空數(shù)據(jù)模型進(jìn)行研究和開(kāi)發(fā)。通過(guò)使用MongoDB驅(qū)動(dòng)程序,編寫(xiě)代碼,實(shí)現(xiàn)MongoDB服務(wù)器,數(shù)據(jù)庫(kù)、集合、文檔的訪(fǎng)問(wèn)與查詢(xún)。經(jīng)實(shí)踐,完成了設(shè)定目標(biāo),實(shí)現(xiàn)系統(tǒng)總體功能模塊。系統(tǒng)界面如圖7。
5 小結(jié)
本研究提出基于文檔型時(shí)空數(shù)據(jù)模型,利用事件驅(qū)動(dòng)的特性,并應(yīng)用于滇池流域非點(diǎn)源污染時(shí)空數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)中。將非點(diǎn)源污染時(shí)空數(shù)據(jù)空間、屬性數(shù)據(jù)、時(shí)間數(shù)據(jù)內(nèi)化到水體對(duì)象中,能夠有效地支持復(fù)雜、多源、非結(jié)構(gòu)化的時(shí)空數(shù)據(jù)組織與存儲(chǔ),實(shí)現(xiàn)歷史數(shù)據(jù)存儲(chǔ)以及隨時(shí)間變化的信息與不隨時(shí)間變化的數(shù)據(jù)區(qū)分,它擺脫了傳統(tǒng)的基于關(guān)系模式設(shè)計(jì)時(shí)空數(shù)據(jù)模型的弊端,不需要設(shè)計(jì)復(fù)雜的表關(guān)系。但是面對(duì)更為復(fù)雜的滇池流域非點(diǎn)源污染情況,由于選擇MongoDB作為后臺(tái)數(shù)據(jù)庫(kù),因此具有無(wú)法支持事務(wù)操作、占用空間過(guò)大等缺點(diǎn)。接下來(lái),仍需要對(duì)文檔型時(shí)空數(shù)據(jù)模型進(jìn)一步優(yōu)化,考慮對(duì)于現(xiàn)實(shí)世界的模型如何抽象,才能夠更好地適應(yīng)非關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)組織、存儲(chǔ)、管理與應(yīng)用;同時(shí),也需要考慮如何更好地結(jié)合云平臺(tái)、大數(shù)據(jù)、物聯(lián)網(wǎng)等新興技術(shù)進(jìn)行時(shí)空數(shù)據(jù)的研究。
參考文獻(xiàn):
[1] 王江彥.河南境內(nèi)淮河流域農(nóng)業(yè)非點(diǎn)源污染模擬研究[D].鄭州:河南農(nóng)業(yè)大學(xué),2011.
[2] 趙 雷.域數(shù)據(jù)模型的研究與實(shí)現(xiàn)[D].江蘇蘇州:蘇州大學(xué),2006.
[3] 陳新保.基于對(duì)象、事件和過(guò)程的時(shí)空數(shù)據(jù)模型及其時(shí)變分析模型的研究[D].長(zhǎng)沙:中南大學(xué),2011.
[4] 王云獻(xiàn).基于時(shí)態(tài)GIS的房產(chǎn)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].河南開(kāi)封:河南大學(xué),2009.
[5] 尹章才,李 霖.GIS中的時(shí)空數(shù)據(jù)模型研究[J].測(cè)繪科學(xué),2005, 30(3):12-14.
[6] 陳新保,朱建軍,陳建群.時(shí)空數(shù)據(jù)模型綜述[J].地理科學(xué)進(jìn)展,2009,28(1):9-17.
[7] 龔健雅,李小龍,吳華意.實(shí)時(shí)GIS時(shí)空數(shù)據(jù)模型[J].測(cè)繪學(xué)報(bào),2014,43(3):226-232.
[8] 張 英.時(shí)空數(shù)據(jù)模型的建模研究與應(yīng)用[D].山東青島:青島大學(xué),2007.
[9] 黃照強(qiáng),馮學(xué)智.時(shí)空數(shù)據(jù)表達(dá)研究[J].計(jì)算機(jī)應(yīng)用研究,2005, 22(9):19-21.
[10] 王光磊.MongoDB數(shù)據(jù)庫(kù)的應(yīng)用研究和方案優(yōu)化[J].中國(guó)科技信息,2011(20):93-94.
[11] 懷 特.Hadoop權(quán)威指南(中文版)[M].曾大聃,周傲英,譯.北京:清華大學(xué)出版社,2010.
[12] CHODOROW K.深入學(xué)習(xí)MongoDB[M].巨 成,程顯峰,譯.北京:人民郵電出版社,2012.
[13] 沈 姝.NoSQL數(shù)據(jù)庫(kù)技術(shù)及其應(yīng)用研究[D].南京:南京信息工程大學(xué),2012.
[14] 李光輝.基于動(dòng)態(tài)距閥值的基態(tài)修正模型構(gòu)建方法及其應(yīng)用研究[D].廣西桂林:桂林理工大學(xué),2012.