城市三维管线可视化技术.docx
《城市三维管线可视化技术.docx》由会员分享,可在线阅读,更多相关《城市三维管线可视化技术.docx(31页珍藏版)》请在冰点文库上搜索。
城市三维管线可视化技术
城市三维管线可视化技术
以综合管线数据管理系统为例
付仲良张文元
1系统需求分析2
1.1管线三维可视化意义2
1.2管线系统功能需求3
1.3管线数据需求4
2系统总体设计5
2.1系统的技术路线5
2.2系统的层次结构5
2.3系统的软件配置6
3数据库设计8
3.1数据库内容8
3.2概念模型设计8
3.3逻辑模型设计8
3.4物理模型设计9
4系统功能设计10
4.1系统技术架构10
4.2系统功能结构10
4.3系统功能描述11
5管线三维可视化技术介绍13
5.1ArcGISEngine3D开发简介13
5.2三维管线几何建模原理14
5.3三维管线几何建模算法16
5.4管点三维建模22
5.5三维管线系统功能界面23
1系统需求分析
系统需求分析是在对用户进行深入细致的调查基础上进行的,它是GIS设计
的基础,是通过与系统潜在用户进行书面或口头交流,将收集的信息根据系统软件设计的要求归纳整理后,得到对系统概略的描述和可行性分析的论证文件。
全面深入地了解掌握用户需求是进行优良的系统设计的关键,也是系统生命力的保
证,需求分析使GIS开发者可以明确地了解用户对GIS内容和行为的期望和需求。
1.1管线三维可视化意义
城市地下管网是由纵横交错的给水、排水、燃气、热力、电力、电信、工业管线组成的错综复杂的空间体系,担负着能源输送、信息传输等工作,是城市赖以生存和发展的物质基础。
但由于多方面的原因,我国现有地下各类专业管线的资料残缺不全,且有关资料精度不高或与现状不符,造成在建设施工中时常发生挖断或挖坏地下管线,造成停水、停气、停暖、通信中断、污水四溢等严重事故。
另一方面,我国现有的地下专业管线在地上、地下立体布设,管线繁多、复杂。
已有的管线资料都以图纸、图表等形式记录保存,采用人工方式管理效率低下,资料系统性差。
对于变化的区域,管线维护困难,各部门也存在为了建设方便重复收集资料、标准不统一、管理混乱等情况。
而城市地下管线现状资料作为地下工程规划设计、施工和运行管理的基础数据,必须为合理地开发利用地下空间,加强城市地下空间的统一规划管理提供科学依据。
目前城市管网系统大多停留在二维的管理基础之上,不能生动地表现具有三维特征的客观实体。
而且,管线在地下的分布纵横交错,二维图形无法表现管线之间的空间关系。
由于三维直观性强,可从不同方位再现物体,具有较强的立体感、逼真感,通过三维可视化可以直观地看到城市地下纵横交错、上下起伏的实
际管线。
所以建立城市三维管网系统,有利于全面反映地下管网的分布状况,便于管网的维护、检测,实现管网信息从无序到有序化管理。
此外,将管网信息与城市基础地理信息融合在一起,可实现信息共享,为城市的施工建设提供准确、现势的资料,为科学管理提供辅助决策的依据。
1.2管线系统功能需求
需求分析阶段最重要的就是了解系统的功能需求。
只有系统功能需求明确,才能给后面的系统开发确定明确的目标。
以综合管线测绘数据管理系统为例,通过多次和用户的沟通交流,确定系统的功能需求如下(以系统用户用例图来表示):
图1综合管线测绘数据管理员用例图
图2综合管线测绘数据普通用户用例图
从上面两个用例图可以看出,综合管线数据库系统管理员拥有最高权限,可以对综合管线数据进行入库管理、视图管理、查询统计、编辑、符号库管理、制图输出、三维浏览、二三维视图切换等各种操作;而该系统的一般用户则只能对综合管线数据进行视图管理、查询统计、三维浏览和二三维视图切换等基本操作。
1.3管线数据需求
数据是地理信息系统的核心。
数据的状况对系统目标的影响很大。
在考虑系统目标时,需要对数据进行评估、分类和登记。
在需求阶段,需要对用户单位现有的数据源进行调查,包括能获得哪些数据;这些数据可划分为几个类型;它们之间有何联系;哪些是基础数据,哪些是可以由基础数据生成的合成数据和综合数据。
在综合管线数据管理系统中,为了在三维场景中显示三维管线和三维地形,系统需要用到的数据包括:
含有平面坐标和高程值的各类管线数据、以及井等管点附属设施矢量数据、基础矢量数据、三维地形数据(DEM、遥感影像数据(DOM。
2系统总体设计
2.1系统的技术路线
(1)考虑到系统对于空间数据交互较为频繁和GIS空间分析要求较强,可采用客户机/服务器(C/S)的体系架构。
(2)数据库管理系统采用当前国际上先进成熟的关系型数据库管理系统Oracle存储海量数据,实现对空间数据的集中统一管理和分布式应用。
(3)采用美国ESRI公司的ArcGIS系列产品作为GIS平台,空间数据库引擎使用ArcSDE,支持Windows平台和UNIX平台。
通过空间数据与属性数据的相互关联,以网络技术、C/S技术为基础,进行系统集成。
(4)系统建设与开发采用面向对象的软件工程方法,包括面向对象的分析方法、面向对象的建模技术、面向对象的编程技术。
严格按照软件工程的要求进行系统建设的规划、管理、开发、风险跟进及规避。
2.2系统的层次结构
系统设计充分考虑业务与功能的紧密结合,并根据应用需求和设计原则,将系统总体结构划分为五层,分别是数据采集层、数据库层、通用组件层、应用层及用户层。
1、数据采集层
主要完成综合管线数据的采集、基础地形数据的获取与处理等。
2、数据库层
数据库层由基础地理信息矢量数据库、栅格数据库、综合管线测绘数据库、三维景观模型数据库和系统维护管理数据库组成。
各种数据库可以分布式存储在
用户单位的数据交换中心。
它为该单位各相关部门的应用提供数据支持。
3、通用组件层
它是所有应用系统的基础。
在各个子系统的基础上,抽取类似功能构建通用组件,避免功能重复开发,达到业务变更时组件修改即可满足全部系统修改的要求。
4、应用层
该层主要向政府、企业、社会等提供管线及其相关的空间信息查询、综合决
策、三维虚拟浏览及空间分析等支持功能。
5、用户层
用户层由用户单位的局领导、系统管理和维护人员、一般的日常工作人员等组成。
2.3系统的软件配置
1数据库软件
综合管线测绘数据管理系统采用成熟的商用数据库Oracle10g进行空间数据
的存储和管理。
2、GIS平台软件
GIS平台软件选择世界著名的ESRI公司的ArcGIS9.2产品。
ArcGIS整个软件系列包括:
ArcGISDesktop、ArcObjects、ArcGISEngine、ArcSDE、ArcGISServer等。
整个系列软件数据结构全部共享,全面支持工业标准的开发环境,从低端到
高端的平台产品均采用共同的、工业标准的体系结构;基于组件对象模型进行构造,其中ArcGISEngine组件对象库中定义并实现了上千个在GIS应用中涉及到的空间数据对象,因此ArcGIS系列各产品之间以及与其它GIS产品或应用系统之间可以在共同遵守工业标准的前提下,方便而无缝地互连、互嵌和扩展。
ArcGIS可运行于多种平台上,在这些平台上可直接共享数据。
其数据管理采用全关系型DBMS,在所有主流工业标准的DBMS中管理空间数据和相关的属性数据,同时提供并发、高效和安全的海量空间数据驱动引擎和丰富的客户端软件。
除核心模块外,ArcGIS还包括若干扩展模块,完成多种分析功能,例如3D扩展模块为用户提供三维数据的生成、显示、编辑和分析功能,还提供了一个独立的三维景观生成、显示和飞行的应用程序。
由于数据库的强大的数据处理能力加上ArcSDE独特的空间索引机制,每个数据集的数据量不再受到限制,ArcSDE可以处理海量的无缝地理数据。
ArcSDE通过版本管理技术解决了由于空间数据时态性引起的一系列长事务处理的问题。
数据库中可以存储多个版本的数据,但并非是简单的数据备份,它们仅仅记录数
据版本的区别。
版本之间是树型继承关系,各个版本可以独立编辑和运行。
3、系统开发组件
系统开发基于ArcGIS家族中的ArcGISEngine组件。
ArcGISEngine是一个创建定制GIS桌面应用程序的嵌入式GIS工具包。
使用ArcGISEngine可以创建独立界面版本的应用程序,也可以对现有的应用程序进行扩展,为GIS和非GIS用户提供专门的空间解决方案。
ArcGISEngine可以在没有安装任何ArcGIS桌面软件的环境下提供所有GIS功能,是一组设定良好的跨平台、跨语言部件。
它可以运行在Windows、UNIX
和Linux平台上,并支持C++、VB、.NET、Java等一系列应用软件开发环境。
ArcGISEngine提供各种控件、对象和工具,支持扩展模块GeoDatabase编辑、
Raster和3D分析和可视化功能,提供多种开放的API函数,具有跨平台的特性。
4、系统开发工具
系统的开发工具选用MicrosoftVisualStudio2005中的VisualBasic.NET。
VisualBasic.NET是基于.NET框架的完全面向对象的新的开发语言。
VB.NET具
有与平台无关性,由于它是基于通用语言运行时(CLR)的,用它写的代码能编译
成微软中间语言(MSIL),可以在它的支持下运行,这使应用程序得以独立于特定的平台。
VisualBasic.NET具有语言无关性,可以与其它.NET语言协同工作。
在本系统中,利用VisualBasic.NET结合ArcGISEngine组件构建出的系统基本架构如下图:
图3基于.NET的应用程序构架图
3数据库设计
数据库是GIS系统的核心和基础,建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是系统开发的必然要求。
因此,数据库设计是系统开发和建设的重要组成部分。
GIS数据库建设分为关系型数据库和空间数据库建设两部分内容。
结合系统数据的特点,本系统主要侧重空间数据库的设计。
在空间数据库的设计过程中,应分别从数据内容、设计思路、概念模型设计、逻辑模型设计和物理模型设计等方面进行了详细的设计。
3.1数据库内容
数据库内容是指数据库中将要存储和组织的数据。
例如建设综合管线数据库,必须有各类管线以及管线附属设施数据,既有管线点类型的数据,如井等,又有管线段的线要素数据,如雨水管线、电力管线、通信管线等;还有一些附属物数据,如出水口、阀门、闸和消防栓等此外,还需要与管线相关的设计图、施工图、竣工图等。
在三维管线系统中,管网还必须具有准确的坐标和高程数据。
3.2概念模型设计
把用户的需求加以解释,并用概念模型表达出来。
数据库需求分析和概念设计阶段需要建立数据库的数据模型。
例如,综合管线数据库的概念模型描述了综合管线数据库中包含的各类实体以及各类实体间的相互关系,包括管点要素实体、管线要素实体、工程数据实体等,每种实体还可以扩展为三种类型的实体:
工作实体、现势实体和历史实体。
3.3逻辑模型设计
把信息世界中的概念模型利用数据库管理系统所提供的工具映射为计算机世界中为数据库管理系统所支持的数据模型,并用数据描述语言表达出来。
逻辑
设计又称为数据模型映射,它是直接依赖于概念模型数据库管理系统来选择的。
综合管线数据库的逻辑模型设计根据ArcSDE提供的GeoDatabase数据模型、参考数据集DataSet数据类FeatureClass和属性表Table的数据组织特点,把概
念模型中的实体和关系映射为ArcSDE实体对象:
库中空间数据映射为一个矢量数据集;各类空间数据根据类别不同分别映射到相应要素类(FeatureClasS存
放在矢量数据集中;非空间数据映射为一个属性表存放在数据库中。
3.4物理模型设计
数据库的物理设计指数据库存储结构和存储路径的设计,即将数据库的逻辑
模型在实际的物理存储设备上加以实现,从而建立一个具有较好性能的物理数据库。
数据库物理设计主要解决以下三个问题:
恰当的分配存储空间、决定数据的
物理表示、确定存储结构。
对于管线数据库,在物理模型设计阶段,需要确定空间数据的存储和组织方式、管线要素的编码规则、图层命名规则、数据的访问方式、数据索引的建立等内容。
4系统功能设计
4.1系统技术架构
综合管线测绘数据管理系统利用ArcGISEngine组件提供的接口通过空间数据引擎ArcSDE访问后台的空间数据库;非GIS功能采用VB.NET来开发,并通过ADO.NET来访问属性数据库。
综合管线数据管理系统
ArcGISEngine组件
ArcSDE
ADO.NET
Oracle数据管理系统
综合管线属性数据
综合管线空间数据
图4综合管线数据管理系统技术架构
4.2系统功能结构
综合管线测绘数据管理系统主要包括如下功能模块:
综合管线数据管理、视图管理、、查询统计、空间分析、符号库管理、制图输出、三维浏览和工程数据管理等功能。
图5综合管线数据管理系统功能结构
4.3系统功能描述
4.3.1空间分析
空间分析
1、量算功能:
基本的距离量算(管线长度量算)、面积量算等功能;
2、缓冲区分析:
根据选定的管线设施与设定的影响范围,生成影响区域;
3、断面分析:
通过显示管线的纵横剖面图来分析管线空间位置关系。
从图中显示出地面的高度、管线的埋深、用相应的颜色显示管线的等级、标注管径;
4、连通分析:
通过任意选择两根管段,判断它们是否连通;
5、爆管分析:
当综合管线在某一位置出现故障时,系统能够通过网络分析查询到事故点周围需要紧急关闭的各类阀门,确定所影响的用户,能打印相关通知单;
6、追踪分析:
对一定范围内单条管线的网络追踪,确定该管线所经过的管点
和管段信息
432三维浏览
系统可以根据综合管线数据库中的三维数据,对区域范围内所有管线或部分指定类型的管线进行三维建模,在三维视图下进行各种浏览操作,如导航、缩放、漫游、飞行等。
三维浏览具体包括以下功能:
导航:
多角度察看三维场景
缩放:
系统提供两种类型的缩放,一种是按照固定比例进行放大或缩小;另一种是拉框缩放
目标居中:
整个场景以选择的目标对象为视图中心位置
目标放大:
三维视图以选择目标为中心放大到一定程度供用户浏览
设置观察点:
改变摄像机的视点
漫游:
三维场景平移到新的位置
全图:
显示整个三维场景的范围
飞行:
三维场景还可以通过飞行的方式浏览场景旋转:
三维场景可以以逆时针或顺时针的方向自动旋转
除了基本的浏览操作外,用户还可以对三维管线进行空间查询,获取三维管线的各种属性信息。
433二三维切换
系统提供二三维视图切换功能,也就是同一批综合管线数据既可以在二维平
面视图中显示,同时又可以对其进行三维建模,在三维视图下显示,两种视图能
够实时切换。
系统提供视图切换按钮,激活此按钮,用户可以从二维视图转换到三维视图进行三维漫游浏览;三维浏览完毕后,用户点击相应按钮,又可以实时返回二维视图。
图6综合管线数据二三维浏览IPO图
5管线三维可视化技术介绍
5.1ArcGISEngine3D开发简介
ArcGISEngine除了提供基本的点、线、面等几何模型外,还提供了3D模型。
3D模型可以包括两种:
矢量模型和表面模型。
其中,表面模型又包括TIN和Raster两种,主要适用于具有高低起伏的地形数据三维表示;3D矢量模型包括所有含
有Z值的几何对象:
点、线、面,以及多片(MultiPatch)。
其中,多片是由一系列三维表面组合而成,可以分为三角条带(TriangleStrip)、三角扇(TriangleFan)和环(Ring)等类型。
其中,三角条带是指一系列相互连接的三角形构成的三维几何形状,其结构如下图所示:
图7三角条带结构
三维管线的表面可以按一定规则分解为多个相互连接的三角形,因此多片几
何对象中的三角条带将非常适合三维管线表面的模拟。
本系统的管线三维可视化就是基于多片这种三维矢量数据模型进行组织和管理的。
AE除了合适的三维数据模型外,还提供了几个接口用于三维实体的建模。
如IConstructMultiPatch接口,它提供了ConstructExtrude、
ConstructExtrudeAbsoluteConstructExtrudeAlongLine等几种用于构建MultiPatch对象的方法,可以将点要素构建成垂直的线,线要素构建成墙,而多边形要素构
建成块;IVector3D接口则提供了构造三维向量、获取三维向量基本属性以及对三维向量进行各种元算的方法;计算机图形学中对三维物体或空间坐标系进行旋转、平移等复杂的矩阵运算,在AE中使用三维变换接口ITransform3D提供的
RotateWctor3D、Move3D等方法就可以轻松实现。
AE提供的接口众多,只要合理利用相应的接口和方法,就能是应用程序的二次开发变得简洁、高效。
5.2三维管线几何建模原理
5.2.1.管线表面微分处理
在管线平面图中,管线对象一般以管线中心线来表示,一段管线在图上显示为一条直线;而在管线三维透视图中,一段管线可以用圆柱面表示,圆柱面的轴心即为管线中心线,圆柱面的截面半径为管线在截面处的半径。
管线是弯曲的,不能像简单圆柱体那样处理。
但对管线细化时,每条管线可看成由直管及其连接直管的接口两部分组成。
已知管径R及空间任意两点P1(x1,y1,z1)、P2(x2,y2,z2),为了形成以P1、P2为轴线的起止点,以R为半径的圆柱,有些学者提出采用Grid法建模,即以P1点所在断面圆弧的两点及对应P2点所在断面圆弧的两点构成一个矩形,在每个圆周围均匀取n个这样的点,可得到n个这样的矩形,这n个矩形便构成棱柱表面。
当n足够大时,在轴线上可以用该棱柱面来逼近圆柱面,如图8所示。
本文对Grid法稍加改进,采用三角形面(非矩形面)来构造类圆柱表面,即三角网建模。
具体方法为:
以P1点所在断面圆弧的两点(一点)及对应P2点所在断面圆弧的一点(两点)组成三角形,在每个圆周围均匀取n个这样的点,这2n个离散点按照一定的次序可构成2n个相互连接的三角形,形成一个封闭的三角网。
当n足够大时,这个三角网就可以模拟圆柱表面,如图9所示。
n越大,管线表面等分越细,模拟管线在直观上就越接近真实管线,近似效果越好,但数
据的运算量也随之增大,电脑显示速度会降低。
反之,模拟管线比较粗糙,电脑显示速度较快。
在本文自定义的管线建模函数中,将n作为细化参数,可以动态修改。
当数据量较小时,可以将n值增大,以取得更好的逼真效果;当数据量很大时,为了使显示真实性与显示速度能取得较好的平衡,可以将n值取为&这
样处理使得管线的建模具有更大的灵活性。
三角网建模实质上就是将Grid建模中的每个矩形以其中的一条对角线分割为两个三角形。
理论和实践证明,在同样将断面圆弧n等分的情况下,用三角网建模比用Grid建模模拟圆柱面的效果要好,而且数据量没有增加。
此外,由于三角形在图形可视化的基础地位,使得这种模型能快速、方便地显示。
图8Grid建模示意图
图9三角网建模示意图
522.管线衔接处圆滑处理
在管线平面图中,一般以二维折线表示管线段的连接。
在三维透视图中,圆柱面的首尾衔接构成虚拟管线段。
为使虚拟管线形象逼真,又不影响系统运行速度,将管线衔接处圆滑过渡。
其实现方式为:
将管线中心线的拐角以圆弧替代,弧线弧度等于相邻线段的夹角弧度,圆弧所在圆的半径等于管径。
然后将直管以圆柱面模拟,拐弯处以部分圆环体表面来模拟,圆环体的截面半径由相连的两个圆柱面的截面半径来确定,如图10所示。
其计算方法在下节中详细介绍。
最后在三维场景中设置光照,则虚拟管线在视觉上与真实管线非常接近。
图10管线衔接处的圆滑处理示意图
5.3三维管线几何建模算法
5.3.1.直管三维建模
真实的三维管线表面是连续变化的,要想记录所有定义表面的位置是不可能,因而一般都是从真实表面上抽取一些样点,然后用插值的方法来求出样点之间的值,从而构成三维表面模型。
对于直管建模算法,一般都是采用从参考坐标系解算到固定坐标系的正向思维,先求解管线表面各点在参考坐标系中的坐标,再根据参考坐标系与固定坐标
系之间的关系,利用空间解析几何知识将这些参考坐标解算到固定坐标系,最后
将这些空间点连接成矩形或三角形来模拟圆柱表面,从而构建出三维管线模型。
已知管线中心线的起始点空间坐标P1(X1,Y1,Z1)、终止点空间坐标P2(X2,丫2,Z2),管径R,为了形成以P1、P2为轴线的起止点,以R为半径的圆柱,采用Delaunay三角网建模算法。
如图11所示,三维笛卡儿坐标系0—XYZ称为固定坐标系,参考坐标系o-xyz定义为原点与起始节点P1相重合,z轴与管线中心线相重合,x轴方向规定为与固定坐标系的某个轴平行,由右手螺旋定则可确定y轴。
图11管线边缘顶点坐标转换
管线上各顶点的三维坐标得到后,再按顺序依次将起止截面上每相邻三个顶点连接起来构成三角形,所有的三角形拼接起来构成三角网,此三角网便可模拟一段圆柱表面,即三维直管。
本系统实现的管线建模算法则是从逆向思维出发,提出一种新的建模方法,其原理是:
首先,以空间坐标系的原点为圆心,在XY平面上以管线的截面半径为圆的半径定义一个圆,将该圆平均分成12等份,求出圆弧截面上12个点的空间坐标,构造出一个十二边形,如图12(a)所示;其次,求出管线的长度,并以管线的长度为拉伸高度,用AE的接口对XY平面的十二边形沿Z轴进行拉伸,构造出一个十二棱柱表面,该表面可以很好地模拟三维圆柱表面,如图12(b)所
示;再次,求出管线起止点所在向量与Z轴之间的夹角,对坐标原点处的圆柱面对象进行整体的旋转操作,使其与管线向量方向相同,如图12(c)所示;最后,将该圆柱面进行整体平移操作,移动到实际管线所在的空间位置即可,如图
12(d)。
图12直管三维建模示意图
基于VB+AE,构建的三维直管模型如图13所示:
图13三维直管模型
5.32弯管三维建模
在管线的三维可视化过程中,直管的建模一般比较容易实现,而管线之间的
光滑衔接处理却比较困难。
两段管线之间的连接方式或者是直的,或者是呈现一
定的夹角。
当呈一定的夹角时,就要对两段管线衔接处进行圆滑处理,即绘制弯
管。
在三维视图中,弯管一般用一定角度的圆环体来表示。
如下图所示,要对两
段直管(P1P2,P2P3之间的弯管建模,则必须确定弯管弧段的起止点(T1、T2)、圆心(0)、半径(R)、圆心角(180°-旳等参数。
具体步骤如下:
图14弯管建模处理示意图
u
(1)求点P1到点P2的单位向量「;
(5-1)
u
(2)求点P2到点P3的单位向量T2;
T2=(X3—X2,丫3—丫2,Z3—Z2)
(5-2)
u
(3)求空间弯管所在平面的法矢量N12:
uuu
N12=TiXT2
(5-3)
(4)求垂直于Pi指向弧段圆心的向量C1:
J.uu
C1=N12XT1
(5-4)
(5)求垂直于P2指向弧段圆心的向量C2:
.:
.u