理正工程地质勘察数据向ArcGIS 数据转换方法研究
2012-08-15袁淑芳韩立洲郝永攀
袁淑芳 韩立洲 郝永攀
(河北建设勘察研究院有限公司,河北石家庄 050031)
0 引言
近年来,GIS在各个领域和深度上不断发展,专业性的GIS应用开发日趋增多。独立的GIS二次开发为我们的科研项目带来了便利,然而,如果存在两个不同系统之间的联合开发时,就会涉及到不同软件应用平台之间的数据格式共享问题。例如:理正工程地质的勘察数据格式不能直接被ArcGIS所利用。
由于ArcGIS与理正勘察数据之间不能直接相互读取,实现数据共享的目的,因此需要通过编制程序进行数据转换。文章以开发城市岩土工程信息系统中遇到的问题为例,介绍在VB开发平台下,实现理正格式的 Access工程地质数据和 ArcGIS下的ArcSDE for SQL数据间的相互转换。
1 理正工程地质勘察数据库管理信息系统与ArcGIS数据转换分析
1.1 系统平台不同
1.1.1 理正工程地质勘察数据库管理信息系统
理正工程地质数据库管理信息系统(Leading GGIS)是北京理正公司在GIS平台基础上的专门针对工程地质行业而自主开发的专业GIS应用系统。实现对勘察数据进行录入、管理,并依据已有的钻孔信息,形成工程建设场区的工程地质资料及场区分析评估。
1.1.2 ArcGIS与AO组件库
ArcGIS是一种集成地理信息系统,利用智能GIS模型来表达几何信息。ArcObject是ArcGIS基于COM技术所构建的组件集。AO组件库则是ArcGIS Desktop产品的一个部分,用户可以利用AO提供的组件对象来进行应用开发。
1.2 数据结构不同
1.2.1 理正工程地质勘察数据结构
理正工程地质勘察数据文件为理正工程地质勘察数据库管理信息系统软件形成的Access备份库文件。理正工程地质勘察数据库文件中共包含81个表,包括工程信息表单组、钻孔信息表单组和实验信息表单组。表中的数据由没有实体空间矢量信息的属性数据组成。
1.2.2 ArcGIS数据结构
Geodatabase是 ArcGIS独有的面向对象的 GIS数据模型。Geodatabase是建立在DBMS之上的统一的、智能化的空间数据模型。它将属性要素和行为结合在一起,采用现代化的、标准的方式实现对象,每个对象都定义为一个COM组件,并允许用户在这些基本模型的基础上扩展自己的面向对象的数据模型。Geodatabase中一个表就是一个要素类,一条记录对应一个要素。要素的矢量结构信息被存储在表格的结构字段中。
2 理正工程地质勘察与ArcGIS数据转换实现
2.1 空间数据转换
首先,在理正工程地质勘察数据转换为Geodatabase数据之前,先在Geodatabase中建立与理正工程地质勘察软件格式相对应的信息结构。其中,要将钻孔表转为由点实体构成实体要素表,钻孔的平面坐标值由z_zuankong表中的x,y值确定,将勘察工程表转为由面实体构成实体要素表,勘察工程是由z_zuankong表所有属于该工程的钻孔坐标最大值和最小值连接而成。
下面以转入GIS实体工程表为例,介绍如何进行空间数据的转换。
Set mRs=objDatabase.OpenRecordset("select max(zkx),min(zkx),max(zky),min(zky)from z_zuankong where gcsy=" & access_gcsy)
//获取钻孔坐标的最大值和最小值mRs.MoveFirst
For i=0 To mRs.RecordCount-1
X1=mRs.Fields(0).Value
X2=mRs.Fields(1).Value
Y1=mRs.Fields(2).Value
Y2=mRs.Fields(3).Value
Next i
//创建一个由坐标最大值和最小值围成的面状实体作为工程
Set pPointCollection=New Polygon
pPoint.x=X1
pPoint.y=Y1
pPointCollection.AddPoint pPoint
pPoint.x=X1
pPoint.y=Y2
pPointCollection.AddPoint pPoint
pPoint.x=X2
pPoint.y=Y2
pPointCollection.AddPoint pPoint
pPoint.x=X2
pPoint.y=Y1
pPointCollection.AddPoint pPoint
2.2 属性数据的转换
属性数据的转换在系统数据转换中显得容易的多,只要将所选表中的项按顺序一一转换即可。
//读取理正工程地质勘察数据
Set pRec=objConnection.Execute("select* from" & access_name&"where gcsy="&access_gcsy)
……
//把数据写入到Geodatabase
Set pTable=pFeatWS.OpenTable(access)
Set pWorkspaceEdit=pFeatWS
For j=0 To RCount-1
Set pRow=pTable.CreateRow
For k=0 To pRec.Fields.Count-1
pRow.Value(k)=pRec.Fields(k).Value
Next k
pRec.MoveNext
pRow.Store
Next j
3 结语
数据共享是当前GIS技术发展和应用的必然需求。理正工程地质勘察数据和ArcGIS数据的相互转换为理正系统和ArcGIS
系统之间的信息交换提供了途径,实现了两个系统之间的数据共享,可以为岩土行业所借鉴。
[1] 王创新,甘 羲.ArcGIS与MapGIS空间数据转换技术与方法[J].计算机与现代化,2006(8):89-92.
[2] 鄢志辉,孙宏睿.AutoCAD和ArcInfo数据转换[J].测绘与空间地理信息,2006(4):1-5.
[3] 王海芹,杨永侠.MapGIS到ArcSDE的数据转换方法与实践[J].国土资源遥感,2005(3):13-14.
[4] 董均祥,宋 丽.MapGIS数据向Oracle Spatial空间数据的转换[J].长江科学院院报,2006(4):199-211.
[5] 王德思.基于ComGIS的从Shape文件到Dxf文件格式转换的方法[J].广东土地科学,2005(6):25-26.
[6] 郭继发,魏峰远.基于.Net的AutoCAD文件向MapInfo文件转换方法分析与实现[J].河南理工大学学报,2006(4):111-113.
[7] 傅 俊,刘 南,刘仁义.实现ArcSDE向OracleiSpatial空间数据的转换[J].计算机应用研究,2003(12):215-217.