三维虚拟火电厂空间数据引擎设计与应用

2014-03-08 09:22:08方彦军
自动化与仪表 2014年11期
关键词:数据模型空间数据引擎

周 童,方彦军

(武汉大学 自动化系,武汉 430072)

三维虚拟火电厂数字可视化系统是集数据采集、信息管理、实时监控、远程操作于一体的三维虚拟数字图像平台,它将三维虚拟和数字可视化技术与火电厂现有系统与信息结合起来,实现火电厂各种信息的多样化全方位展示,为火电厂的运行管理提供服务。

空间数据引擎SDE作为一种数据管理的中间件,具有对各类海量复杂数据进行有效组织的能力,它是提供存储、查询、检索空间地理数据,以及对空间地理数据进行空间关系运算和空间分析的程序功能集合[1]。在SDE设计方面,文献[1-4]都提出了一种新的SDE,但都没有针对具体的应用;文献[5]针对数字煤矿的特点,提出一种基于煤矿GIS的煤矿SDE,并通过合理的实验证明了所设计的SDE的可行性,有效解决了煤矿空间数据的存储问题。在电力行业,本文针对性地提出一种空间数据引擎SDE,并运用空间数据引擎的管理方法来管理火电厂各种数据信息,达到高效存储和科学管理火电厂空间数据的目的,实现火电厂各种数据信息的共享和相关任务的协同工作。

1 系统的结构体系

三维虚拟火电厂数字可视化系统包括火电厂三维可视化展示平台和应用服务集成接口,通过VC++编程实现了与火电厂SIS、MIS和DCS系统的信息融合,其实现的主要功能:(1)火电厂三维模型的虚拟展示,火电厂的布局和数据信息,如火电厂中三维场景、建筑物、设备等的位置和几何信息;(2)空间选择与查询,对火电厂空间数据能够进行正确的空间分析和查询操作;(3)多媒体属性链接,利用GIS实现空间对象与对应的图纸的超链接关系,并提供多媒体的表现方法;(4)三维场景的交互操作,能够让用户实时对电厂景观进行交互操作。该系统体系结构如图1所示。

图1 系统体系结构图Fig.1 Structure diagram of system

三维虚拟火电厂系统要实现这些功能需存储大量的空间数据,以及有大量的数据交换操作和资源之间的共享,提高这些空间数据的存储效率,并科学化的管理这些数据和资源,是准确获得电厂各种信息的关键。因此,针对性的设计一种三维虚拟火电厂数字可视化系统SDE是很有必要的。

2 三维虚拟火电厂SDE架构

三维虚拟火电厂可视化系统SDE采用通用GIS(geographic information system)中空间数据引擎的技术路线,使用数据库来存储和管理火电厂各种相关数据,并通过SDE提供的接口来解决电厂客户端与底层数据库端之间的数据传输问题。

SDE整体架构采用3层结构体系,即数据库端、服务器端、客户端。这样可使SDE设计具有灵活性。第1层(上层)是火电厂客户端应用系统,它利用SDE提供的客户端API来获得数据库服务器提供的数据服务;第2层(中间层)是系统的核心层,位于客户端和数据库端之间的中间件[6],使客户端和数据库端不直接通信,消除不同数据源间数据模型的差异,通过数据库服务器端API来实现火电厂各种数据的统一存储和管理;第3层(底层)为数据库端,存储火电厂各种空间数据和属性数据信息,基础信息包括数字地形图、数字高程模型、建筑物、注记等;专题信息包括锅炉、汽机、发电机、脱硫、脱硝、变压器等相关数据;图形数据包括各种设备及管线图等;属性及其它数据包括设备设施的影像、材质、运行记录、综合测试数据等。体系结构如图2所示。

图2 三维虚拟火电厂SDE架构Fig.2 3D Virtual power plant SDE architecture

3 空间数据引擎功能设计

在三维虚拟火电厂SDE功能设计中,文章围绕SDE 4个关键技术展开,即建立三维虚拟火电厂空间数据模型,设计SDE存储功能、索引功能和查询功能,提出实现这些关键技术的解决方案。

3.1 空间数据模型

空间数据模型是SDE的基础,建立合理的三维虚拟火电厂空间数据模型,不仅能够有效地表达三维虚拟火电厂空间数据信息,而且能够极大地提高空间数据引擎对这些数据信息进行管理、存储的效率。三维虚拟火电厂信息数据涉及面广[7],由大量的几何实体数据、设备属性数据等构成,包括多个运行环节和专业信息,其结构复杂、变化多样。

本文基于面向对象的设计思想,结合火电厂信息数据的特点和其表达方式,将火电厂中数据对象抽象为相应的对象类,以此来对相应的火电厂空间数据模型进行设计。在空间数据模型中,可以将火电厂空间数据对象集分为3类:矢量对象数据集、栅格对象数据集和一般对象数据集。矢量数据对象集包括属性数据对象和几何实体对象,而其中的几何实体对象又细分为点对象集、线对象集和面对象集;栅格数据对象集主要是指图层、影像、材质等数据;一般对象数据集就是矢量和栅格对象之外的对象几何。

3.2 空间存储功能设计

三维虚拟火电厂可视化系统集成了火电厂各种数据信息,合理地对空间存储功能进行设计,是实现三维虚拟火电厂可视化系统中数据信息统一、安全、高效管理的关键因素。根据三维虚拟火电厂空间数据模型的设计思想,为每个实体对象分配一个唯一的ID,使三维虚拟火电厂数据对象与实体通过唯一的ID相关联。现有的SDE大都将图形数据作为二进制变长数据存储到数据库中,这种存储方法既节省存储空间,又节约空间对象生成实体对象所需的时间[9]。由于栅格数据的数据量较大,故将其放在7个表中,分别是管理表、金字塔表、栅格元数据表、栅格影像集表、栅格影像数据块表、栅格影像图层表和压缩表,对栅格数据进行分层分块管理,以此提高栅格数据存储和管理效率。

在本文中矢量数据包括几何数据和属性数据,为此专门为矢量数据设计4个数据表,分别是管理表、属性表、矢量数据集表和要素表。通过对这几个表中的数据进行操作,就能实现对矢量数据进行管理和存储。

3.3 空间索引功能设计

空间数据索引是通过一些过滤条件,排除大量与特定空间操作无关的地理对象,快速定位到所需的数据对象,从而提高空间数据操作的速度和效率[10]。由于三维虚拟火电厂数据信息量较大,因此需要引入空间索引技术来访问数据,以此来提高数据的空间查询效率。目前国内外研究出了许多高效的空间索引方法,如BSP树索引、K-D树索引、R树索引等,但这些方法的基本原理相似,即采用分割原理,把所要查询的空间划分为若干区域,通过唯一的编码对他们进行标识[1]。本文在三维虚拟火电厂SDE设计中,采用格网索引技术对数据进行访问,其原理就是按照一定的规则将所研究的空间等分成网格,然后记录每个网格包含的空间实体。采用Morton码对每个网格进行编码,创建空间索引的线性表,建立码与实体的对应关系,从而实现存储不同数据规模下的格网索引。

3.4 空间查询功能设计

目前,对空间查询的研究主要有3种方法:基于标准SQL扩展的方法,基于自然语言的方法和可视化的空间查询方法。本文所设计的三维虚拟火电厂SDE采用数据库来存储数据信息,这决定了对空间数据的访问也应该采用SQL[11]语言作为操作语言,但是SQL目前还不支持空间数据类型,因此,需要用SQL的扩展语言GSQL作为空间查询语言。GSQL[12]语言是基于SQL扩展的空间查询语言,其特点是面向问题、面向空间实体,可以支持复杂的空间查询,这恰好与三维虚拟火电厂空间数据模型的特点相符合。

针对三维虚拟火电厂设计的空间查询功能的查询流程:用户提出一个空间查询问题,然后根据GSQL语言的语法规则将这个问题表达成相应的GSQL查询语句,输入这些GSQL查询语句,调用GSQL解释器对这些语句进行解释,解释正确后访问空间数据库得到查询结果,将查询结果返回给客户端,显示在用户界面上。查询流程如图3所示。

图3 空间查询功能的查询流程Fig.3 Query process of spatial query function

4 多用户空间数据的管理

三维虚拟火电厂SDE提供多用户同时对同一数据访问、编辑等功能,这就必须对数据的安全性和有效性予以考虑。而对多用户空间数据进行管理,不仅能维护三维虚拟火电厂的数据信息,还能实现多用户对电厂数据透明、安全访问。目前主要有3种方法能够对多用户空间数据进行管理:版本管理、处理锁定和简单备份。版本管理将用户修改的数据进行部分备份,和数据库中没有被修改的数据一起构成一个新版本;处理锁定会使用户在某一时刻不能对数据进行操作;简单备份就是将用户编辑修改后的数据进行备份,但这会增加数据库的存储负担。通过对3种方法的比较分析,本文选择用版本管理的方法来实现多用户空间数据的管理,即允许用户对数据进行访问、编辑和修改,当用户编辑这些数据并提交修改意见后,由系统自动判断所提意见是否与数据库中存在版本发生冲突,若存在冲突,用户就需对系统提供几个备选方案进行选择,然后生成一个最终数据版本;若不存在冲突,就直接在数据库中生成一个新的数据版本。

5 实例分析

为验证本文设计的三维虚拟火电厂SDE的有效性,以VS2010为开发工具,在微软操作下,可和SQLite、SQL Server、Oracle 3 种数据库实现数据互通,开发出一种新型三维虚拟火电厂数字可视化系统VS-PowerPlant1.0,并对该系统进行了测试。

火电厂的宏观场景可通过VS-PowerPlant1.0进行展示,这些场景包括火电厂的外部建筑、地形地貌、外部标记等,如图4所示。火电厂的内部精细结构也可通过VS-PowerPlant1.0进行展示,如图5所示。

图4 火电厂宏观展示图Fig.4 Picture of the power plant

图5 变压器展示Fig.5 Display of transformer

实际测试表明,应用三维虚拟火电厂空间数据引擎的三维虚拟火电厂数字可视化系统,能够提高火电厂数据的存储、查询、索引效率,解决火电厂数据存储与管理的问题。

6 结语

本文在分析火电厂现有数据类型的基础上,针对三维虚拟火电厂数据的特点,以及这些数据间存在的存储与共享问题,通过分析和探讨SDE的关键技术,提出一种面向三维虚拟火电厂的SDE。通过实例验证了所设计的SDE的可行性和有效性,该SDE提高了火电厂数据的存储、查询、索引效率,解决了火电厂数据存储和管理问题,也为今后火电厂的设备状态检修、生产运营管理提供更为快速有效的服务。目前,基于该SDE系统的基础应用平台基本实现,对系统数据存储和管理效率进行进一步优化,完善电力、热控、输煤、供水等专业子系统应用,增强系统的稳定性是下一步的工作目标。

[1] 陈金川,毛善君,李小娟,等.虚拟煤矿三维引擎架构设计及实现[J].煤炭科学技术,2012,40(7):76-80.

[2] 张明波,申排伟,陆锋,等.空间数据引擎关键技术与应用分析[J].地球信息科学,2004,6(4):80-84.

[3] MOU Nai-xia,ZHANG Ling-xian,YANG Liangjie,etc.A new framework of spatial data sharing and interoperability:spatial data memory engine[C]//Geoinformatics:Geospatial Information Technology,2006:1-6.

[4] 张韵,曹晓航,徐晋晖.一种嵌入式空间数据引擎的设计与实现[J].测绘科学,2010,35(4):187-189.

[5] 邹宏,毛善.煤矿地理信息系统空间数据引擎的设计[J].地理信息世界,2011(3):70-75.

[6] 刘华,王艳东,龚健雅.多数据源空间数据引擎关键技术问题研究[J].测绘信息与工程,2005,30(2):18-20.

[7] 张小诺,王宇,李宏伟,等.基于三维可视化技术的电厂地理信息系统设计与应用[J].工程勘察,2013(7):63-67.

[8] WANG Pin-qian,LIU Gang,HE Zhen-wen,etc.An effective cache management algorithm of three-dimensional spatial data engine[C]//Geoinformatics,2010 18th International Conference,2010:1-5.

[9] 彭勤生,方金云,张娟.基于空间和属性数据的联合索引技术[J].计算机工程,2010,36(8):71-74.

[10]李滨,王青山,冯猛.空间数据库引擎关键技术剖析[J].测绘学院学报,2003,20(1):35-38.

[11]LIN Hui,HUANG Bo.SQL/SDA:a query language for supporting spatial data analysis and its Web-based implementation[J].Knowledge and Data Engineering,2001,13(4):671-682.

[12]万波,潘晓芳,杨林,等.空间查询语言GSQL的研究与实现[J].计算机工程与应用,2006,42(7):140-142. ■

猜你喜欢
数据模型空间数据引擎
面板数据模型截面相关检验方法综述
加热炉炉内跟踪数据模型优化
电子测试(2017年12期)2017-12-18 06:35:36
蓝谷: “涉蓝”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
元数据驱动的多中心空间数据同步方法研究
无形的引擎
河南电力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame开发
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略
面向集成管理的出版原图数据模型
多源空间数据同名实体几何匹配方法研究