APP下载

osgEarth在三维GIS开发中的研究与应用*

2017-05-13韩哲刘玉明管文艳王雷

现代防御技术 2017年2期
关键词:数字地球瓦片模型

韩哲,刘玉明,管文艳,王雷

(1. 经济领域系统仿真技术应用国家工程研究中心, 北京 100854; 2. 河北省地矿局第一地质大队, 河北 邯郸 056000)

osgEarth在三维GIS开发中的研究与应用*

韩哲1,刘玉明1,管文艳1,王雷2

(1. 经济领域系统仿真技术应用国家工程研究中心, 北京 100854; 2. 河北省地矿局第一地质大队, 河北 邯郸 056000)

针对通用三维GIS平台开发提供了一种基于开源跨平台三维GIS渲染引擎osgEarth的技术方案,并对其中大地形三维模型实时生成和加载、LOD分页数据等关键技术展开了研究。分析了osgEarth的特点和数据加载流程,结合实际项目应用介绍了平台方案的实现及效果,对于工程实践有一定的指导意义。

三维GIS;osgEarth;视景仿真;地形建模;动态四叉树;TMS

0 引言

三维GIS也称作数字地球[1],是指可以整合海量地理数据的、多分辨率的、基于真实地理坐标系的三维表示。三维GIS是布满整个三维空间的GIS,与传统的二维GIS明显不同,尤其体现在空间位置和拓扑关系的描述及空间分析的扩展上。近年来涌现了大量的数字地球软件及应用,比如Google公司的GoogleEarth,NASA的WorldWind,微软的VlrtualEarth等,国内的有北大/北航的ChinaStar,武汉大学的GeoGlobe,中科院遥感所的DEPSCAS等,它们功能强大,含有大量高精度全球卫星影像,且都可以基于网络使用。基于这些三维GIS平台在国防、防震减灾[2]、石油[3-4]、交通[5-6]、旅游[7]、教育、公共服务等众多行业已经开展了大量的应用研究。

上述的三维GIS软件将本地数据和模型加载到数字地球模型,支持一些简单的应用开发[8-9]。但这些开发工具普遍存在数据源单一、开发灵活性不足、价格昂贵、渲染效率低下等不足之处。

本文将选择一个新的开源数字地球软件:osgEarth,开展基于三维GIS的视景仿真平台研究,并以一个具体的三维数字水利仿真管理平台为例介绍相关系统功能及实现效果。

1 osgEarth及其特点

Open Scene Graph(简称OSG)是一个基于工业标准OpenGL跨平台的三维开源场景图形系统应用程序开发接口(API)[10-11]。作为一个高性能的图形开发引擎,它在3D程序开发中扮演着重要角色。OSG基于修改的LGPL协议免费发布,广泛应用于虚拟仿真、虚拟现实和工程可视化等领域。它以OpenGL[12]为底层平台,使用C++编写而成,可以运行于各种主流操作系统,其功能特性涵盖了大规模场景的分页支持,多线程、多显示的渲染,粒子系统与阴影,各种文件格式的支持,以及对Java,Perl,Python等语言的封装。

OSGEarth是一个基于C++和OSG开发的实时地形模型加载和渲染工具,采用实时的地形数据加载和渲染策略,具有良好的多源数据支持与数据管理功能,它可以直接从网络上的服务器端读取数据,并实时地进行处理和显示。OSGEarth在GDAL与OGC的基础上可以加载众多来源的数据,并且可以加载众多类型的三维模型数据,支持不同的数据格式,以插件的形式驱动。它支持WMS,WCS,TMS等多种地图数据服务器端,自己则作为一个不断获取和解析数据的客户端,它还可以和Googlemap,Yahoomap,ArcGISOnline等数字地球服务器建立连接并从中获取所需要的数据。

osgEarth采用基于XML语言的earth文件来标记地理空间数据。基于它进行数字地球相关的开发具有以下特点:

(1) 它可以以在线和离线2种方式读取和显示数据,并实时地生成地形模型。

(2) 它提供了一套完整的地理空间参考系统,包括地理坐标系统、投影转换等。还可以自定义坐标系统和投影方式。

(3) 整个earth文件可以作为一个节点加入OSG中,并提供了一些交互工具,如ObjectPlacer,EarthManipulator。从而在OSG中可以编程实现一定的交互功能,具有较大的灵活性。

(4) 可以Googlemap,Yahoomap,ArcGISOnline等数字地球服务器建立连接并从中获取所需要的数据,同时保存在本地缓存中,自动创建金字塔影像,并且以分层分块的方式显示数据,从而提高了场景渲染的效率。

(5) 可以访问WMS,WCS,TMS等多种地图数据服务器端,支持多种数据格式,包括:.shp矢量数据,.jpg,.tif图像数据等。

2 平台的设计与开发过程

2.1 总体架构

基于osgEarth的三维GIS平台是应用于地形地貌可视化展示与管理的三维视景仿真交互系统,是在VC+QT的环境中完成开发的,根据功能内容定义可分为数据资源层、平台层和应用层。平台基于VC开发环境利用osgEarth的完成三维场景组织,实现场景加载、信息查询、图层管理、基于地球的场景漫游、鹰眼地图、距离面积测量等相关功能,系统界面设计、数据库管理等功能模块利用QT开发。平台总体架构如图1所示。

2.2 三维建模方案

三维GIS平台致力于表现宏观的三维地理环境和微观的地物场景2个方面的内容。场景模型根据建模方法的不同可以分为作为背景的大规模地理地形模型和地物建筑等细节模型。

针对大规模地形地貌三维表现,利用osgEarth的瓦片地图服务(TMS)技术结合LOD控制进行分层实时加载,实现了TB级数据的快速、高效渲染。

地物细节模型建模过程中用到多层纹理、细节层次节点、实例化及外部引用等关键技术。为了方便快速读取和统一管理,最终的模型文件都采用OSG自定义的二进制存储格式:ive格式。ive支持全部的OSG节点结构信息读写,非常适合于迅速读取。经过验证,采用分层加载的ive文件可以在几秒钟之内加载通常需耗费几分钟甚至几十分钟时间显示的模型文件。

图1 三维GIS平台总体架构Fig.1 Mainframe of 3D GIS platform

系统建模方案如图2所示。

2.3 osgEarth的数据加载流程

osgEarth提供了方便的配置文件机制,用户可以使用osgEarth自己的earth文件,简单指定各种数据源,而不用关心数据如何渲染,便能在三维球上显示各种地形数据。osgEarth可以解析earth文件,利用用户提供的数据源,来构建三维球上的各种地形。

图3所示是加载数据的整体流程。

2.3.1 读取earth文件

osgEarth继承了OSG的插件机制,所以osgEarth提供了专门读取earth文件的osgdb_earth插件。通过查找并调用此插件,达到读取earth文件的目的。图4展示了查找读取earth插件的具体流程。

在osgdb_earth中,主要就是将earth文件中的内容转换成后面构造map需要的conf对象。图5展示了一个包含标签比较全面的earth文件,图6为转换后的conf结果结构图。

如图6所示,将earth文件中的标签转换成conf对象就是将标签语言的嵌套转换成父子关系,然后每个对象包含自己的属性值。

2.3.2 构建map

通过earth插件,将earth文件中的数据属性,渲染属性等构成conf对象。接下来,就是根据这些属性,来构造一个包含影像、高程、模型等的map。图7展示了osgEarth构造map流程。

由图7可知,此时构造的map,并没有实际的读取数据,仅仅是将从earth文件中获取的conf对象属性进行分类,构造了一个逻辑map,主要指定了map包含什么图层,每个图层的名字、数据源和所需driver插件。

图2 系统建模方案Fig.2 3D modeling scheme of system

图3 osgEarth数据加载整体流程Fig.3 Overall flow chart of data load

3 关键技术

3.1 海量三维地形实时生成与加载

osgEarth中将二维地图应用发布常用到的瓦片地图服务(TMS)技术用到三维GIS平台应用的开发中,将地形原始数据(卫片和DEM数据)按照TMS标准进行瓦片化处理,然后再输入到三维渲染引擎中,结合LOD进行分层实时加载和渲染[13]。这样既保证了海量地形数据的快速生成与渲染又可以将三维地形模型与其他需要结合地形信息绘制的特征数据进行很好的匹配,达到了快速、高效的目的。

图4 查找读取earth插件的具体流程Fig.4 Specific flow chart of finding and reading earth plug-ins

图5 普通earth文件内部代码Fig.5 Codes of typical earth file

图6 earth文件转换后的conf对象结构图Fig.6 Object structure graph of converted earth file

图7 通过属性构造map对象Fig.7 Construct map object by property

如图8所示,osgEarth利用在二维GIS发布应用经常用到的瓦片地图服务技术,将原始的卫片纹理和DEM高程数据分别进行瓦片化处理,然后再将源数据导入场景中结合LOD节点控制进行分层实时渲染绘制。这种方案中地形数模型和其他矢量特征节点都是在场景管理过程中实时生成的,可以很方便的利用渲染引擎控制相互之间的投影关系和渲染顺序等属性,也可以高效的调整地形模型本身的显示层次、拉伸系数、位置偏移等特征。同时,由于提前进行了瓦片化处理,将耗费资源的原始数据分层处理与三维渲染分开进行,系统在运行过程中可以根据场景相机的位置和距离等信息进行分层渲染绘制,只处理可见范围内的地形模型生成,大大降低了原始地理数据的增大对场景绘制的影响,提升了大场景三维GIS系统的运行效率。

图8 利用TMS实现地形场景高效实时加载过程示意图Fig.8 Schematic diagram of terrain scene high-speed real-time loading process through TMS

3.1.1 海量地形数据组织方式

osgEarth采用动态四叉树LOD方式进行地形数据的组织,地形数据被实时地划分为不同LOD层次瓦片序列,基于视点进行动态、分页的调度和渲染。整个地形场景是一棵瓦片化的四叉树(如图9所示),四叉树低层次(低精度)的影像是从高层次(高精度)的影像上实时重采样获取的,这种四叉树的组织方式,理论上可以支持无限的数据量负载。

图9 osgEarth中三维地形场景组织形式Fig.9 Organization structure of 3D terrain scene in osgEarth

瓦片数据处理即将原始数据按照分辨率不同分解成粗细不同的若干层次,从而实现分层实时加载,处理过程满足TMS标准[14-15]。

(1) 坐标系:WGS84

(2) 投影系统:标准经纬度(geographic longitude/latitude)

(3) 图片大小:256×256

(4) png[无损、透明]

在瓦片化处理过程中需要注意一下几点:

(1) 可以通过指令控制原始数据瓦片化处理的输出范围(经纬度);

(2) 根据原始数据的面积和分辨率大小选择合适的输出层数,这一点有时候需要测试几次才能获得;

(3) 处理工具(例如osgEarth)根据瓦片的属性建立特定的目录层次结构,擅自手动更改瓦片文件的目录和文件名可能导致加载路径错误。

3.1.2 场景加载控制过程

将生成的瓦片数据集通过一个xml的配置文件指定相应参数,包括文件根目录名,位置范围,起点坐标,文件类型,瓦片长宽,投影和坐标系信息,渲染层次顺序,每个像素的单元数等。

图10 TMS瓦片数据集典型xml配置文件格式Fig.10 Typical xml config. file format of TMS tile data set

根据此配置文件制定的参数信息,利用卫片纹理和高程数据的瓦片数据,三维渲染引擎可以在场景管理过程中实现地形场景的分层渲染和绘制。其中,已知经纬度λφ(单位:°),求瓦片编号x,y的公式如下:

z代表瓦片层级,跟场景距视点距离有关,可以通过LOD节点控制。

3.2 LOD与数据分页、动态调度

LOD(level of detail)是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在OSG的场景结点组织结构中,专门提供了场景结点osg::LOD来表达不同的细节层次模型。其中,osg::LOD结点作为父结点,每个子结点作为一个细节层次,设置不同的视域,在不同的视域下显示相应的子结点。

在城市三维场景中可以采用数据分页的方式进行动态调度。这里“分页”的意思是随着视口范围的变化,场景只加载和渲染当前视口范围内数据,并将离开视口范围内的数据清除出内存(可以设定不同的数据卸载策略),不再渲染。保证内存中只有有限的数据量,场景的每一帧也只有有限的数据被送到图形渲染管道,从而提高渲染性能。OSG源代码中提供PagedLOD来进行模型的动态调度。在不同的视域下,PagedLOD动态读取不同细节层次的结点模型,实现了分页LOD显示。OSG内部采用osgDB::DatabasePager类来管理场景结点的动态调度,场景循环每一帧的时候,会将一段时间内不在当前视图范围内的场景子树卸载掉,并加载新进入到当前视图范围的新场景子树。OSG采用了多线程的方式来完成上述工作。

4 系统的实现及效果

本平台方案在山西大水网背景板平台系统中得到了成功的应用,利用QT+OSG实现了全山西省三维地形数据的高效实时加载和生成绘制,并且和同时生成的矢量特征无缝结合,实现了场景加载、信息查询、鹰眼地图、图层管理、距离面积测量等三维GIS常用功能。三维场景和系统运行的具体数据如下:

场景范围:( 109° 29′ 59.50″ E,41° 00′ 00.49″N)—(115° 30′ 00.26″ E, 33° 59′ 59.60″ N)

卫片分辨率:2.5 m

高程数据DEM:1∶10 000

矢量特征数量:超过3万个

加载时间:小于1 min

帧速率:不低于25帧/s

显示效果如图11所示。

图11 基于osgEarth的三维GIS平台系统效果图Fig.11 3D GIS platform system effect graph based on osgEarth

5 结束语

osgEarth是一款功能强大的三维GIS开源工具,采用瓦片数据服务技术结合LOD可以实现海量地形地貌模型的高效组织和渲染,实现图层管理、基于地心坐标系的三维漫游、三维测量等常用三维GIS功能,可用于水利、交通、化工、军事等领域包含真实地形背景的三维仿真系统开发,具有高效、快速、稳定、廉价等优点。

[1] 承继成,郭华东,薛勇.数字地球导论[M].北京:科学出版社,2007. CHENG Ji-cheng, GUO Hua-dong, XUE Yong. Guid Introduction of Digital Earth [M].Beijing: Sciencepress,2007.

[2] 银正彤,郑文锋,杨朝晖,等.GoogleEarth在防震减灾决策中的应用[J].地震研究,2009,1(1):100-103. YIN Zheng-tong, ZHENG Wen-feng, YANG Zhao-hui, et al. Application of GoogleEarth in Earthquake Proof and Disaster Reducing[J].Earthquake Research,2009,1(1):100-103.

[3] 刘瑞,苗放,叶成名.基于数字地球平台的油气工程技术应用[J].成都理工大学学报,2009, 4(2):118-121. LIU Rui, MIAO Fang, YE Cheng-ming. Application of Oil and Gas Engineering Technology Based on Digital Earth Platform[J].Journal of Chengdu University of Technology,2009, 4(2):118-121.

[4] 陈满,张一博.基于虚拟现实技术的数字化工厂能源管理[J].科技创业月刊,2015,28(18),47-49. CHEN Man, ZHANG Yi-bo. Design and Implementation of Digital Factory Energy Management Based on Virtual Reality Technology[J]. Pioneering With Science & Technology Monthly, 2015,28(18),47-49.

[5] 万青霖,王志超,段碧清,等.三维数字化技术的应用设计研究[J].电子设计工程,2015,23(4),71-74,77. WAN Qing-lin,WANG Zhi-chao,DUAN Bi-qing, et al. Research of the Application of 3D Digitization Technology[J]. Electronic Design Engineering, 2015,23(4):71-74,77.

[6] 朱颖,蒲浩,刘江涛,等.基于数字地球的铁路三维空间选线技术[J].铁道工程学报,2009,7(7):33-37. ZHU Ying, PU Hao, LIU Jiang-tao,et al. Technology of Railway 3D Space Line Selection Based on Digital Earth[J].Journal of Railway Engineering,2009,7(7):33-37.

[7] 王秋玲,苗放,叶成名.基于数字地球平台的数字旅游应用研究[J].资源与产业,2008,6(3):107-111. WANG Qiu-ling, MIAO Fang,YE Cheng-ming. Application Research of Digital Tourism Based on Digital Earth Platform[J].Resources and Industry,2008,6(3):107-111.

[8] 刘玉明,杨方廷,纪良雄,等.山西省万家寨引黄工程三维视景仿真系统实现[J].系统仿真学报,2009,21(6):1591-1595. LIU Yu-ming, YANG Fang-ting, JI Liang-xiong, et al. Realization of 3D Scene Simulation System of Shanxi Wanjiazhai Yellow River Water Diversion Project[J]. Journal of System Simulation,2009,21(6):1591-1595.

[9] 侯欢欢.基于ArcGIS的电子沙盘生成方法研究 [D].太原:太原理工大学,2010. HOU Huan-huan. Research on Generation Method of Electronic Sand Table Based on ArcGIS[D]. Taiyuan:Taiyuan University of technology,2010.

[10] 王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实现[M].北京:清华大学出版社,2009. WANG Rui, QIAN Xue-lei. Design and Realization of OpenSceneGraph 3D Rendering Engine[M].Beijing:Tsinghua University Press,2009.

[11] WANG Rui,QIAN Xue-lei. OpenSceneGraph 3 Cookbook[EB/OL].UK:Packt Publishing Ltd,2012.

[12] Dave Shreiner,Mason Woo,Jackie Neideret,et al. OpenGL Programming Guide[M]. 6th ed. US:Sun Microsystem Press,2008.

[13] 黄波.大地形3D电子沙盘系统的设计与实现[D].成都:电子科技大学,2009. HUANG Bo.The Design and Implementation of Large Terrain 3D Electronic Sand Table System[D].Chengdu:University of Electronic Science and Technology, 2009.

[14] 杨进,李程,费立凡.基于CTS的大地形仿真应用研究[J].测绘科学,2008,33(1):185-187. YANG Jin, LI Cheng, FEI Li-fan. The Application Research of Large Terrain Simulation Based on CTS[J]. Science of Surveying and Maping,2008,33(1):185-187.

[15] 邓野,方卫宁,田生彩.视景仿真系统中三维地形的实时生成方法[J].北京交通大学学报,2007,31(4):124-127. DENG Ye, FANG Wei-ning, TIAN Sheng-cai.The Real Time Modeling Method of 3D Terrain in Scene Simulation System[J]. Journal of Beijing Jiaotong University,2007,31(4):124-127.

Research and Application of osgEarth in the Field of 3D-GIS Development

HAN Zhe1, LIU Yu-ming1, GUAN Wen-yan1, WANG Lei2

(1. National Engineering Research Center of System Simulation Technical Application in Economy, Beijing 100854, China; 2.First Geological Brigade of Hebei Bureau of Geology and Mineral Resources,Hebei Handan 056000,China)

A technical method for developing 3D-GIS platform based on osgEarth which is an open-source cross platform 3D rendering engine is proposed in this paper. The key technology of real time generation and loading for massive terrain as well as LOD paging system is researched. The feature and data loading process of osgEarth are analyzed. The realization and effect of platform development method through real project are introduced,,which is helpful for 3D-GIS system development and implementation.

3dimensional-geographic information system(3D-GIS); open scene graph earth(osgEarth); scene simulation; terrain modeling; dynamic quadtree; tiles map service(TMS)

2016-07-30;

2016-12-12 基金项目:有 作者简介:韩哲(1985-),男,河北馆陶人。工程师,硕士,主要从事虚拟现实技术研究和视景仿真系统开发工作。

10.3969/j.issn.1009-086x.2017.02.003

TP391.9

A

1009-086X(2017)-02-0014-08

通信地址:100854 北京市142信箱30分箱 E-mail:13301359575@126.com

猜你喜欢

数字地球瓦片模型
适用于BDS-3 PPP的随机模型
一种基于数字地球的日标保障框架体系
打水漂
重要模型『一线三等角』
乡村瓦语
惯性
美国数字地球公司最新遥感卫星投入商业运行
模型小览(二)
离散型随机变量分布列的两法则和三模型
第六届国际数字地球会议专家谈