掌桥专利:专业的专利平台
掌桥专利
首页

一种基于地理信息的虚拟空间系统

文献发布时间:2023-06-19 13:45:04


一种基于地理信息的虚拟空间系统

技术领域

本发明涉及采油工程技术领域,具体为一种基于地理信息的虚拟空间系统。

背景技术

采油工程是油田开采过程中根据开发目标通过生产井和注入井对油藏采取的各项工程技术措施的总称,作为一门综合性应用学科,它所研究的是可经济有效地作用于油藏,以提高油井产量和原油采收率的各项工程技术措施的理论、工程设计方法及实施技术。

采油工程通常是在地下进行的,因地下环境较为复杂,常用的虚拟空间系统无法对深度这一坐标进行标注,导致常见的虚拟空间系统不适用于采油工程这种复杂空间使用。

发明内容

本发明的目的在于提供一种基于地理信息的虚拟空间系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种基于地理信息的虚拟空间系统,该基于地理信息的虚拟空间系统包括系统层,系统层由数据层、引擎层、运维层、服务层和应用层组成,还包括功能模块,功能模块由空间数据信息库建设、空间数据信息空间数据处理入库、空间系统基础发布引擎和基于web三维可视化控件四部分组成。

优选的,所述数据层包括地理信息数据、地理实体数据、场站数据、影像数据、高程数据、三维模型数据和矢量数据,数据层在多尺度基础地理信息数据的基础上,按照统一技术规范进行整合处理。

优选的,所述引擎层是对基础元数据的地理信息技术抽象处理应用接口,包括遥感影像数据引擎、地址匹配引擎、地图图片引擎、定位引擎、矢量数据引擎和基础发布引擎接口与应用服务。

优选的,所述运维层用于处理基础数据、平台运行维护和数据更新的操作应用和子系统,服务层通过组件或API接口技术向应用系统提供地理信息的服务调用与数据共享。

优选的,所述应用层主要为空间数据处理入库、三维浏览、POI管理、测量、坐标定位、数据展示、地下模式、截图工具。

优选的,所述空间数据信息库建设是整个系统的数据库,数据库中包含高程数据、卫星影像数据、模型数据、矢量数据。

优选的,所述空间数据信息空间数据处理入库是对提供的矢量数据、模型数据、高程数据、卫星影像数据等导入到数据库中,并在系统中随时调用。

优选的,所述空间系统基础发布引擎是构建采油厂的三维可视化场景,对采油厂进行浏览、测量、定位、数据展示、管道流向展示、截图保存等操作。

优选的,所述基于web三维可视化控件是指三维可视化模块可在web端进行操作展示。

本发明提供了一种基于地理信息的虚拟空间系统,具备以下有益效果:

1、本发明PostGIS不仅提供了对复杂的空间对象的支持,而且还支持空间索引,在空间操作方面,PostGIS支持空间操作符,提供了空间分析函数、空间聚集函数和空间维护函数,此外在空间运算方面,PostGIS提供空间数据坐标投影系转换和球体长度计算等功能,使得空间运输更加准确,通过PostGIS对PostgreSQL数据库的拓展,能为其提供存储、管理空间地理数据、几何拓扑分析等空间管理、分析的功能。

2、本发明采用VSV视景引擎来构建三维视景可视化系统,VSV视景引擎由三维地形数据管理系统、三维地景创建系统及三维视景可视化系统组成,地形数据管理系统负责仿真所需数据的组织、存储及分发,地景创建系统用于构建特定仿真场景相关的精细场景数据,包括地面设施、自然环境的创建,而视景可视化系统是基于高性能GPU着色器渲染技术的图像生成软件,通过各种特效插件提供高效逼真的实时图像,可满足系统的可视化的需求。

3、本发明通过多边形颜色填充利用了OpenGL的NV_path_rendering扩展,能够在GPU上直接绘制复杂的凹多边形,避免了费时的分割操作,此外本模块在绘制多边形时专门使用一个ComputeShader进行莫卡托投影和视图变换,这能避免绘制线段时在VertexShader里进行莫卡托投影变换的做法在绘制多边形时无法使用的情况发生。

4、本发明计算纹理坐标时,首先从Mapnik调用绘制模块时提供的参数中获取由投影坐标到屏幕坐标的变换矩阵,再获取每个像素点的屏幕坐标(x;y),减去(bx;by),得到该像素的纹理坐标,在FragmentShader内,使用纹理的长、宽对纹理坐标取模,以得到实际可用的坐标,采用上述步骤计算得到的纹理坐标具有纹理坐标具有全局一致性、相邻瓦片间的纹理可以做到无缝拼接、纹理坐标和屏幕像素坐标的尺寸一致和不会造成图片拉伸的特点。

5、本发明三维可视化控件的关键技术是在ActiveX和OpenGL结合技术,ActiveX控件是较为流行的一种WebGIS实现方法,OpenGL是Web可视化中的底层技术,使用Activex和OpenGL结合实现面向Web的三维可视化开发具有易于网上发布,用脚本语言Javascrip将控件嵌入网页中,当客户端没有注册安装该控件,便会从Web服务器上自动下载并安装注册,当控件版本更新后,通过判断版本号实现自动重新下载更新,复用OpenGL大部分代码,能编写具有强大功能的可视化控件,同时提高了开发效率,缩短开发周期,使得二次开发更为方便灵活,数据库连接,与数据库连接可快速调动资料,可提升开发速度的特点。

附图说明

图1为本发明一种基于地理信息的虚拟空间系统的功能架构示意图;

图2为本发明一种基于地理信息的虚拟空间系统的三维视景构成示意图;

图3为本发明一种基于地理信息的虚拟空间系统的三维场景数据库生成流程结构示意图;

图4为本发明一种基于地理信息的虚拟空间系统的地景数据库示意图;

图5为本发明一种基于地理信息的虚拟空间系统的核心绘制架构基本流程示意图;

图6为本发明一种基于地理信息的虚拟空间系统的线段颜色填充样式示意图;

图7为本发明一种基于地理信息的虚拟空间系统的线符号贴图样式示意图;

图8为本发明一种基于地理信息的虚拟空间系统的面符号颜色填充效果示意图;

图9为本发明一种基于地理信息的虚拟空间系统的多边形纹理填充的绘制效果示意图。

具体实施方式

请参阅图1-9,本发明提供一种技术方案:一种基于地理信息的虚拟空间系统构建方式如下:

S1、系统层构建:

虚拟空间系统主要由数据层、引擎层、运维层、服务层和应用层组成,其中数据层包括地理信息数据、地理实体数据、场站数据、影像数据、高程数据、三维模型数据和矢量数据,数据层是在多尺度基础地理信息数据的基础上,按照统一技术规范进行整合处理;

引擎层是对基础元数据的地理信息技术抽象处理应用接口,包括遥感影像数据引擎、地址匹配引擎、地图图片引擎、定位引擎、矢量数据引擎和基础发布引擎接口与应用服务;

运维层是处理基础数据、平台运行维护和数据更新的操作应用和子系统;

服务层通过组件或API接口技术向应用系统提供地理信息的服务调用与数据共享;

应用层主要为空间数据处理入库、三维浏览、POI管理、测量、坐标定位、数据展示、地下模式、截图工具。

S2、功能模块构建:

虚拟空间系统中的功能模块分为空间数据信息库建设、空间数据信息空间数据处理入库、空间系统基础发布引擎和基于web三维可视化控件四部分组成,其功能架构如附图图1所示,其中:

空间数据信息库建设是整个系统的数据库,数据库中包含高程数据、卫星影像数据、模型数据、矢量数据等;

空间数据信息空间数据处理入库是对提供的矢量数据、模型数据、高程数据、卫星影像数据等导入到数据库中,在系统中随时调用;

空间系统基础发布引擎是构建采油厂的三维可视化场景,对采油厂进行浏览、测量、定位、数据展示、管道流向展示、截图保存等操作;

基于web三维可视化控件是指三维可视化模块可在web端进行操作展示。

S3、空间数据信息库构建:

为了能够更好的满足GIS实际应用需求,提供地理信息处理功能,可采用PostgreSQL的空间功能扩展PostGIS;

PostGIS的特点有:

可完整地实现SimpleFeatures标准之中的空间对象模型,如点、折线、多边形、多点、多折线、多多边形与几何集合;

通过调用提供GEOS之中的几何分析函数,实现了使用3x3Egenhofermatrix分析空间对象之间拓扑关系的运算,并遵循SimpleFeatures定义,实现了一些常见的关系运算,如Intersect,Contain.Overlap;

支持对空间数据的度量,轻松实现对几何体之间的距离,几何体的面积、周长的计算;

通过调用提供GEOS之中的几何分析函数,实现了常见的GIS空间分析功能,如求交、求并、求差、缓冲区;

通过利用R-tree与GisT的结合实现了空间索引,大大提高了正交查询的效率,同时,支持选择性索引,通过建立查询索引,为空间与非空间的混合查询提供了适当的查询策略,大大节约查询时间,使搜索效率得到极大的提升,而PostGIS所支持和提供的这些空间索引,不仅提升了PostGIS数据查询效率,而且,节省了存储空间,可以存储的数据量在数据库服务系统中处于领先地位;

作为PostgreSQL的空间扩展,PostGIS不仅提供了对复杂的空间对象的支持,而且还支持空间索引,在空间操作方面,PostGIS支持空间操作符,提供了空间分析函数、空间聚集函数和空间维护函数,此外在空间运算方面,PostGIS提供空间数据坐标投影系转换和球体长度计算等功能,使得空间运输更加准确,通过PostGIS对PostgreSQL数据库的拓展,能为其提供存储、管理空间地理数据、几何拓扑分析等空间管理、分析的功能,这使得PostgreSQL能成为一个功能强大的空间数据库,从而能使PostgreSQL胜任极大部分空间数据的存储和管理。

S4、空间数据处理入库构建:

本系统数据库采用数据库PostGIS,GIS数据库是用于存储空间和非空间数据的数据库,它使用空间数据模型将各种空间和非空间数据集成,提供数据类型并能够对数据进行空间查询、空间索引,它是对象关系型数据库系统PostgreSQL的一个扩展,提供了空间信息服务功能,这使得使用PostGIS可以方便地对矢量和栅格数据进行入库操作。

S5、空间系统基础发布引擎构建:

空间系统基础发布引擎能为用户提供由遥感影像、DEM构建的三维地形场景浏览,以及站库范围内以三维建筑物模型和纹理构建的三维站库景观、站库浏览;

系统采用VSV视景引擎来构建三维视景可视化系统,VSV视景引擎由三维地形数据管理系统、三维地景创建系统及三维视景可视化系统组成,地形数据管理系统负责仿真所需数据的组织、存储及分发,地景创建系统用于构建特定仿真场景相关的精细场景数据,包括地面设施、自然环境的创建,而视景可视化系统是基于高性能GPU着色器渲染技术的图像生成软件,通过各种特效插件提供高效逼真的实时图像,可满足系统的可视化的需求;

其中,三维视景的构成如附图图2所示,三维场景数据库的生成流程示意图如附图图3所示,三维地景数据库是三维视景的基础数据,场景生成过程中使用的各种源数据通过预处理、优化处理、矢量信息网格化等过程,生成场景渲染所需要的三维场景数据库,如附图图4所示,地景数据库包含大地形数据库、活动目标数据库和固定模型数据库;

此外本系统采用的光照算法是基于预计算查找表的大气散射模型,该模型可以比较准确地模拟大气层中的以下光照效果:

日光经过大气散射后对地表上任何一点的直射光;

由大气层内的多重散射产生的照射到地表上任何一点的天空光;

地表处的反射光经过大气层射入视点过程中的散射衰减;

在大气层内散射进入视点的日光:当视线朝向天空时,这一项体现为天空光效果,而当视线朝向地面时,这一项体现为远处物体颜色变蓝(白天)/变红(傍晚)的效果;

通过大气散射模型,可实时计算地面上的光照效果,这使得本系统中地形、房屋、车辆在内的所有物体的光照效果均使用该方法进行计算;

系统的核心绘制架构采用延迟着色法,延迟着色法具有的优势有:

延迟着色的几何缓冲区设计为参与绘制的各个模块提供了一个一致的数据输出格式,相当于为执行光照计算的模块和其他各模块之间提供了一致的数据交换接口,有助于将各个模块组织到统一的绘制流程之下;

与正向绘制的模式不同,在延迟着色模式下,除了直接进行光照计算的模块之外,其他模块均不需要添加任何光照计算相关的代码,这有助于系统的功能分离,使得光照算法和其他算法可以彼此相对独立的进行开发,可以有效降低系统的开发和维护成本;

系统采用带有大气散射的光照模型作为主要的光照模型,该光照模型的计算量和纹理访问量都较大,使用延迟着色模式可以有效降低光照计算的任务量,有助于实现较高的绘制性能;

系统的核心绘制架构的基本流程如附图图5所示,图中圆角矩形表示绘制操作,直角矩形表示数据缓冲区,实线箭头表示数据流向,虚线箭头表示绘制操作的执行顺序,该流程可将系统中需要绘制的对象分为四类:实体三维模型、带折射效果的网格、星空和非实体效果,其中:

实体三维模型主要指三维场景中的地形、建筑模型、车辆模型等由三角网格构成的具有确定实体形状的对象,这些对象由三角形网格表示,一般不透明,其遮挡关系可以利用深度测试解决,在低分辨率的显示设备上绘制这类对象时常常遇到三角形边缘和交界处的锯齿问题,为了消除这些锯齿现象一般需要采用多重采样等抗锯齿算法;

而带折射效果的网格主要指河面、海面等既具有实体形状,又能对其后的对象(河底、海底、水下物体等)产生折射效果的对象,在实时绘制等对效率要求较高的应用场景中,这类折射效果一般采用屏幕空间图像扰动的方法来近似表现,因此这类对象的绘制顺序必须排在实体三维模型之后,这类对象通常也用三角形网格进行建模和绘制,在三角形边缘和交界处同样有锯齿问题,因此也需要采用多重采样抗锯齿算法;

星空(单指夜间的星空),三维场景中的星空一般用环境纹理或者无穷远处的亮点来表现,绘制时不写入有效的深度信息,但是需要执行深度测试以确保星空不会遮挡场景中的其他物体,星空本身属于自发光对象,可以作为一个单独的绘制步骤插入到延迟着色流程的几何绘制操作和着色操作之间,直接将发光强度写入颜色缓冲区;

非实体效果泛指一切不包含在其他三类当中的、不以三维网格做为表现形式的对象,例如粒子效果(降雨、降雪、粒子云)、后处理效果等,这类对象一般没有确定的边界,不存在锯齿问题,可以不使用多重采样方式绘制以提高绘制效率,后处理效果直接操作已经绘制完成的图像,粒子效果则存在半透明粒子的混合问题,因此二者的绘制顺序都应该排在上述三种对象之后,一般来说粒子效果虽然没有具体的三维形状,但是粒子本身还是存在于三维场景的某个位置之中,因此粒子效果的绘制应当放在后处理效果之前。

S6、三维浏览:

三维浏览模块提供对鼠标、键盘外部输入设备操作的支持,系统对鼠标、键盘的常用功能操作进行预设,用户通过鼠标拖动、键盘操作可以方便的进行场景的三维浏览,三维浏览的数学本质就是坐标平移与坐标旋转的有机结合,每一个动作都是当前坐标矩阵与平移或旋转矩阵相乘的结果,系统采用Z轴向上的左手坐标系(Z轴代表场景高度),确定当前观察点的位置,在Y轴上将视点沿视线方向平移一定距离D,D大于零(视线正方向)是前进,D小于零(视线反方向)是后退;在X轴上,视线方向保持不变,将视点进行平移实现左行和右行;而在Z轴上,视线方向保持不变,增、减视点高度值,实现垂直向上和垂直向下;而通过使视点保持不变,并增、减视线与X、Y平面的夹角(仰角),便可实现俯视和仰视。

S7、POI管理:

视点管理:可设置第一人称视角、第三人称视角、平视、俯视等固定视角;

动态标绘,结合Mapnik地理信息框架的OpenGL可视化绘制引擎,该引擎核心绘制模块采用顶点着色器、几何着色器和片段着色器构成的三段流水线;三个着色器的功能分别是:

顶点着色器按照与Mapnik等价的变换规则处理输入的顶点数据,将其从空间坐标分别变换到裁剪坐标和屏幕坐标,其中屏幕坐标提供给几何着色器进行图元生成,当不使用几何着色器时,裁剪坐标可以直接用于透视裁剪、视图变换和栅格化,此外,顶点着色器也将顶点的纹理坐标转发给几何着色器和片段着色器;

几何着色器在绘制折线段和点数据时使用,用于将低级的图元(线段和点)转换为多边形,例如折线段数据中的每一段经过几何着色器之后变为一个主体部分的四边形和两个半折角部分的三角形,点集数据中的每个点经过几何着色器后变为与纹理图像等大的矩形,而绘制多边形数据时不使用几何着色器;

片段着色器根据绘制参数的不同,可对每个采样片段执行颜色填充或纹理填充的操作;

点符号样式:点符号样式是贴图样式,绘制比较简单,Mapnik提供了函数用来计算地图要素的中心点坐标,得到中心点坐标后结合贴图尺寸可以得出矩形四个顶点的坐标,将顶点坐标和纹理坐标发送到GPU上即可实现点样式的绘制;

线符号颜色填充样式:本模块支持任意宽度的线段和尖折角和平折角两种线段折角样式,其中线段颜色填充使用包含三个Shader的OpenGL流水线实现,这三个Shader分别是:

VertexShader:用来执行莫卡托投影变换和投影坐标到视图坐标的变换;

GeometryShader:用来根据相邻线段的顶点坐标计算构成线段主体和折角的各个顶点的坐标,并生成三角形面片,形成带有宽度和折角的线段;

FragmentShader:用来执行颜色填充;

在绘图过程中,实现线段颜色填充样式的主要难点在于折角坐标的计算,通常情况下折角坐标可以通过折角法向量在线段法向量上的逆投影得到,但是在折角过大(接近180度)或者线段过短时,容易出现非常大的计算误差,严重影响生成图片的质量,通过绘制模块的GeometryShader,可对这些特殊情况都做了分别处理,处理结果如附图图6所示;

线符号贴图样式:线符号贴图样式指沿着线段行进的方向进行重复贴图,其本质是带有纹理坐标的尖折角线段,因此顶点的生成算法与折角线段基本相同,只需要再根据线段长度计算各个折角顶点的纹理坐标,线段贴图的显示效果如附图图7所示;

面符号颜色填充样式:本模块的多边形颜色填充利用了OpenGL的NV_path_rendering扩展,能够在GPU上直接绘制复杂的凹多边形,避免了费时的分割操作,此外本模块在绘制多边形时专门使用一个ComputeShader进行莫卡托投影和视图变换,这能避免绘制线段时在VertexShader里进行莫卡托投影变换的做法在绘制多边形时无法使用的情况发生,面符号颜色填充效果图附图图8所示;

面符号纹理填充样式:本模块可以实现多边形纹理内纹理填充的效果,与颜色填充一样,使用NV_path_rendering实现,支持复杂的凹多边形,纹理填充中一个重要的步骤是计算纹理坐标,实现纹理的平铺效果,本模块中计算纹理坐标的方式如下:

第一步:从Mapnik调用绘制模块时提供的参数中获取由投影坐标到屏幕坐标的变换矩阵,这个变换的一般形式为x′=sx·x+bx,y′=sy·y+by;

第二步:获取每个像素点的屏幕坐标(x;y),减去(bx;by),得到该像素的纹理坐标,这是一个线性变换,可以使用NV_path_rendering的纹理坐标生成机制完成;

第三部:在FragmentShader内,使用纹理的长、宽对纹理坐标取模,以得到实际可用的坐标;

采用上述步骤计算得到的纹理坐标具有纹理坐标具有全局一致性、相邻瓦片间的纹理可以做到无缝拼接、纹理坐标和屏幕像素坐标的尺寸一致和不会造成图片拉伸的特点,多边形纹理填充的绘制效果如附图图9所示。

S8、测量:

水平距离:距离测量是地理信息系统中常用的分析功能,包括水平距离量算、地表距离量算两种;

距离测量:水平距离量算是计算地形表面上两点在水平面上的投影点之间的直线距离,计算公式为:

垂直距离:高度分析是地形分析的基本内容,包括任意高程量算和平均高程量算两种,任意高程量算的常规算法是距离加权法,首先需要判断一个高程点位于格网中的位置,即行列值,然后对距离进行加权计算求出该点的高程,计算公式为:

系统采用了双线性多项式内插的方法,使用最靠近的四个已知数据点确定出一个曲面函数,即双线性多项式,这样由这四个已知点构成的四边形在任意一点的内插高程值就能唯一且确定,这能避免距离加权法计无法满足高精度计算的情况发生;

空间距离:空间距离也成为地表距离,地表距离量算是计算地形表面上两点之间沿着地形表面的距离,它的计算方法为:先求出两点所在的DEM格网范围,在此范围内让两点连成的线段和DEM格网求交,把求交的点按离起始点的距离进行排序,然后计算各交点两两之间近似地表距离,其实质就是求空间点之间的空间直线距离,计算公式如下:

水平面积:面积测量是指计算地图上指定闭合区域的曲面面积,面积测量分为平面面积量算和地表面积量算,平面面积是指地形表面上若干点在水平面上的投影点所围成的区域的面积,计算公式如下:

空间面积:空间面积即为地表面积,其通用计算公式为:

物体ID定位:地址匹配引擎基于地名地址数据库建立,为空间地理平台及其他业务平台提供地理编码服务,实现空间定位和空间信息整合,用户通过地址匹配服务可以将各类包含地址或位置描述信息的数据转换为带有空间坐标位置的数据,在地图中进行定位显示,实现业务数据空间化,地址编码引擎提供标准的基于HTTP协议的REST服务接口,方便各应用系统通过API接口调用,地址编码引擎支持正向匹配、逆向匹配、精确匹配、容错匹配、批量匹配等。

S9、基于web三维可视化控件:

基于Web三维可视化控件目标是:在网页上提供交互操作的三维可视化环境,客户端采用了微软的Activex控件和SGI的OpenGL开发了三维可视化控件,该控件具有空间系统的所有功能;

三维可视化控件的关键技术是在ActiveX和OpenGL结合技术,ActiveX控件是较为流行的一种WebGIS实现方法,OpenGL是Web可视化中的底层技术,使用Activex和OpenGL结合实现面向Web的三维可视化开发有几个特点:

易于网上发布,用脚本语言Javascrip将控件嵌入网页中,当客户端没有注册安装该控件,便会从Web服务器上自动下载并安装注册,当控件版本更新后,通过判断版本号实现自动重新下载更新;

复用OpenGL大部分代码,能编写具有强大功能的可视化控件,同时提高了开发效率,缩短开发周期,使得二次开发更为方便灵活;

数据库连接,与数据库连接可快速调动资料,可提升开发速度。

总结:对采油厂规定范围内的单井、管道、场站、电力、通信等基础数据纳入空间数据库,并基于GIS和三维控件进行全局展示,包括空间数据信息库建设、空间数据处理入库、空间系统基础发布引擎、基于web三维可视化控件功能的实现,空间数据信息库中不仅应包含模型的几何信息,而且包含纹理、材质信息、细节层次(LOD)等特征,包括高程(DEM)数据、卫星影像数据、模型数据、矢量数据等,对提供的空间数据进行高程(DEM)数据、卫星影像数据、矢量数据、模型数据等快速、准确的入库,应基于自主可控三维可视化引擎,由卫星影像、DEM 构建三维可视化场景。

相关技术
  • 一种基于地理信息的虚拟空间系统
  • 一种基于地理信息空间系统的时空信息可视化方法
技术分类

06120113792501