摘要:在設(shè)計一款三維噪聲分析軟件的過程中,數(shù)據(jù)組織與管理是關(guān)鍵環(huán)節(jié),這就要求選用功能強大的地理空間數(shù)據(jù)庫。地理空間數(shù)據(jù)庫分為商業(yè)和開源兩種,商業(yè)與開源地理空間數(shù)據(jù)庫各有優(yōu)劣,須根據(jù)具體需求進行選型評價。數(shù)據(jù)庫設(shè)計須緊密結(jié)合三維噪聲數(shù)據(jù)的特性,進行規(guī)范化建模。文章聚焦于三維噪聲數(shù)據(jù)的組織問題,探討利用開源數(shù)據(jù)庫MariaDB進行數(shù)據(jù)庫設(shè)計的可行性與具體方案。
關(guān)鍵詞:GIS;開源;數(shù)據(jù)庫;三維噪聲;MariaDB
中圖分類號:TP311" " " 文獻標(biāo)識碼:A
文章編號:1009-3044(2025)19-0075-03
開放科學(xué)(資源服務(wù)) 標(biāo)識碼(OSID)
0 引言
空間數(shù)據(jù)庫是一種專門用于存儲、管理和分析地理空間數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng),核心在于將地理位置信息(如點、線、面等幾何對象) 與屬性對象(如名稱、數(shù)值等) 結(jié)合。相對于傳統(tǒng)數(shù)據(jù)庫,空間數(shù)據(jù)庫的特點包括數(shù)據(jù)量龐大、具有高可訪問性以及復(fù)雜的空間數(shù)據(jù)模型[1]。
噪聲計算是基于噪聲的聲壓、聲強、功率、頻譜和頻帶,以及噪聲在傳播過程中的衰減和遇到障礙物的吸收和繞射作用,計算傳達到噪聲接受點處的噪聲值。在大場景的聲場計算中,通常會使用聲線追蹤法。聲線可分為直達聲線、繞射聲線以及反射聲線,在這個過程中會產(chǎn)生龐大的數(shù)據(jù)量,并且?guī)в械乩砜臻g屬性。為了快速存儲、查詢和計算噪聲分析過程中產(chǎn)生的數(shù)據(jù),需要一款空間數(shù)據(jù)庫,該數(shù)據(jù)庫須支持地理幾何對象存儲,并具備高速的數(shù)據(jù)存儲、查詢能力與高性能[2]。由三維噪聲信號組成的空間地圖已經(jīng)廣泛應(yīng)用于交通規(guī)劃和城市建設(shè)等領(lǐng)域[3]。
商業(yè)空間數(shù)據(jù)庫市場主要由國外大型公司主導(dǎo),這些公司具有悠久的發(fā)展歷史,功能齊全且強大。然而,對于中小型項目而言,這些企業(yè)級數(shù)據(jù)庫的部分高級功能可能并非必需,顯得冗余。其閉源特性限制了開發(fā)者進行深度定制,通常只能依賴提供的接口進行二次開發(fā)。昂貴的價格也使其更多地被政府機關(guān)和企業(yè)所應(yīng)用。此外,源代碼的不透明性可能引發(fā)對數(shù)據(jù)安全性的擔(dān)憂。開源空間數(shù)據(jù)庫除了具備關(guān)系型數(shù)據(jù)庫的基本功能外,通常還具有成本低廉、源碼開放、可定制性強、信息安全可控等優(yōu)勢。基于上述背景,本文以三維噪聲數(shù)據(jù)管理需求為出發(fā)點,分析了選用開源數(shù)據(jù)庫MariaDB作為空間數(shù)據(jù)管理方案的可行性,并提出了具體的數(shù)據(jù)庫設(shè)計。
1 商業(yè)和開源空間數(shù)據(jù)庫對比
1.1 商業(yè)數(shù)據(jù)庫解決方案
商業(yè)數(shù)據(jù)庫依托雄厚的技術(shù)實力、完善的研發(fā)和測試體系,以及完備的技術(shù)支持和售后服務(wù),其產(chǎn)品成熟、使用便捷、安全性高,是企業(yè)級數(shù)據(jù)庫解決方案的理想選擇。
在商業(yè)數(shù)據(jù)庫應(yīng)用中,主流的解決思路是利用空間數(shù)據(jù)引擎ArcSDE建立連接。ArcSDE是ESRI公司開發(fā)的一種可將空間數(shù)據(jù)存儲于關(guān)系型數(shù)據(jù)庫的轉(zhuǎn)換引擎,通過在關(guān)系數(shù)據(jù)庫管理系統(tǒng)和空間數(shù)據(jù)之間建立通路,進行空間數(shù)據(jù)與屬性數(shù)據(jù)之間的相互轉(zhuǎn)換,并支持主流的商業(yè)數(shù)據(jù)庫,如SQL Server和Oracle等。
張洪吉、李緒平等人[4]探討了基于ArcSDE + SQL Server的新農(nóng)村建設(shè)數(shù)據(jù)庫設(shè)計與實現(xiàn),將ArcSDE與SQL Server建立連接后,通過軟件自帶的功能導(dǎo)入空間地理數(shù)據(jù)。孟成、彭明軍、石騫[5]則研究了ArcSDE + Oracle模式下的空間數(shù)據(jù)用戶監(jiān)控技術(shù),通過分析Oracle和ArcSDE內(nèi)部表之間的關(guān)聯(lián)性,設(shè)計并實現(xiàn)了用戶監(jiān)控系統(tǒng)。
1.2 開源數(shù)據(jù)庫解決方案
與商業(yè)數(shù)據(jù)庫相比,開源數(shù)據(jù)庫憑借其成本低廉、靈活性高、源代碼開放(遵循GPL、BSD等協(xié)議,允許修改與補充) 等特點,成為許多中小企業(yè)的數(shù)據(jù)庫解決方案。
盡管開源空間數(shù)據(jù)庫在GIS中的應(yīng)用日益增多,但相較于商業(yè)方案,其普及度仍有提升空間。傳統(tǒng)上,MySQL在Windows平臺的應(yīng)用較多,而PostgreSQL則起源于Linux平臺,雖然其對Windows平臺的支持已日趨完善,但在Linux環(huán)境下的性能表現(xiàn)更優(yōu)。
2 三維噪聲數(shù)據(jù)分析
2.1 數(shù)據(jù)對象
在三維噪聲分析中,需要模擬現(xiàn)實世界的各種物體,如基本的道路和建筑物。將每個物體分為特定的類型,每個特定的類型擁有特定的空間和屬性信息。在三維噪聲分析的數(shù)據(jù)模型中,對象分為7類:高程數(shù)據(jù)、聲源對象、聲屏障、反射面、計算網(wǎng)格、噪聲接收點和輔助對象。
在這些對象中,直接參與噪聲傳播計算的核心對象主要包括4類:聲源、聲屏障、反射面和噪聲接收點。聲源指發(fā)出噪聲的源頭,包括點、線、面聲源,如廣播和道路。聲屏障指阻隔噪聲傳播的物體,如隔聲板、樹木和綠化帶;反射面指改變噪聲傳播路徑的物體,如建筑物表面;噪聲接收點是用于計算和顯示噪聲影響程度的位置,例如監(jiān)測點、建筑物表面或地面點。其他對象主要指高程數(shù)據(jù)(如DEM網(wǎng)格、等高點、等高線) ,用于地表高程插值,并為建筑物、道路等對象提供高程信息。
2.2 噪聲分析流程
首先利用噪聲接收點(噪聲監(jiān)測設(shè)備) 接收到的噪聲值大小,插值出區(qū)域內(nèi)的平面噪聲地圖,通過空間疊加分析,賦值區(qū)域內(nèi)的道路線狀地物,使其獲得聲源強度。通過將一部分噪聲接收點作為矯正點,進行校準(zhǔn)和驗證,以縮小噪聲值計算誤差。
然后將擁有聲源強度的道路作為聲源,通過噪聲傳播計算方法,計算附近建筑物表面的噪聲值。在這個過程中,需要將道路和建筑物表面進行離散化。道路需要轉(zhuǎn)換成道路點,每個道路點對應(yīng)一個聲源強度。建筑物表面切割為網(wǎng)格,建筑網(wǎng)格作為接受噪聲的最小單元,用來存儲接收到的噪聲值大小。
噪聲從聲源點到建筑物表面的噪聲接收點的計算過程中,除了需要考慮空間衰減,還要考慮聲障(如樹木、圍墻、建筑物) 對聲音傳播的影響。因此,噪聲傳播路徑根據(jù)是否存在聲障,可以分為直線路徑和繞射路徑兩種。對于非直線路徑連接噪聲源和噪聲接收點,需要根據(jù)聲障類型對傳播路徑進行分段規(guī)劃,并對噪聲路徑進行分段計算。
計算完目標(biāo)區(qū)域內(nèi)建筑物表面的噪聲接收點數(shù)值后,可以通過三維引擎渲染技術(shù),對建筑物表面網(wǎng)格根據(jù)信噪聲值大小進行色彩分級顯示。噪聲值越大,顯示顏色越深,從而直觀顯示噪聲值大小的分布。
2.3 數(shù)據(jù)存儲
非點類對象可以通過離散化形成折點表,例如,線狀面狀對象如道路和建筑物可以轉(zhuǎn)化為道路折點表和建筑物折點表,以便于與其他對象進行交互運算。折點對象可以從高程DEM網(wǎng)格中獲取高程數(shù)據(jù),并存儲在數(shù)據(jù)庫中。不同的對象擁有不同的折點表,折點通過名稱和索引與所屬對象建立一對一的映射關(guān)系。每個對象除了攜帶自身的基礎(chǔ)屬性外,還包括計算屬性和人工添加的數(shù)據(jù),均存儲在對應(yīng)的折點表中。
通過已有的噪聲接收點的噪聲值反算附近道路的聲源強度。在計算過程中,將道路離散成道路點,然后通過距離算法篩選出在噪聲接收點合理影響范圍內(nèi)的道路點,計算出道路點的聲源強度。擁有聲源強度的道路點通過折點表在道路之間建立起一對多的映射關(guān)系。
建筑物表面的網(wǎng)格接收點同樣依附于建筑物折點對象,從建筑物折點獲取坐標(biāo)信息。擁有坐標(biāo)信息的每個網(wǎng)格接收點通過特定算法,篩選出附近對其有影響的道路點,計算所有對自身有影響的道路點的噪聲疊加值。
根據(jù)點類對象劃分不同的空間計算對象。噪聲接收點本身為點類型,已實現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的統(tǒng)一,而道路和建筑物對象的屬性存儲在對應(yīng)的對象表中,通過道路點和建筑物折點表建立起屬性數(shù)據(jù)與空間數(shù)據(jù)的關(guān)聯(lián)。
3 空間數(shù)據(jù)庫的設(shè)計
空間數(shù)據(jù)庫作為地理信息系統(tǒng)的數(shù)據(jù)存儲容器,其設(shè)計模式和數(shù)據(jù)組織形式直接影響系統(tǒng)的數(shù)據(jù)存儲與讀取效率。三維噪聲分析所包含的基礎(chǔ)數(shù)據(jù)包括地形、建筑物、道路、聲源、噪聲接收點和聲屏障等,數(shù)據(jù)格式為點、線、面三種。
3.1 數(shù)據(jù)庫建設(shè)需求分析
文章研究的三維噪聲分析建庫基礎(chǔ)需求是開源、可存儲地理空間數(shù)據(jù)和屬性數(shù)據(jù),并要求讀取速度快。噪聲分析過程中擁有大量的基礎(chǔ)地理空間數(shù)據(jù),計算過程中也會產(chǎn)生大量的中間過程數(shù)據(jù)。統(tǒng)一管理數(shù)據(jù)的最佳辦法是建立與噪聲分析系統(tǒng)相對應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。
3.2 數(shù)據(jù)庫概念設(shè)計
在數(shù)據(jù)庫的設(shè)計過程中,概念設(shè)計的目標(biāo)是產(chǎn)生反映全組織信息需求的整體數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式必須獨立于計算機的任何數(shù)據(jù)模型,不受特定數(shù)據(jù)庫管理系統(tǒng)的限制,不考慮計算機軟硬件技術(shù)細節(jié)。創(chuàng)建概念模式的基本方法是使用實體關(guān)系模型(E-R圖) ,將數(shù)據(jù)對象抽象成實體,用實體間的聯(lián)系反映現(xiàn)實客觀事物間的內(nèi)在聯(lián)系[6]。
在三維噪聲分析過程中,地形數(shù)據(jù)是基礎(chǔ),為建筑物、道路、聲源、聲屏障、圓柱體等對象提供高程屬性。地形數(shù)據(jù)通過等高點、等高線和突變等高線插值生成。聲源點通過噪聲接收點進行插值,并應(yīng)用于聲源準(zhǔn)確度驗證,聲屏障則用來阻隔噪聲傳播。建筑物表面和地表形成噪聲吸收區(qū)域,將建筑物表面和地表劃分成等間距的網(wǎng)格,每個網(wǎng)格代表一個噪聲接收點,通過聲源點和聲屏障的分布計算每個網(wǎng)格噪聲接收點的噪聲值,最終生成平面和垂直噪聲網(wǎng)格,并存儲在網(wǎng)格表中。通過抽象的實體類型描繪各個數(shù)據(jù)對象之間的關(guān)系。
3.3 數(shù)據(jù)庫邏輯設(shè)計
在邏輯設(shè)計階段,需要將數(shù)據(jù)庫概念模型轉(zhuǎn)換成邏輯數(shù)據(jù)模型,以滿足用戶對數(shù)據(jù)安全性和完整性的要求。也就是說,要將概念設(shè)計中的實體類型映射到數(shù)據(jù)表中,并建立各種實體約束和主鍵[6]。
4 MariaDB的表現(xiàn)
MySQL被Oracle公司收購后,開發(fā)團隊對MySQL的更新停滯不前,并伴隨帶來閉源的風(fēng)險。MySQL的原始創(chuàng)始人Monty Widenius對這種狀況不滿,創(chuàng)建了其社區(qū)分支MariaDB,以便替代MySQL。因此,Maria?DB是一個增強的MySQL替代品,MariaDB繼承了MySQL的許多特性,這導(dǎo)致二者之間的許多協(xié)議和架構(gòu)是相互兼容的。
MariaDB默認(rèn)采用InnoDB存儲引擎,相比MySQL傳統(tǒng)的MyISAM引擎,它在支持事務(wù)的同時通常具有更好的并發(fā)性能和數(shù)據(jù)查詢速度。
4.1 存儲屬性數(shù)據(jù)
道路、建筑物、聲源點和噪聲接收點等地理空間數(shù)據(jù)的屬性數(shù)據(jù)一開始存儲在Shapefile文件組織形式的.dbf數(shù)據(jù)庫中。加載時,這些屬性數(shù)據(jù)被提取并導(dǎo)入到MariaDB中預(yù)先定義好的關(guān)系表中,形成一對一的對應(yīng)關(guān)系。通過為每個對象分配唯一的名稱和ID,確保了導(dǎo)入的地理空間數(shù)據(jù)與其在MariaDB中的屬性記錄一一對應(yīng)。
4.2 存儲空間數(shù)據(jù)
在三維噪聲分析過程中的地理空間數(shù)據(jù)存儲中,包括道路、建筑物表面的噪聲接收點和聲源點等。首先需要對線狀(如道路) 和面狀(如建筑物表面接收點) 對象進行“點化”處理,即將其離散化為一系列具有代表性的點。線狀道路轉(zhuǎn)化為連續(xù)的道路點,建筑物表面通過設(shè)定的數(shù)值切割成網(wǎng)格,每個網(wǎng)格的中心點即為噪聲接收點。在對每一個特定的對象進行“點化”之后,存儲在MariaDB中為每類對象預(yù)設(shè)的折點表中。該表通過名稱和ID關(guān)聯(lián)相應(yīng)對象,并利用Maria?DB的空間數(shù)據(jù)類型(如POINT) 存儲其地理坐標(biāo)。
4.3 屬性數(shù)據(jù)和空間數(shù)據(jù)間的鏈接
通過為每類對象(如道路、建筑物等) 建立獨立的屬性表(存儲屬性數(shù)據(jù)) 和折點表(存儲空間幾何信息) ,并利用共有的對象名稱和唯一ID作為外鍵關(guān)聯(lián),用于存儲特定對象的地理空間信息。這兩份表的建立都遵循相同的原則,按照規(guī)范建立對象名稱和唯一ID,然后通過相同的名稱和ID標(biāo)識建立每個對象內(nèi)部之間屬性數(shù)據(jù)和地理空間數(shù)據(jù)的鏈接。通過這種方式,三維噪聲數(shù)據(jù)的屬性數(shù)據(jù)和地理空間數(shù)據(jù)都存儲在MariaDB數(shù)據(jù)庫中,實現(xiàn)了屬性數(shù)據(jù)與空間數(shù)據(jù)的有效關(guān)聯(lián)和分離存儲,便于三維噪聲數(shù)據(jù)的統(tǒng)一管理和高效訪問。
5 結(jié)論
本研究旨在為三維噪聲分析軟件選擇合適的數(shù)據(jù)庫支持系統(tǒng),分析了商業(yè)數(shù)據(jù)庫和開源數(shù)據(jù)庫的優(yōu)缺點。分析表明,對于特定需求(如成本和靈活性) ,開源數(shù)據(jù)庫可能是更合適的選擇;通過對比分析,論證了MariaDB在功能、性能及開源特性方面能夠滿足本研究的需求。基于三維噪聲數(shù)據(jù)特點,提出了具體的數(shù)據(jù)庫設(shè)計方案。主要結(jié)論如下。
1) 商業(yè)數(shù)據(jù)庫憑借其技術(shù)實力和服務(wù)支持,通常更適合大型企業(yè)級項目,而開源數(shù)據(jù)庫因其靈活性和成本效益,常被用于中小型項目或需要高度定制化的場景。
2) MySQL是一款優(yōu)秀的數(shù)據(jù)庫,但其被Oracle收購后的發(fā)展策略引發(fā)了社區(qū)對其未來開放性和更新頻率的擔(dān)憂。MariaDB作為MySQL的社區(qū)分支,旨在提供一個功能兼容且完全開源的替代方案,這也是本研究選擇MariaDB的重要因素之一。
3) 在地理空間數(shù)據(jù)庫的設(shè)計過程中,確保屬性數(shù)據(jù)與空間信息的一致性是數(shù)據(jù)庫設(shè)計的關(guān)鍵。本研究提出的設(shè)計方案中,參考Shapefile文件的結(jié)構(gòu)模式,采用了屬性表與空間信息(折點) 表分離存儲的策略,并通過對象名稱和唯一ID建立兩者間的映射關(guān)系,有效組織了矢量數(shù)據(jù)的屬性與空間信息。
參考文獻:
[1] 劉琳婷,孫藝.空間數(shù)據(jù)庫及其在地震應(yīng)急救援中的應(yīng)用分析[J].防災(zāi)減災(zāi)學(xué)報,2014,30(3):97-100.
[2] 馮馳.聲線追蹤法在噪聲地圖中的應(yīng)用研究[D].蘭州,蘭州交通大學(xué),2019.
[3] 王思敏,謝鴻宇.三維噪聲地圖實時紋理生成技術(shù)研究[J].測繪與空間地理信息,2020,43(7):48-51.
[4] 張洪吉,李緒平,羅勇,等.基于ArcSDE和SQL Server的新農(nóng)村建設(shè)數(shù)據(jù)庫設(shè)計與實現(xiàn)[J].安徽農(nóng)業(yè)科學(xué),2013,41(4):1836-1838,1841.
[5] 孟成,彭明軍,石騫.Oracle+ArcSDE模式下空間數(shù)據(jù)庫用戶監(jiān)控技術(shù)研究[J].地理空間信息,2013,11(4):43-45,186.
[6] 張露,馬麗.數(shù)據(jù)庫設(shè)計[J].安陽工學(xué)院學(xué)報,2007(4):76-79.
【通聯(lián)編輯:謝媛媛】