吴晓雪任鸿翔张显库谷 军何 南
(1.大连海洋大学,辽宁 大连 116026;2.大连海事大学,辽宁 大连 116026)
基于osgEarth三维数字地球建设的研究
吴晓雪1任鸿翔2张显库2谷 军1何 南1
(1.大连海洋大学,辽宁 大连 116026;2.大连海事大学,辽宁 大连 116026)
基于osgEarth开源工程是将地理信息系统和虚拟现实技术结合起来的一个重要应用。以基于osgEarth三维数字地球建设的研究为例,采用 LOD 与分页、动态调度等技术。研究了三维地形、影像、地物组织、调度及融合方式;设计了地球影像数据获取、坐标纹理校正、earth文件编写、矢量数据栅格化显示;分析了 osgEarth 中绘制线状矢量数据的模板体技术和该技术所隐藏的场景层次结构。在Visual Studio 2010平台下,使用OpenSceneGraph语言进行编程,证明了该技术的可行性,实现了三维数字地球的建设。
数字地球;地理信息系统;虚拟现实;osgEarth;OpenSceneGraph
随着计算机和网络的发展,人们所面临的不再是信息资源的匮乏,而是如何更加有效的利用信息、挖掘信息。信息从利用率的角度可分为两类,一类是流动性很强的现势信息;另一类则是“压箱底”的历史信息。但这种划分也并非绝对,不同信息对于不同部门有着不同的意义。只有通过一种平台,流通起来实现的共享,信息的价值才不会打折扣。“数字地球”正是在这种背景下提出的[1]。
“数字地球”(Digital Earth)最先由前美国副总统戈尔提出[2],是指以地球坐标(经纬网)为依据,具有多分辨率,由海量数据组成的,能立体表达和显示的虚拟地球。数字地球基础设施主要是研究和解决分布式数据库的远程数据互操作、数据融合与动态立体显示、数据和知识挖掘及仿真与虚拟实践间题,为地球信息科学创造实验条件和试验基地[3]。
运用数字化的手段来处理整个地球的自然和社会活动等方面的问题,最大限度地利用资源,并使普通百姓能够通过一定方式方便地获得他们所想了解的有关地球的信息[4]。
近年来涌现了大量的数字地球软件及应用,比如Google公司的Google Earth,NASA的World Wind[5],微软的Virtual Earth等,国内的有北大/北航的ChinaStar,武汉大学的GeoGlobe,中科院遥感所的DEPS CAS等[6],但上述的数字地球软件虽然提供了简单的二次接口或部分开源代码,能够支持用户通过与软件的数据互换,支持一些简单的应用开发,但有以下不足:
(1)只能使用单一的软件自带的数字地球数据,无法集成不同的数字地球数据[5];
(2)简单开发模式显示了软件功能的灵活性,无法满足用户多方面需求;
(3)有些数字地球软件的渲染传输效率低下。
针对以上问题,本文将选择一个新的开源数字地球软件—osgEarth来实现数字地球的研究。
osgEarth是OSG专门针对GIS开发而设计的,具有交互灵活等特点,它可以直接从网络上的服务器端读取数据,实时地对地形模型进行加载和处理。
osgEarth采用基于XML语言的earth文件来标记地理空间数据。基于它进行相关的开发有以下特点[5]:
(1)提供了一套完整的地理空间参考系统,包括地理坐标系统、投影转换等。
(2)整个earth文件可以作为一个节点加入到OSG中,并提供一些交互工具,如Object Placer,Earth Manipulator,从而实现了一定的交互能力,具有较大的灵活性。
(3)可以和Google Map,Yahoo Map,ArcGIS Online等数字地球服务器建立连接并从中获取所需的数据,同时保存到本地缓存中,并以分层分块的方式显示数据,从而提高场景渲染的效率。
(4)可以访问WMS,WCS,TMS等多种地图数据服务器端,支持多种数据格式,包括:.shp 矢量数据、.jpg、.tif图像数据等。
当读者打开谷歌地球(Google Earth)时可以看见一个大地球缓缓走来, Google Earth是一款Google公司开发的虚拟地球仪软件,它把卫星照片、航空照相和GIS布置在一个地球的三维模型上。谷歌地球可让读者前往世界上任何地方,以查看卫星图像,地图,地形,3D建筑物,来自外层空间的星系的峡谷海洋[7]。
借鉴Google Earth软件的思路,建立一个数字地球,并使其具备真实的空间位置信息。
3.1 数字地球的生成
构建数字地球需要将地表的高度信息和影像信息集成在地球这一椭球面上,对于高度信息可以利用相关网站上提供的30m和90m精度的地球高层数据,对于影像信息可以利用相关网站上提供的地球卫星影像数据。利用高层数据,基于osgEarth编写earth文件,生成带有高度信息的地球椭圆体,如图1所示,然后在这个椭球体表面上映射卫星影像,从而将高层数据和卫星影像等基础地理信息数据集成到地球椭球面上,实现三维数字地球。其中搭建数字地球关键的技术是卫星影像数据的获取与组织、影像数据与高层数据的叠加显示。
图1 由高层数据生成的地球表面
3.2 影像数据的获取与组织
上节笔者得到了由高层数据生成的地球白膜表面,需要在地球表面添加纹理图像。这里笔者选用Google截图器获取高清卫星影像。截图器是Google公司的电子地图服务软件,可以提供含有政区和交通以及商业信息的矢量地图、不同分辨率的卫星照片和可以用来显示地形和等高线的地形视图[8]。本文在软件中设置影像的经纬度坐标范围,即可截取卫星影像数据。笔者注意到当视点离地面较远时,观察到的地球的景物较为模糊,离地面较近时,观察到的景物较为清晰。为了实现清晰效果,地球表面需要映射的影像数据量往往高达几百TB甚至更多,而计算机当前的内存数量和处理器速度无法将其全部实时渲染,因此需要找到一种合理的影像数据调度方法。
基于人眼的视距与可观察的物体总是有限的这一常识,将近处的场景进行精细渲染而将远处的场景进行粗略渲染,即在针对影像数据处理上,将数据分成各种不同的清晰度,距离较远加载清晰度较小的图片,距离较近加载清晰度较大的图片。基于这种策略,将卫星影像进行采样并按其分辨率分别进行存放,可形象地称之为金字塔技术。
图2 金字塔图片0级与1级存储展示
卫星影像图片精度的最顶层0级数据为全球,只有一张卫星图片,大小为256像素*256像素,而1级的数据是将0级的数据图片细分为四份,每一份均为256像素*256像素,这样逐级下分可以完成整个地球卫星影像数据的分级。图2展示了0级数据与1级数据之间的差别。0级数据是分辨率为256*256的一张数据,而1级数据是四张256*256的图片数据,它们之间是2的指数关系。由于地球的半径是已知的,而某一级图片的分辩率也是已知的,因此可以通过某一级的分辨率和地球在赤道的周长得出其某一级的精度。当级别达到15级左右时,地表的分辨率便可达到10米左右。
3.3 earth文件的编写
在把生成的地球白膜和获取的地球纹理图像叠加之后,还需要计算机编程来实现数字地球的搭建。实现的思路有earth文件本身提供一些如Object Placer,Earth Manipulator等交互工具,并且earth文件可作为一个节点加入到OSG中,从而实现一定的交互能力,程序简单方便,灵活性高。那么本节将对earth文件的一些特点以及如何编写earth文件进行介绍。
在osgEarth中可采用XML语言编写earth文件来标记地理空间数据。该文件标记地理空间数据具体如下特点:
(1)可以离线的方式读取和显示地理空间数据,实时生成地形数据。
(2)可以添加国界线、省界线以及其他属性信息。
(3)可以生成缓存数据,减少系统首次运行的等待时间。
完整的earth文件的编写包括
①定义高层
name:高层名称;
driver:驱动;
gdal:使用gdal来读取高层数据;
Composite:使用多纹理或多高层相互叠加;
OSG:使用osg的reader/writers来读取文件;
url:定义数据来源;
②纹理
name:纹理名称;
driver:驱动;
Composite:使用多个纹理或多个高层相互叠加;
OSG:使用osg的reader/writers来读取文件;
url:定义数据来源;
③使用缓存
Type:指定缓存类型;
path:指定路径;
④预生成缓存
使用osgEarth cache预生成缓存。
最后实现的数字地球在不同视点的效果如图3所示,当视点大于5000m时可以观测整个地球外部轮廓;当视点小于5000米时对近处场景进行渲染,实时地加载相应的省界线、国界线等细节。
图3 数字地球在不同视点距离的效果图
本文通过对数字地球及其应用、地球表面高层数据的生成、影像数据的获取与组织、osgEarth功能及特点、earth文件的编写进行了研究,借鉴Google Earth软件的思路,搭建了三维数字地球。整个场景具有以下几个关键技术:
(1)影像数据的获取与组织
采用金字塔技术将卫星影像进行采样并按其分辨率分别进行存放,将数据分成各种不同的清晰度,距离较远加载清晰度较小的图片,距离较近加载清晰度较大的图片,弥补了计算机当前的内存数量和处理器速度无法将其全部实时渲染的缺陷,提高了渲染的速率和真实性。
(2)通过osgEarth和OSG,易于用户进行交互渲染功能的开发。
当然这只是三维数字地球建设的第一步,还有许多需要完善的地方,比如添加矢量数据到场景中、场景的渲染、用户交互等。接下去笔者将借助OSG其强大的场景管理和渲染能力进行进一步的完善。
[1] 杨玉永.“数字地球”在交通工程中的应用[D].山东:山东师范大学,2010.
[2] 李力.数字地球及其应用前景分析[J].测绘与空间地理信息,2010,(34):111-112.
[3] 旭光.基于数字地球平台的地理信息服务服务架构研究[J].中国矿业,2010,(19):192-201.
[4] 杨秋霞.数字地球关键技术综述[J].黑龙江科技信息, 2013,(8):97.
[5] 金宏,朱军,卢秋阳,等.基于osgEarth的虚拟校园场景建模研究[J].地理信息世界,2011,(1):65-71.
[6] 程勉志.地理空间信息在数字水利建设中的应用[J].河南水利与南水北调,2013, (16):59-60.
[7] 赵崇博,李思昆,李军.一种基于数字地球的运动模型与地形匹配方法[J].仿真系统学报,2012,(9):1920-1924.
[8] 云轶如,高永兵.基于GOOGLE地图的客户响应综合管理平台的研究和实现[J].科技资讯,2013,(8):32.
Research based on the construction of 3D osgEarth digital earth
The eMule-project based on osgEarth is an important application which combined the geographic information system and virtual reality technology. Taking the three-dimensional earth based on osgEarth for example, this paper used lod, paging, dynamic scheduling and other technologies, researched 3d terrain, image, object organization, scheduling and integrated approach, and also analysed template body technology in drawing linear vector data and scene hierarchy hidden in the technology. In Visual Studio 2010 platform, the OpenSceneGraph was used to program language. The experimental results proved the feasibility of the technology, and realized the construction of three-dimensional digital earth.
Digital globe; geographic information systems ;virtual reality ;osgEarth ;OpenSceneGraph
TP391.9
A
1008-1151(2015)01-0001-03
2014-12-13
吴晓雪(1989-),女,辽宁辽阳人,大连海洋大学实验师,研究方向为计算机仿真;任鸿翔(1974-),男,黑龙江肇东人,大连海事大学教授,研究方向为计算机仿真;张显库(1968-),男,辽宁辽阳人,大连海事大学教授,研究方向为鲁棒控制;谷军(1964-),女,辽宁北镇人,大连海洋大学实验师,研究方向为电工电子技术;何南(1977-),女,辽宁锦州人,大连海洋大学实验师,研究方向为计算机基础。