李亞 趙俊三
摘要:針對建筑物變形監測數據庫的數據管理問題,利用ArcSDEforSQLserver搭建建筑物變形監測空間數據庫,并采用Visual2010+C#編程語言+Arcengine開發環境對ArcSDE數據庫連接及空間數據加載進行了實例分析。研究結果表明,ArcSDE空間數據引擎技術能夠較好地進行建筑物變形監測空間數據庫構建,且能夠實現空間數據和屬性數據的統一管理。
關鍵詞:GIS;ArcSDE;Geodatabase;ArcEngine;建筑物變形監測
DOI:10.11907/rjdk.181121
中圖分類號:TP392
文獻標識碼:A文章編號:1672-7800(2018)007-0204-05
Abstract:Inviewofthetraditionalbuildingdeformationmonitoringdatabasethatcannotbeabletounifymanagementofspatialdataandattributedata,weuseArcSDEForSQLservetobuildthebuildingdeformationmonitoringspatialdatabase,andemploystheprogramminglanguageofVisual2010+C#andarcenginedevelopmentenvironmenttoconductacasestudyofArcSDEdatabaseconnectionandspatialdataloading.TheresearchshowsthattheArcSDEspacedataenginetechnologycanestablishtheconstructionofbuildingdeformationmonitoringspacedatabasebetter,andcanrealizetheunifiedmanagementofspatialdataandattributedata.
KeyWords:GIS;ArcSDE;Geodatabase;ArcEngine;buildingdeformationmonitoring
0引言
建筑物在建設和使用過程中,由于基礎地質構造不均勻、地下水位變化、土體物理性質不同、建筑物荷載作用等原因會產生不同程度的變形[1]。所以在建筑工程建設和使用過程中需要利用專門的儀器對建筑物的變形現象進行周期性監測。由于在建筑物變形監測工作中涉及大量空間數據,所以如何高效地對建筑物變形監測空間數據和屬性數據進行結合與統一管理成為研究人員亟待解決的問題。
通過查閱相關文獻資料,從20世紀90年代開始,我國學者開始了對變形監測系統的研究。如李志偉等[2]開發了集數據輸入、計算、查詢、報表打印、曲線繪制、變形分析等功能于一體的邊坡變形監測信息系統,并將其應用于邊坡監測中;石杏喜[3]等研制了具有變形監測數據管理、數據分析、報表輸出、圖形管理等功能的變形監測信息系統,并將其應用于地鐵施工監測中;趙顯富[4]等對變形監測數據庫管理系統進行了研發,并分析了數據庫的設計和實現。隨著GIS技術的發展,研究者們開始進行空間數據庫研究,基于商業關系數據庫平臺,結合SDE中間件技術進行空間數據庫研究成為其中的主流方法[5]。基于ArcSDE的空間數據庫構建技術被運用于各類測繪數據分析系統中[6-9],利用ArcSDE空間數據引擎技術進行建筑物變形監測空間數據庫構建卻并不多見,且基于ArcSDE空間數據引擎技術的空間數據庫構建研究都是基于ArcSDE與Oracle連接的應用研究。因此,本文提出在ArcSDE空間數據引擎技術與SQLServer2008R2平臺支持下,研究與構建建筑物變形監測空間數據庫。
1關鍵技術介紹
1.1SqlServer關系數據庫
SqlServer是由微軟推廣和開發的關系型數據庫,其最大優勢在于集成了微軟的各類產品和資源,且提供了強大的可視化界面與高度集成的管理開發工具。作為一個社會普遍通用的數據庫管理系統,SqlServer關系型數據庫擁有完整的數據管理功能。
1.2ArcSDE空間數據引擎
ArcSDE是ArcGIS軟件平臺的一員,主要作為一個空間數據庫中間件技術。ArcSDE以關系型數據庫為存儲中心,為前端的GIS應用程序提供快速的空間數據訪問[10]。ArcSDE體系結構如圖1所示,它是在關系數據庫管理系統(RDBMS)中儲存和管理多用戶空間數據庫的通道[11]。ArcSDE可利用原關系型數據庫強大的管理功能,對空間數據和屬性數據進行統一管理。目前企業級GIS系統基本都是利用ArcSDE作為空間數據庫引擎,進行數據庫到客戶端的數據交互。ArcSDE支持Oracle、SqlServer、PostgreSQL、IBMDB2和IBMInformix5種關系型數據庫,本文主要利用ArcSDEforSQLserver進行建筑物變形監測空間數據庫的構建。
1.3Geodatabase數據模型
Geodatabase是由ESRI推出的一種面向對象的空間數據模型,其基本對象組織思想是使用對象類、關系類,以及各種網絡與相關規則定義空間實體,將其有機地統一起來,綜合表達現實實體及其之間的復雜關系[12]。Geodatabase數據模型具有優秀的關系數據集、要素類和對象類,是目前使用較為普遍的面向對象數據模型,且其是建立在關系型數據庫管理系統(DBMS)之上的統一、智能化的空間數據庫。Geodatabase支持的地理空間數據如圖2所示。
1.4ArcGISEngine開發工具
ArcGISEngine是由ESRI在2004年推出的用于開發C/S(客戶端-服務器)架構地理信息系統(GIS)應用軟件的工具包[13]。它提供了完善的地圖制圖、數據處理與空間分析等功能,能夠使開發者實現從簡單到復雜不同規模的GIS應用軟件開發。
2數據庫構建
2.1需求分析
針對傳統建筑物變形監測數據空間數據與屬性數據的分介質存儲問題,希望將建筑物變形監測空間數據與屬性數據相結合,從而便于管理,并實現對變形監測數據進行空間分析。數據庫主要包括:①空間數據。主要包括基礎地理數據、建筑空間信息數據和監測點布設信息數據等。這些數據主要由矢量數據、柵格數據和數字高程模型數據構成;②屬性數據。建筑物變形監測數據庫除具有空間數據外,還包含了相應的屬性數據。這些數據是對空間數據相關屬性的描述,主要包括各類監測點的監測數據和一些工程基本信息數據。
2.2概念結構設計
一般采用E-R實體關系模型進行數據庫的概念模型表示,E-R實體關系模型主要由實體、聯系和屬性3部分構成,具體設計如圖3所示。實體包括工程、建筑物、水平位移監測點、豎向位移監測點與監測人員,其中水平位移監測數據和豎向位移監測數據為工作人員對監測點進行觀測產生的關系表。各實體都有各自的屬性,且之間具有相互聯系。
2.3邏輯結構設計
數據庫邏輯結構主要指從數據庫使用者角度考察數據組織方式[14]。空間數據采用矢量和柵格兩種數據存儲結構進行存儲,屬性數據則存儲在屬性表中,二者通過建立關鍵字標識進行關聯,實現數據互通。矢量數據采用點、線、面表示,柵格數據采用柵格結構表示,與空間無關的數據利用對象表存儲。空間實體在Geodatabase中的表達方式如表1所示。對于空間數據與屬性數據的存儲,工程信息表、員工信息表、豎向位移監測數據表、水平位移監測數據表結構分別如表2-表5所示。
2.4空間數據庫模式
采用“ArcSDE空間數據庫引擎+關系型數據庫”技術體系進行空間數據管理和存儲。當前社會使用較為廣泛的兩種關系型數據庫管理系統為微軟的SQLServer和美國甲骨文公司的Oracle。相對而言,微軟的SQLServer比甲骨文公司的Oracle操作更加便捷,且性價比更高。所以選用SQLServer關系數據庫作為本次研究的數據庫平臺,且選擇功能較為全面的SQLServer2008R2版本。
3數據入庫
數據入庫工作主要包括矢量數據、柵格數據與屬性數據的入庫處理,數據入庫流程如圖4所示。
3.1矢量數據
在建筑變形監測工作中,矢量數據大多是利用CAD軟件繪制的CAD圖件數據,因此將CAD圖件數據轉換為ArcGIS所支持的圖件數據格式才能滿足建庫需要。CAD數據與ArcGIS數據格式文件中的地圖圖層概念差異較大[15]。在AutoCAD中,圖層為該軟件最關鍵的設置,不同地理要素放在不同圖層,每個圖層的參數都不同。ArcGIS中每個圖層包含兩種信息:描述地理要素空間位置和形狀的空間信息、描述地理要素的屬性信息。具體轉換過程如下:
(1)由于繪制的CAD數據中包含信息復雜,且CAD數據中的多線段數據在轉換為Shapefile數據時能夠較好地識別面數據,所以在總平面圖CAD數據中建立新圖層,依據建設方提供的建筑物軸線,并利用CAD軟件中的多線段工具繪制建筑物輪廓。
(2)依據新圖層(建筑物輪廓)創建新的CAD圖紙,對新的CAD數據利用ArcMap自帶工具箱中的CAD轉換工具進行轉換,得到在ArcGIS中可以利用的建筑面數據。
(3)利用ArcMap中自帶的空間矯正工具對轉換的面數據進行空間矯正,矯正到原建設單位提供的數據坐標系下,然后對圖層定義坐標系。
3.2柵格數據
柵格數據的處理對象主要是建筑區域的遙感影像和DEM模型數據,對于此類數據應利用專業遙感影像數據處理軟件進行處理,主要包括數據配準、數據壓縮以及柵格數據金字塔建立等工作。
3.3屬性數據
屬性數據應根據相應的數據記錄表格進行錄入,且在錄入過程中應確保不要錯誤與遺漏。
4ArcSDE數據庫連接
ArcSDE提供了應用服務器連接和直接連接兩種連接方式[16]。當服務器性能較好時,可采用服務器連接方式,否則采用直接連接方式。但為了減輕服務器壓力,一般采用直接連接方式進行連接,以下對直接連接方式進行研究。
4.1直接連接方式參數設置
服務器(Server):不需填寫。
數據庫實例(Instance):SDE數據庫類型。
數據庫(Database):根據不同的DBMS決定是否填寫。
用戶名(Username):用于連接數據庫用戶名。
密碼(Password):用于連接數據庫密碼。
4.2基于ArcEngine的ArcSDE數據庫連接及空間數據加載
4.2.1C#編程代碼示例
///
///點擊按鈕button1實現ArcSDE空間數據庫連接及空間數據加載到axMapControl控件
///
privatevoidbutton1_Click(objectsender,EventArgse)
{
IWorkspacepWorkspace;
pWorkspace=arcSDEWorkspaceOpen("","sde:sqlserver:.","sde","123","sde","SDE.DEFAULT");
//如果工作空間不為空,則進行加載
if(pWorkspace!=null)
{
AddAllDataset(pWorkspace,axMapControl1);
}
}
///
///ArcSDE控件數據庫連接
///
///
}
}
pDataset1=pEnumDataset1.Next();
}
}
elseif(pDatasetisIFeatureClass)//要素類
{
IFeatureWorkspacepFeatureWorkspace=(IFeatureWorkspace)pWorkspace;
IFeatureLayerpFeatureLayer=newFeatureLayerClass();
pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(pDataset.Name);
pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;
mapControl.Map.AddLayer(pFeatureLayer);
}
elseif(pDatasetisIRasterDataset)//柵格數據集
{
IRasterWorkspaceExpRasterWorkspace=(IRasterWorkspaceEx)pWorkspace;
IRasterDatasetpRasterDataset=pRasterWorkspace.OpenRasterDataset(pDataset.Name);
//影像金字塔判斷與創建
IRasterPyramid3pRasPyrmid;
pRasPyrmid=pRasterDatasetasIRasterPyramid3;
if(pRasPyrmid!=null)
{
if(!(pRasPyrmid.Present))
{
pRasPyrmid.Create();//金字塔創建
}
}
IRasterLayerpRasterLayer=newRasterLayerClass();
pRasterLayer.CreateFromDataset(pRasterDataset);
ILayerpLayer=pRasterLayerasILayer;
mapControl.AddLayer(pLayer,0);
}
pDataset=pEnumDataset.Next();
}
mapControl.ActiveView.Refresh();
}
4.2.2結果展示
本研究采用ArcEngine提供的ToolbarControl、axToccontral和axMapcontrol控件進行空間數據加載界面搭建,通過點擊數據加載按鈕進行數據加載,如圖5所示。
5結語
空間數據庫構建是GIS系統建立的基礎,本文根據建筑物變形監測數據的特點,建立建筑物變形監測空間數據庫,為下一步建筑物變形監測數據分析系統實現打下基礎,并為GIS技術與建筑物變形監測的結合提供參考借鑒。
參考文獻:
[1]錢思眾,樊育豪.高層建筑物地基沉降監測與分析[J].西安科技大學學報,2014,34(3):284-289.
[2]李志偉,朱建軍,鄒崢嶸.基于VB的邊坡變形監測信息系統的研制[J].現代測繪,1999(3):14-17.
[3]石杏喜,岳建平.GPS變形監測信息管理系統的研制及其應用[J].黑龍江工程學院學報,2002,16(3):42-44.
[4]趙顯富.變形監測成果數據庫管理系統的研制[J].測繪通報,2001(4):28-29.
[5]周艷芳.空間數據庫的概念及發展趨勢探究[J].產業與科技論壇,2018,17(2):53-54.
[6]秦琳.基于ArcSDE和Geodatabase的森林空間數據庫構建研究[J].林業調查規劃,2010,35(2):85-88.
[7]樊江,蔡中祥,荊晨.基于ArcSDE和Geodatabase的港口空間數據庫構建[J].地理空間信息,2015,13(3):64-67,10.
[8]張一帆,王青山,郗篤剛,等.基于ArcSDE的機場地理空間數據庫構建[J].地理空間信息,2016,14(5):51-54.
[9]高月,梁兼備,黃旻,等.基于ArcSDE的高層建筑信息數據庫設計與實現[J].軟件導刊,2017,16(10):170-172,175.
[10]李少華.企業級GIS設計管理優化策略[M].北京:電子工業出版社,2014.
[11]張黎娜,鄒海.基于ArcSDE的地理數據入庫和實例開發[J].計算機技術與發展,2013,23(12):183-185.
[12]楊晨毅,劉吉平.基于SDE的GIS空間和屬性數據在RDBMS中的集成[J].計算機仿真,2003(11):110-112.
[13]牟乃夏,王海銀,李丹.ArcGISEngine地理信息系統開發教程[M].北京:測繪出版社,2015.
[14]熊麗華,楊峰.基于ArcSDE的空間數據庫技術的應用研究[J].計算機應用,2004(3):90-91,96.
[15]謝江平,鄒自力.CAD矢量數據向ArcGIS轉換的方法[J].地理空間信息,2010,8(4):130-132.
[16]杜紅悅,劉先林,宮輝力.基于ArcSDE的空間數據綜合管理系統設計與實現[J].測繪科學,2009,34(5):171-173.
(責任編輯:黃健)