基于Skyline的地下洞库三维系统设计与开发

2014-07-02 00:21史少维姚鹏君林巨超
测绘通报 2014年12期
关键词:洞库对象数据库

史少维,姚鹏君,林巨超

(1.北京东方新星石化工程股份有限公司(BNEC),北京 100070;2.北京建筑大学测绘与城市空间信息学院,北京 100070)

基于Skyline的地下洞库三维系统设计与开发

史少维1,2,姚鹏君1,林巨超1

(1.北京东方新星石化工程股份有限公司(BNEC),北京 100070;2.北京建筑大学测绘与城市空间信息学院,北京 100070)

随着国家能源储备战略的推进,石化行业中储存油气的地下工程规模日益扩大,但地下工程建设过程中的环境限制给项目的考察与管理带来了困难。本文提出利用三维GIS技术对地下工程进行虚拟可视化的信息管理方法,依托地下洞库工程项目,基于Skyline三维软件平台,结合B/S系统框架和NHibernate数据库技术,设计与开发了地下洞库的三维信息管理系统平台。

Skyline;地下洞库;三维模型;数据库;NHibernate;TerraExplorer;ISGWorld65接口

一、引 言

随着我国社会经济的发展,石油需求量上升,对外依存度加大,石油储备安全问题越来越重要。其中地下水封洞库以其储存量大、安全性高、应急能力强、使用寿命长,成为目前国际上石油、天然气等产品的主要储存方式。国内地下储能洞库处于刚刚起步的阶段,为推进地下洞库的建设,本文利用三维GIS虚拟仿真技术,设计与开发配套的地下洞库三维信息管理系统平台,实现地下洞库建设的数字化决策管理。

当前,主流的三维 GIS平台有 Skyline、Worldwind、Google Earth、OSG等,在城市数字化建设中都发挥着各自的优势。其中Skyline平台在石化行业中石油炼油厂区的数字化建设及地下管线三维可视化项目中有所应用,从底层数据库到专业应用层提供着全面的技术支持。因此,本文围绕三维GIS虚拟技术,基于Skyline平台,为地下洞库工程研发三维信息管理系统。

二、Skyline三维平台

Skyline是国外研制的较为先进的三维地理信息系统平台,拥有着强大的三维空间建模与分析技术,为多领域提供着功能强大的三维地理信息系统解决方案[1]。

Skyline平台主要有TerraBuilder、TerraExplorer、TerraGate 3个组成部分。TerraBuilder负责三维地形模型数据和空间对象模型数据的构建;TerraExplorer主要是对三维数据操作分析等功能的实现;TerraGate是在服务器端对三维数据进行Internet发布,客户端用户可以通过互联网登录访问数据库。

Skyline支持javaScript/HTML、C#、VB.NET、C++等多种语言开发,提供了丰富的API接口,不仅可以实现三维数据浏览操作,信息树、层、对象的创建与管理等,还包含数据库扩展模块,实现与其他数据库的连接,以及进行数据的存储、查询与更新等操作,具有海量数据的容纳能力。

三、Skyline三维数据模型构建

地下洞库的三维数据主要包括MPT、FLY,以及地下洞库工程的管道、竖井、储洞室、监测设备(测缝针、应力计等)、纹理贴图等数据;其中使用Skyline TerraBuilder生成MPT与FLY文件数据,使用3ds Max根据设计与测量数据构建地下工程具体三维模型。根据实际项目生产的数据模型叙述如下。

1.地形数据建模

MPT地形数据文件通过数字正射影像图(DOM)、数字高程模型(DEM)构建三维地形模型;三维空间对象模型具体需要设计数据,在二维平面图通过Skyline中的构建地面建筑模型的building命令快速构建。首先使用TerraBuilder对项目区域的航片通过预处理:利用ERDAS、ENVI对影像进行正射纠正、重采样,得到正射影像 DOM;之后将DOM与DEM数据进行叠加,构建三维地形数据MPT文件。

2.地下洞库设备建模

地下洞室、巷道、竖井、泵站等需要根据设计数据、素描图、纹理数据通过3ds Max来构建,转换成Skyline的特有轻量级的 xpl2数据格式,通过 3d Model命令加载到FLY工程文件中,进行模型的参数和属性的设置,以调整位置、方向与大小。

3.三维工程文件(FLY文件)

FLY文件由TerraExplorer pro生成,是三维数据的索引文件,包含网络空间数据地址,即将MPT三维地形数据地址、点数据地址、设备模型数据地址、二维平面图地址、影像数据地址等整合到一个FLY文件中,并通过加装FLY文件,实现三维数据的显示、数据信息树目录、二维导航图的显示。在信息树中点击子节点,可以在Skyline平台上实现特有的对象三维定位飞入显示效果。

四、基于Skyline的系统开发框架设计

本案将系统框架设计为B/S 3层结构:表示层、中间层与数据层。表示层是客户端系统操作界面层,通过用户的命令实现相应的功能;中间层是为数据的传输和Skyline功能接口提供服务;数据层是在服务器端利用数据库对数据进行存储与管理。系统开发框架设计如图1所示。

图1 B/S结构系统框架设计

1.表示层设计

本系统使用VS2010可视化集成环境的开发工具,采用C#语言开发Web的工程项目,利用JavaS-cript脚本来调用Skyline的API功能函数进行二次开发。其页面布局采用Html/CSS,并结合ext.net框架进行布局优化设计,提供美观流畅的网页界面。

2.系统中间层功能设计

利用TerraExplorer Pro二次开发函数库,搭建三维数据系统平台,为地下工程提供强大的三维空间辅助决策支持与分析功能。

Skyline接口服务中的TerraExlporer对象提供统一的ISGWorld65开发接口,在ISGWorld65接口中包含着 IProject65、INavigate65、IProjectree65、ICommand、ICreator65等功能接口;通过这些接口定义的属性与方法操作 TE3DWindowEx、TEInformationWindow、TENavigationMap窗口控件可实现相应的系统功能。Skyline开发接口服务体系如图2所示。

图2 Skyline TerraExplorer的开发接口体系

3.数据层海量数据存储

三维模型的空间数据以MPT和FLY文件形式通过权限加密存储于TerraDateBase服务器中。根据地下工程的特性,大量的设备属性信息需要进行存储查询,因此对于量的空间对象的属性数据利用Nhibernate技术存储于MSS或Oracle数据库中。

Nhibernate是一种面向.NET开发环境的对象关系数据库映射工具,利用对象关系映射技术,可把对象与基于SQL的关系表结构对应起来,将表数据作为对象来进行操作开发,对象实例化,即通过对象的方法来实现表数据查询、添加、删除、更新的功能,从而可以避免过多繁琐的SQL语句,提高开发与数据库进行数据交互的效率。Nhibernate体系结构如图3所示。

图3 Nhibernate体系结构

首先建立数据库关系表,根据数据库表定义相应的persistent objects对象持久类,在结合关系表与对象持久类创建相互关联的xml.mapping映射文件,再通过app.config与web.config等配置文件来连接访问Database数据库及数据库表;在application程序中定义对象的操作函数来实现数据库表数据的增删改操作,其中繁琐的SQL语句及数据库访问接口细节封装在NHibernate框架内,在开发利用过程中,只需要关注数据库表、对象持久类及对应的映射文件,即可存储大量数据库表及提高系统的运行效率。

五、数字洞库系统主要功能开发

依据系统框架设计及Skyline接口服务体系,对主要的功能模块进行开发,各功能模块开发效果如图4—图9所示。

1.Skyline控件的定义

在ASPX文件页面的分区元素中,通过<object>对象标签定义容纳 TerraExlporer的控件,包括TE3DWindow、TEInformationwindow、TENavigationMap 3个布局控件,对应实现三维数据的加载显示、FLY工程文件的信息树目录加载及二维平面图导航的功能。地下洞库系统界面搭建如图4所示,主要代码如下:

2.FLY三维工程文件的加载显示

创建JavaScript脚本文件,添加int()初始函数,并通过SGWorld65对象中Project接口的Open方法来打开在网络服务器指定的FLY工程文件。代码如下:

图4 基于Skyline地下洞库系统主界面

图5 空间量测功能

3.基本的操作浏览显示功能的实现

对模型数据的基本操作功能可通过INavigate和ICommand接口实现,在ICommand接口中定义了固定的id,在参数中输入指定的数值就可以方便快捷地实现相应功能的二次开发。放缩、平拖、旋转、空间量测等功能的主要代码如下:

4.洞库飞行漫游

FLY工程文件在TE3DWindow窗口控件加载显示之后,为了更加方便快捷地了解和观察洞室的内部地质情况,在系统框架上开发了洞库飞行漫游的功能模块,按照设定的飞行路线进行三维漫游浏览。本案的路线设计是从公共交通巷道到连接巷道,再从连接巷道到主洞室,选择预先采集定义的路径进行飞行漫游,在漫游过程中可以上下左右进行微调,达到最佳的观察显示效果。漫游功能效果如图6所示,主要实现步骤代码如下:

图6 地下洞库飞行漫游

5.定点放缩环视功能

定点放缩环视功能可以为用户提供强大的三维环视效果,尤其进入地下工程模型内部进行详细观察时,操作相当困难。在Skyline中开启碰撞侦测模式下,就可以在三维模型内部进行360°全景环视,观察视点周围构造情况。这里首选是添加碰撞侦测模式命令,在开发环视功能时主要调用Skyline中Lookaround文件的rander.js、slider.js、timer.js脚本文件实现;定点放缩环视功能效果如图7所示,其中主要的功能代码如下:

图7 定点放缩环视功能

6.洞库设备信息存储及三维定位

地下工程施工建设阶段要对地质岩层情况进行勘察,项目中采用钻孔智能电视成像技术获取地质影像信息数据,在系统中要进行存储管理[11]。在MSS数据库表中存储钻孔影像的路径信息时,实体影像数据以文件的形式存储在工程目录下,元数据与属性数据分开存储有利于减轻系统负荷及提高效率。通过检索钻孔id号字段可以读取钻孔影像,同时在TE3DWindow窗口对钻孔设备模型进行三维定位,用户可以全方位地进行数据的查询浏览。洞库设备信息存储及三维定位功能效果如图8、图9所示,其主要代码如下:

图8 地质模型信息管理

图9 洞库监测设备信息查询与三维联动定位

六、结束语

本文从三维模型数据的构建出发,结合NHibernate技术进行数据的存储管理,围绕Skyline explorer强大的接口服务体系进行地下洞库系统功能的开发,很好地满足了工程实践中的应用需求;通过路径漫游功能及定点环视功能为观察地下工程提供了很好的参考,同时集成了大量设备模型数据存储及三维联动查询模块,为用户提供了三维地下洞库加载显示、数据存储查询一体化的信息化管理系统。

[1] 徐爱峰,徐俊,龚健雅.基于Skyline的三维管线系统的设计与实现[J].测绘通报,2013(6):75-77.

[2] 吴素芝,杨卫军,郭亮.地下空间综合管理信息平台建设的探究[J].测绘通报,2013(8):99-102.

[3] 钟海东,吴健平,李平,等.基于SKYLINE和视频监控的三维Web GIS应用研究[J].微计算机信息,2011,27(5):20-22.

[4] 曹巍,王争.基于TerrExplorer Pro的三维影像管理系统研究[J].测绘通报,2008(1):50-51.

[5] 惠立.基于skyline油田集输油管网数字化与三维可视化应用研究[D].西安:西安石油大学,2011.

[6] 梁吉欣,左小清.Skyline在Web三维GIS中的应用研究[J].昆明理工大学学报,2009,34(2):1-4.

[7] 周美娟,俞强,杨诗华,等.基于Skyline的公安三维GIS展现应用系统[J].测绘科学,2011,36(3):216-218.

[8] 宋世凯.基于Skyline的城市三维地理信息系统的设计与研究[D].石家庄:河北师范大学,2012.

[9] 高海峰.基于Skyline三维城市规划辅助决策系统设计与实现[D].上海:华东理工大学,2012.

[10] 杨明举,关宝树,钟新樵.水封式地下储气洞库的应用及研究[J].地下空间,2000,20(3):171-175.

Research on 3D Underground Caverns System Based on Skyline

SHI Shaowei,YAO Pengjun,LIN Juchao

P208

B

0494-0911(2014)12-0101-04

史少维,姚鹏君,林巨超.基于Skyline的地下洞库三维系统设计与开发[J].测绘通报,2014(12):101-104.

10.13474/j.cnki.11-2246.2014.0409

2013-10-08

史少维(1986—),男,河北保定人,硕士,工程师,研究方向为数据库及三维GIS应用与开发。

猜你喜欢
洞库对象数据库
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
垂直水幕作用下扩建地下水封油库布局方式研究
液化石油气地下洞库开试车实践研究
攻略对象的心思好难猜
数据库
基于熵的快速扫描法的FNEA初始对象的生成方法
地下水封储油洞库合理间距数值模拟研究
数据库
数据库
区间对象族的可镇定性分析