葛正+寧芊
摘要:設(shè)計(jì)并構(gòu)建地下管線綜合數(shù)據(jù)庫(kù),利用開源GIS平臺(tái)GRASS的二維顯示模塊,讀取數(shù)據(jù)庫(kù)中存儲(chǔ)的管線空間數(shù)據(jù)來生成并顯示管線二維布局圖,利用AutoCAD進(jìn)行管線三維建模,然后運(yùn)用GRASS的三維模塊實(shí)現(xiàn)管線空間數(shù)據(jù)的三維可視化。為實(shí)現(xiàn)地下管線信息管理系統(tǒng)中的二、三維信息聯(lián)動(dòng)提供一種可行的解決方案,同時(shí)為運(yùn)用開源GIS開發(fā)面向行業(yè)應(yīng)用的三維信息管理系統(tǒng)提供一種技術(shù)路線與實(shí)踐經(jīng)驗(yàn)。
關(guān)鍵詞關(guān)鍵詞:二三維可視化;GRASS;開源GIS;空間數(shù)據(jù)庫(kù);地下管線
DOIDOI:10.11907/rjdk.143799
中圖分類號(hào):TP317.4
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2015)002014003
作者簡(jiǎn)介作者簡(jiǎn)介:葛正(1990-),男,安徽安慶人,四川大學(xué)電子信息學(xué)院碩士研究生,研究方向?yàn)槌鞘械叵鹿芫€信息化;寧芊(1969-),女,四川宜賓人,博士,四川大學(xué)電子信息學(xué)院副教授,研究方向?yàn)橹悄芸刂啤⑺畔⒒?/p>
0引言
隨著計(jì)算機(jī)技術(shù)和城市建設(shè)的快速發(fā)展,二維信息已經(jīng)不能滿足城鎮(zhèn)發(fā)展進(jìn)程中普通人員對(duì)地下管線數(shù)據(jù)直觀顯示的強(qiáng)烈需求。因此,地下管線數(shù)據(jù)的表示方法由二維轉(zhuǎn)向了二、三維,這是未來城鎮(zhèn)地下管線信息化工作的發(fā)展方向\[1\]。目前,GIS在城市地下管線信息化中的應(yīng)用多數(shù)集中在商業(yè)GIS軟件上,而基于開源GIS平臺(tái)的二次開發(fā)較少。GRASS是開源桌面GIS軟件中功能較為齊全的一個(gè),經(jīng)過多年的發(fā)展,幾乎所有的商業(yè)GIS功能都可以在GRASS中實(shí)現(xiàn)\[2\]。GRASS可以在多個(gè)平臺(tái)上運(yùn)行,用戶可以通過內(nèi)置的GUI或QGIS使用該軟件的功能,也可以通過改進(jìn)的shell直接使用其模塊。由于開源GIS的影響力比較小,而且缺乏良好的能夠滿足商用的發(fā)行版本,所以相應(yīng)會(huì)加大開發(fā)工作量與難度。目前,國(guó)內(nèi)還欠缺開源GIS軟件在地下管線信息化中的深入研究與應(yīng)用,尤其是在開源GIS的三維模塊應(yīng)用方面,還不是很成熟\[3\]。
本文研究并利用GRASS、PostgreSQL、PostGIS、AutoCAD實(shí)現(xiàn)了基于開源GIS的管線專題數(shù)據(jù)的二、三維可視化,為構(gòu)建基于開源GIS的管線信息管理系統(tǒng)中的二、三維聯(lián)動(dòng)技術(shù)提供了一種可行的解決方案,其主要技術(shù)路線如圖1所示。
1地下管線專題數(shù)據(jù)庫(kù)設(shè)計(jì)
城市地下管線的種類繁多、空間位置各異、數(shù)據(jù)量大,各種管線的空間數(shù)據(jù)和屬性數(shù)據(jù)來源不同,需要對(duì)不同數(shù)據(jù)源的管線數(shù)據(jù)進(jìn)行整合,然后根據(jù)管線數(shù)據(jù)結(jié)構(gòu)建立地下管線數(shù)據(jù)庫(kù)。這些地下管線原始數(shù)據(jù)主要通過外沿探測(cè)來獲取。地下管線探測(cè)中,通常記錄管線的平面位置、埋深、走向以及管線附屬設(shè)施位置等。
圖1主要技術(shù)路線
用于當(dāng)前試驗(yàn)所建立的管線專題數(shù)據(jù)庫(kù)包括4個(gè)數(shù)據(jù)表:元數(shù)據(jù)表(對(duì)地下管線數(shù)據(jù)庫(kù)內(nèi)容的總體描述)、管線點(diǎn)信息表(地面附屬物的中心點(diǎn),如井蓋中心點(diǎn)、閥門、水表等)、管線信息表(連接管線點(diǎn)的管線段)、小室信息表(管線附屬數(shù)據(jù),如管井下面的地下空間信息)\[4\]。其中最為重要的是管線點(diǎn)信息表、管線信息表,它們基本能表示地下管線所包含的大致信息。這兩個(gè)表的設(shè)計(jì)如表1、表2所示。
管線點(diǎn)以及管線信息表中用到了一個(gè)空間數(shù)據(jù)類型Geometry,該類型是PostGIS空間數(shù)據(jù)引擎中最重要的一個(gè)概念,是“幾何體”的意思,它支持點(diǎn)、線、多邊形等幾何類型(如點(diǎn)類型POINT(1 1)、線類型LINESTRING(1 1,2 2,3 4))。表2中管線類型表示該管線是屬于哪類管線,其取值范圍有給水、電信、電力、排水、熱力、燃?xì)?、工業(yè)等\[5\];管徑字段表示管道半徑;管線條數(shù)字段僅用于電纜類管線;管線高程字段表示管線底部的高程;流向字段的0表示載體的流向從起點(diǎn)到止點(diǎn),1表示載體的流向從止點(diǎn)到起點(diǎn);結(jié)構(gòu)類型字段取值范圍有圓管、直埋電纜、管塊、方溝、套管、管組等。
摘要:設(shè)計(jì)并構(gòu)建地下管線綜合數(shù)據(jù)庫(kù),利用開源GIS平臺(tái)GRASS的二維顯示模塊,讀取數(shù)據(jù)庫(kù)中存儲(chǔ)的管線空間數(shù)據(jù)來生成并顯示管線二維布局圖,利用AutoCAD進(jìn)行管線三維建模,然后運(yùn)用GRASS的三維模塊實(shí)現(xiàn)管線空間數(shù)據(jù)的三維可視化。為實(shí)現(xiàn)地下管線信息管理系統(tǒng)中的二、三維信息聯(lián)動(dòng)提供一種可行的解決方案,同時(shí)為運(yùn)用開源GIS開發(fā)面向行業(yè)應(yīng)用的三維信息管理系統(tǒng)提供一種技術(shù)路線與實(shí)踐經(jīng)驗(yàn)。
關(guān)鍵詞關(guān)鍵詞:二三維可視化;GRASS;開源GIS;空間數(shù)據(jù)庫(kù);地下管線
DOIDOI:10.11907/rjdk.143799
中圖分類號(hào):TP317.4
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2015)002014003
作者簡(jiǎn)介作者簡(jiǎn)介:葛正(1990-),男,安徽安慶人,四川大學(xué)電子信息學(xué)院碩士研究生,研究方向?yàn)槌鞘械叵鹿芫€信息化;寧芊(1969-),女,四川宜賓人,博士,四川大學(xué)電子信息學(xué)院副教授,研究方向?yàn)橹悄芸刂?、水利信息化?/p>
0引言
隨著計(jì)算機(jī)技術(shù)和城市建設(shè)的快速發(fā)展,二維信息已經(jīng)不能滿足城鎮(zhèn)發(fā)展進(jìn)程中普通人員對(duì)地下管線數(shù)據(jù)直觀顯示的強(qiáng)烈需求。因此,地下管線數(shù)據(jù)的表示方法由二維轉(zhuǎn)向了二、三維,這是未來城鎮(zhèn)地下管線信息化工作的發(fā)展方向\[1\]。目前,GIS在城市地下管線信息化中的應(yīng)用多數(shù)集中在商業(yè)GIS軟件上,而基于開源GIS平臺(tái)的二次開發(fā)較少。GRASS是開源桌面GIS軟件中功能較為齊全的一個(gè),經(jīng)過多年的發(fā)展,幾乎所有的商業(yè)GIS功能都可以在GRASS中實(shí)現(xiàn)\[2\]。GRASS可以在多個(gè)平臺(tái)上運(yùn)行,用戶可以通過內(nèi)置的GUI或QGIS使用該軟件的功能,也可以通過改進(jìn)的shell直接使用其模塊。由于開源GIS的影響力比較小,而且缺乏良好的能夠滿足商用的發(fā)行版本,所以相應(yīng)會(huì)加大開發(fā)工作量與難度。目前,國(guó)內(nèi)還欠缺開源GIS軟件在地下管線信息化中的深入研究與應(yīng)用,尤其是在開源GIS的三維模塊應(yīng)用方面,還不是很成熟\[3\]。
本文研究并利用GRASS、PostgreSQL、PostGIS、AutoCAD實(shí)現(xiàn)了基于開源GIS的管線專題數(shù)據(jù)的二、三維可視化,為構(gòu)建基于開源GIS的管線信息管理系統(tǒng)中的二、三維聯(lián)動(dòng)技術(shù)提供了一種可行的解決方案,其主要技術(shù)路線如圖1所示。
1地下管線專題數(shù)據(jù)庫(kù)設(shè)計(jì)
城市地下管線的種類繁多、空間位置各異、數(shù)據(jù)量大,各種管線的空間數(shù)據(jù)和屬性數(shù)據(jù)來源不同,需要對(duì)不同數(shù)據(jù)源的管線數(shù)據(jù)進(jìn)行整合,然后根據(jù)管線數(shù)據(jù)結(jié)構(gòu)建立地下管線數(shù)據(jù)庫(kù)。這些地下管線原始數(shù)據(jù)主要通過外沿探測(cè)來獲取。地下管線探測(cè)中,通常記錄管線的平面位置、埋深、走向以及管線附屬設(shè)施位置等。
圖1主要技術(shù)路線
用于當(dāng)前試驗(yàn)所建立的管線專題數(shù)據(jù)庫(kù)包括4個(gè)數(shù)據(jù)表:元數(shù)據(jù)表(對(duì)地下管線數(shù)據(jù)庫(kù)內(nèi)容的總體描述)、管線點(diǎn)信息表(地面附屬物的中心點(diǎn),如井蓋中心點(diǎn)、閥門、水表等)、管線信息表(連接管線點(diǎn)的管線段)、小室信息表(管線附屬數(shù)據(jù),如管井下面的地下空間信息)\[4\]。其中最為重要的是管線點(diǎn)信息表、管線信息表,它們基本能表示地下管線所包含的大致信息。這兩個(gè)表的設(shè)計(jì)如表1、表2所示。
管線點(diǎn)以及管線信息表中用到了一個(gè)空間數(shù)據(jù)類型Geometry,該類型是PostGIS空間數(shù)據(jù)引擎中最重要的一個(gè)概念,是“幾何體”的意思,它支持點(diǎn)、線、多邊形等幾何類型(如點(diǎn)類型POINT(1 1)、線類型LINESTRING(1 1,2 2,3 4))。表2中管線類型表示該管線是屬于哪類管線,其取值范圍有給水、電信、電力、排水、熱力、燃?xì)?、工業(yè)等\[5\];管徑字段表示管道半徑;管線條數(shù)字段僅用于電纜類管線;管線高程字段表示管線底部的高程;流向字段的0表示載體的流向從起點(diǎn)到止點(diǎn),1表示載體的流向從止點(diǎn)到起點(diǎn);結(jié)構(gòu)類型字段取值范圍有圓管、直埋電纜、管塊、方溝、套管、管組等。
2管線數(shù)據(jù)二維可視化
PostgreSQL是一個(gè)自由的對(duì)象——關(guān)系數(shù)據(jù)庫(kù)服務(wù)器,具有許多優(yōu)點(diǎn):它包括了豐富的數(shù)據(jù)類型支持,其中有些數(shù)據(jù)庫(kù)類型支持在商業(yè)數(shù)據(jù)庫(kù)中都不具備,比如IP類型;它是全功能的自由軟件數(shù)據(jù)庫(kù),很長(zhǎng)時(shí)間以來,它是唯一支持事務(wù)、子查詢、多版本并行控制系統(tǒng)、數(shù)據(jù)完整性檢查等特性的一種自由軟件的數(shù)據(jù)庫(kù)管理系統(tǒng);它擁有一支非常活躍的開發(fā)隊(duì)伍\[6\];其版本更新比較穩(wěn)定,而且每發(fā)布一個(gè)新版本都會(huì)有功能的提升。PostgreSQL數(shù)據(jù)庫(kù)與一般的數(shù)據(jù)庫(kù)功能并無不同,然而在其中配置了許多開源GIS所支持的PostGIS空間數(shù)據(jù)引擎后,它就具有了其它開源數(shù)據(jù)庫(kù)不能替代的優(yōu)點(diǎn),這時(shí)它包含了更加豐富的數(shù)據(jù)類型支持,比如Geometry空間數(shù)據(jù)類型就是在配置了PostGIS后才在數(shù)據(jù)庫(kù)中產(chǎn)生。因此,PostgreSQL數(shù)據(jù)庫(kù)絕對(duì)是開源GIS項(xiàng)目開發(fā)者的首選數(shù)據(jù)庫(kù)引擎。
GRASS的v.in.db模塊功能是將數(shù)據(jù)庫(kù)中帶有空間信息的數(shù)據(jù)表轉(zhuǎn)換成一幅矢量地圖,然而它每次只能將一個(gè)數(shù)據(jù)表轉(zhuǎn)換成一幅矢量圖,因此需進(jìn)行多次轉(zhuǎn)換并且會(huì)產(chǎn)生管線點(diǎn)和管線兩幅矢量圖。以下是運(yùn)用該模塊快速實(shí)現(xiàn)二維管線數(shù)據(jù)可視化的關(guān)鍵代碼:
v.in.db table=P_pipe key=P_ID x=east y=north z=quota out=pointofpipe
v.in.db table=L_pipe key=L_ID x=east y=north z=quota out=lineofpipe //轉(zhuǎn)換管點(diǎn)和管線信息表為兩幅矢量圖
v.overlay ainput=pointofpipe binput=lineofpipe out=pipemap_2D operator=or //合并兩幅矢量圖
d.vect pipemap_2D //顯示地圖
為了避免繁瑣的轉(zhuǎn)換讀取步驟,也可以用QGIS界面管理器手動(dòng)連接數(shù)據(jù)庫(kù)并直接打開圖層,簡(jiǎn)易二維管線布局如圖2所示。
圖2二維管線布局
3管線設(shè)施三維建模
盡管目前的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)可以存儲(chǔ)三維坐標(biāo),但是它還是不能支持真正的三維實(shí)體\[7\]。而且與常見的地形圖不同,常見地形圖的三維可視化可直接利用點(diǎn)數(shù)據(jù)加上DEM高程數(shù)據(jù)來實(shí)現(xiàn),然而地下管線具有一定的規(guī)則性,它不能簡(jiǎn)單地通過高程數(shù)據(jù)來實(shí)現(xiàn)。因此,管線設(shè)施的三維建模需要借助第三方三維建模軟件,此處采用的是AutoCAD工程制圖軟件。AutoCAD具有良好的用戶界面和廣泛的適用性,可以在各種操作系統(tǒng)支持的微型計(jì)算機(jī)和工作站上運(yùn)行,尤其是它所具有的dxf格式圖形和dgn格式圖形可以在絕大多數(shù)GIS軟件上讀入或輸出\[8\]。盡管dgn格式圖形在使用上并不廣泛,但是作為一種空間數(shù)據(jù)的標(biāo)準(zhǔn)格式和一種開放的矢量格式,在處理建筑、橋梁等許多大型工程的圖形上其實(shí)用性比其它格式圖形要好。
在管線三維建模過程中以下幾個(gè)細(xì)節(jié)至關(guān)重要:
(1)城市地下管線共分為給水、排水、燃?xì)?、熱力、工業(yè)、電力和電纜七大類,其中前五種屬于地下管道,后兩種屬于地下電纜,不同用途的管線占據(jù)不同的土層,不同的管線層之間不存在相交關(guān)系,為了防止某層管線破裂而影響到其它管線層,每層之間的間隔厚度要足夠大。具體分層如圖3所示。
(2)在地下管網(wǎng)中,分布著管道的三通接點(diǎn)、彎管接點(diǎn),由于不同管線的特點(diǎn)及載體都不相同,因而在建模時(shí)這些接點(diǎn)的設(shè)計(jì)要視具體情況而定。地下管道一般都是硬管,不能彎折,其三通接點(diǎn)和彎管接點(diǎn)設(shè)計(jì)如圖4、圖5所示。
圖3管線分層圖圖4硬管三通接點(diǎn)
對(duì)于像電力電纜和電信電纜這樣的軟管,它們顯然可以彎折,因此不存在三通接點(diǎn),只有彎管接點(diǎn),在彎折處的管線應(yīng)該是圓滑的\[9\],其模型設(shè)計(jì)如圖6所示。
圖5硬管彎管接點(diǎn)圖6軟管彎管接點(diǎn)
4管線三維可視化
GRASS具有v.in.dxf模塊,該模塊可以將AutoCAD的dxf格式文件快速轉(zhuǎn)換成GRASS特有的矢量圖。但實(shí)驗(yàn)表明,該模塊在轉(zhuǎn)換過程中會(huì)丟失部分圖層信息,造成圖形嚴(yán)重失真。GDAL/OGR是一個(gè)開源柵格和矢量空間數(shù)據(jù)轉(zhuǎn)換庫(kù),其中OGR提供對(duì)許多矢量數(shù)據(jù)格式(如Shapefile、dgn、odbc等)的讀寫支持\[10\],GRASS具有一個(gè)v.in.ogr模塊支持多種矢量數(shù)據(jù)格式的轉(zhuǎn)換。實(shí)驗(yàn)表明,v.in.ogr模塊可以很好地將AutoCAD的dgn格式圖形轉(zhuǎn)換成其特有的矢量格式,并且轉(zhuǎn)換速度快、圖層信息基本都沒有丟失。
GRASS的NVIZ三維可視化模塊是由模塊SG3D發(fā)展而來的一個(gè)工具,用于顯示三維柵格、矢量或站點(diǎn),同時(shí)也能進(jìn)行3D查詢和創(chuàng)建動(dòng)畫。因此,用v.in.ogr模塊和nviz模塊相結(jié)合的方式來實(shí)現(xiàn)管線三維可視化的目的。以下是利用該方法實(shí)現(xiàn)管線三維數(shù)據(jù)可視化的關(guān)鍵代碼:
v.in.ogr -z input=pipemap.dgn output=pipemap_3D //矢量方式導(dǎo)入dgn格式地圖
g.region vect=pipemap_3D -p //根據(jù)矢量圖自動(dòng)調(diào)整合適分辨率
nviz vect=pipemap_3D //NVIZ三維模塊顯示管線圖
利用GRASS的NVIZ三維顯示模塊,得到如圖7所示的三維管線效果圖。
5結(jié)語
在利用GRASS對(duì)數(shù)據(jù)庫(kù)中空間數(shù)據(jù)的直接調(diào)用實(shí)現(xiàn)管線二維可視化的同時(shí),通過AutoCAD進(jìn)行三維管線建模,利用GRASS的OGR矢量模塊導(dǎo)入模型并用NVIZ三維模塊顯示該模型,是解決基于GRASS實(shí)現(xiàn)管線二三維可視化的有效方法。該方法不僅可以充分運(yùn)用AutoCAD的三維制圖功能快速制作三維管線圖,還為GIS二次開發(fā)者應(yīng)用開源GIS來開發(fā)面向行業(yè)應(yīng)用的二三維信息管理系統(tǒng)提供了可信的實(shí)驗(yàn)依據(jù)。
由于尚處于研究階段,目前只實(shí)現(xiàn)了開源GIS針對(duì)專題數(shù)據(jù)的二三維顯示,然而地下管線數(shù)據(jù)集應(yīng)包括基礎(chǔ)數(shù)據(jù)(地面建筑物、道路、附屬設(shè)施等)和專題數(shù)據(jù)。因此,在專題數(shù)據(jù)的基礎(chǔ)上添加基礎(chǔ)數(shù)據(jù)并且全面構(gòu)建基于開源GIS的地下管線信息化管理系統(tǒng)來實(shí)現(xiàn)二、三維聯(lián)動(dòng)顯示功能是后續(xù)研究的重點(diǎn)。
圖7GRASS三維管線效果
參考文獻(xiàn)參考文獻(xiàn):
\[1\]解智強(qiáng),王貴武.城市地下管線信息化方法與實(shí)踐\[M\].北京:測(cè)繪出版社,2012.
\[2\]唐黎明,尤黎明,周榮福.GRASS——Linux下的開源GIS軟件\[J\].采礦技術(shù),2006,6(2):8284.
\[3\]張鵬.基于開源GIS的山洪災(zāi)害監(jiān)測(cè)預(yù)警平臺(tái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)\[D\].成都:四川大學(xué),2013.
\[4\]楊伯鋼,張保鋼,陶迎春,等.城市地下管線數(shù)據(jù)建庫(kù)與共享應(yīng)用\[M\].北京:測(cè)繪出版社,2011.
\[5\]王貴武,解智強(qiáng),李世強(qiáng),等.利用海量探測(cè)數(shù)據(jù)實(shí)現(xiàn)昆明市地下管線三維建模的應(yīng)用研究\[J\].測(cè)繪科學(xué),2009,34(6):122124.
\[6\]陳振權(quán).以SLA為中心的網(wǎng)絡(luò)運(yùn)行監(jiān)測(cè)系統(tǒng)數(shù)據(jù)管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)\[D\].成都:電子科技大學(xué),2009.
\[7\]左小青.道路交通網(wǎng)絡(luò)三維GIS數(shù)據(jù)組織與可視化\[M\].北京:測(cè)繪出版社,2011.
\[8\]郭麗.MapGIS與AutoCAD、Sufer、CorelDraw之間數(shù)據(jù)轉(zhuǎn)換的特點(diǎn)及問題\[J\].商品與質(zhì)量: 學(xué)術(shù)觀察,2012(9):204204.
\[9\]尹寶昌,白駒,崔宇佳.管線三維建模及可視化分析\[J\].交通科技與經(jīng)濟(jì),2010,12(1):119121.
\[10\]陳振,陳榮國(guó),謝炯,等.自定義空間數(shù)據(jù)格式的擴(kuò)展與應(yīng)用\[J\].測(cè)繪科學(xué)技術(shù)學(xué)報(bào),2011,28(2):138140,145.
責(zé)任編輯(責(zé)任編輯:孫娟)