Skyline论文(精选8篇)
Skyline论文 篇1
0引言
当前人们越来越重视三维信息的表达与处理。比如,城市规划部门建立城市三维景观模型,水电站以及其他企业建立三维信息系统。因此构建三维模型在现实生活中具有很重要的意义。目前关于三维建模技术有了很多研究,大致可以分为以下三种:一是利用常见的三维建模软件直接进行模型的建立,如:3DMAX、BIM等软件,该方法主要用于相对简单的建筑建模;二是利用GIS的线划数据和高程进行三维模型的建立,该方法只适用于比较规则的物体,因此,此方法很少用;三是利用倾斜摄影测量技术进行三维模型的建立。通过对获得的倾斜影像、街景数据、拍摄照片等不同数据源数据进行同名点选取、多视匹配、三角网(TIN)构建、自动赋予纹理等步骤,该方法成本比较高。
文章选取某水电站为实验片区,主要介绍以Skyline作为开发平台,并用3DMAX和Auto CAD等三维建模软件进行模型的建立。即通过3DMAX软件构建房屋及其他建筑物的三维模型,外业采集的房屋及其他建筑物照片纹理。二是通过正射影像和修正后的DEM在基于Sky Line系列下构建三维地形。
1数据准备及技术路线
1.1实验概况
梨园水电站位于云南省迪庆州香格里拉县(左岸)与丽江地区玉龙县(右岸)交界河段,上游与两家人水电站相衔接,下游为阿海水电站。电站坝址距丽江市公路里程距离为204km,经文化至丽江公路里程174km(经玉龙雪山景区至丽江166km),距大理市公路里程354km,距昆明公路里程680km,距攀枝花市公路里程约455km(经宁蒗)。
1.2实验数据
1.2.1地形图数据
此次采用的地图数据是梨园水电站内部的线划地形图,地形图数据需要经过处理后转换为Terra Explorer Pro批量建模的shp文件。
1.2.2正摄影像数据
根据三维重建的精度要求选择影像数据,一般采用航空影像或者高分辨率卫星遥感影像,本文的影像数据是通过无人机获取的。获取的影像数据通过专门的遥感处理软件进行纠正后使用。
1.2.3高程数据(DEM)
得到的DEM数据不精确,可根据原始数据重新进行处理,人为纠正调整得到精度较高DEM数据。通过纠正后的正摄影像数据和DEM一起在基于Skyline系列下的Terra Builder中直接调用,用于构建三维地形模型。
1.2.4纹理数据
纹理数据主要有道路、建筑物、大坝、发电厂以及其他景观的纹理。其中道路的纹理数据不需要拍摄获取,可直接从Terra Explorer中自带的材质库获得。而其他的纹理数据则需要通过拍摄获取。文章采用Photo Shop软件对采集到的纹理数据进行处理,为保证纹理的真实性和色调的均匀,纹理像素尺寸采用2的n次冥。
1.3技术路线
从构建梨园水电站三维地理信息系统的角度出发,利用C#.net编程语言,采用Sky Line软件提供额外Terra Developer组件作为开发平台建立梨园水电站三维地理信息系统,主要实现三维基本操作、信息查询、空间分析等功能。
文章用到的三维地形模型建立关键技术主要有三种:一是运用传统的三维建模方法构建地物的三维模型。即通过3DMAX软件构建房屋及其他建筑物的三维模型。二是通过正射影像和修正后的DEM在基于Sky Line系列下构建三维地形。Sky Line可以把正射影像、高程和矢量数据融合成一个高精度带有地理坐标信息的地形数据文件。三是基于Sky Line组件和Visual Studio平台下设计和二次开发出梨园水电站三维地理信息系统的界面、功能及需求。
1.4实验设备
实验用到的核心软件主要是Skyline和3DMAX,开发环境为Visual Studio2010。辅助软件为Photo Shop、Arc GIS10.1、Auto CAD2008。其中Photo Shop用于纹理处理与加工,Arc GIS用于处理矢量数据,Auto CAD用于地图数据源处理。
2三维模型的建立方法
2.1地形模型建立方法
地形模型的建立方法主要是通过将遥感影像数据和DEM数据在Skyline系列中进行叠加来完成地形模型的显示。Sky Line可以把正射影像、高程和矢量数据融合成一个高精度带有地理坐标信息的地形数据文件。具体过程如下:将DWG地形图导入Auto CAD中,然后对地形图数据进行处理,删除一些无关紧要的图层,保留主要的地物图层。将保留下来的图层导入Arcgis中,将其中的等高线提取出来作内插处理,然后生成DEM。对无人机影像进行纠正和投影变换,并使用Photo Shop进行美化处理,使其真实自然,把这些处理过的影像作为地形模型的纹理。Sky Line可以把正射影像、高程和矢量数据融合成一个高精度带有地理坐标信息的地形数据文件。此文件能真实的反应起伏和表达地形纹理的地形数据集,如图1所示。
2.2建筑物模型建立
2.2.1普通建筑物建模
将地形图导入Auto CAD中,将不需要的线进行删减,将主要的清晰的建筑物轮廓线留下,然后再将处理过的地形图数据导入Arcgis中进行拓扑检查,检查建筑物的轮廓线是否闭合,只有闭合的建筑物轮廓线才能进行后面的建模。将处理过的地形图数据导入3DMAX软件中进行建模,具体建模过程如下:首先打开捕捉,点击线工具,沿着CAD底图画出建筑物的轮廓,创建出一个二维物体,选中创建好的二维物体,选择修改器中的挤出,输入建筑物的高度,即可创建一个简单规则的建筑物。最后在把用Photo Shop处理好的纹理贴到建筑物中即可,纹理贴图方法如下:在3DMAX中选中待贴建筑物的面,然后点击材质选中相应的贴图纹理,在修改器中点击位图,将材质转到父对象,然后选择UVW贴图即可,如图2所示。
2.2.2特殊物体建模
采用自动拉伸的方法建模会使一些标志性建筑和结构复杂的建筑物严重失真,如大坝、桥梁等,对于这些不规则的物体以及标志性建筑需要进行单独建模。采用上述方法在3DMAX中对这些建筑进行单独建模,并对其结构和材质进行精细化。然后将建好的模型在3DMAX中转为Skyline支持的两种有利于加载和显示的格式:*.x和*flt格式。通过转换之后的模型文件可直接加载到Terra Explorer Pro中,导入以后调整好位置和属性,从而完成特殊建筑的建模,文章以实验区桥梁为例,如图3所示。
3结语
文章介绍了基于Skyline的三维地形模型建立方法。首先对三维模型研究现状进行了简述,然后介绍了以Skyline软件为平台,用某水电站CAD地图数据、无人机数据以及DEM数据为实例数据,并进行三维模型的建立,最后在Skyline平台上实现了水电站三维信息系统。结果表明本文的建模方法是可行、有效的,能很好、快速的建立大型三维地形模型。
摘要:近几年,随着信息技术的不断发展,二维GIS已不能满足人们的需求,人们对三维信息表达与显示的需求不断增强。因此,近年来,各种三维建模软件及方法得到快速发展。文章以某水电站为实验区,介绍以Skyline作为开发平台,利用3DMAX以及Auto CAD等建模软件进行模型的一种三维地形模型建立方法。具有速度快、精度高等优点。
关键词:Skyline平台,三维地形模型,3DMAX建模
参考文献
[1]徐丹,高晓蓉.基于Skyline的三维地形模型实现-以甘肃省政务地理信息平台为例[J].遥感技术与应用,2011,26(06):875-878.
[2]高晋宁.基于Skyline的城市三维景观模型构建研究[D].昆明:昆明理工大学,2012.
[3]黄梦龙.基于Skyline的三维城市模型数据库管理系统设计与实现[J].测绘与空间地理信息,2014,37(08):133-135.
Skyline论文 篇2
关键词:Skyline平台 数字城市 多维展示与决策 三维GIS
1 概述
伴随着城市信息化建设的快速发展,数字城市的构建已愈来愈成为关注的热点。数字城市是数字地球战略构想的重要组成部分,是将现实中的城市以空间位置及其相关联信息为基础形成多维的、数字化的信息系统,它充分利用现代信息技术和网络技术,将城市的各种信息资源加以整合并利用。在初始阶段,构建数字城市主要依靠二维GIS,当前,三维GIS技术已日趋成熟,推广使用后,数字城市的应用研究必将有突飞猛进的发展。三维GIS与二维GIS相比,它可以多维呈现城市各种元素,它以立体造型技术来展现地理空间现象,能给人以更真实的感觉。不仅能够对空间对象进行其特有的多维空间分析和操作功能,还能描述和表达它们之间的垂直关系和平面关系。数字城市的构建完成,可以在城市可持续发展等方面发挥重要作用,同时还能在城市的规划、建设和管理、打击犯罪、防灾减灾、电子商务方面发挥自己应有的功效。以三维GIS技术为基础的数字城市,可以提供全新的城市规划、建设、管理与服务的决策辅助信息,还可以为市民提供享受数字化生存的环境。
2 基于多维信息的数字城市模型
建立以城市地理坐标为基准的完整数字化模型,收集、整理、归纳现实城市中的多维信息,用户可以快速、完整、形象地了解全市宏观和微观的各種情况,通过互联网联结起来。用户登录系统后,根据地理学原理,空间对象依层次分为9块:现实世界、概念世界、地理空间世界、尺度世界、项目世界、点世界、集合世界、地理要素世界。根据地理信息的特点:区域分布性、数据量大、信息载体的多样性以及三维GIS的特点,在此基础上再结合面向对象方法,就能建立一个比较完备的空间信息模型。如下三层概念模型可搭建出来,如图1-1所示。
3 多维展示与决策系统设计
通过建立综合的多媒体数据库,构建具备能够将原有城市信息资料文档、二维矢量数据和三维场景相结合的多维展示与决策系统。该系统是一个集二维三维于一体的GIS平台,可以通过该多维平台查询调用大量的资源信息,同时可以直观查看监控的多维信息数据(如交通信息等),并整合多维信息进行分析,服务于城建规划、应急救援决策的制定等。
3.1 系统的功能设计 系统分为三个功能模块,由下向上依次为:底层数据管理、维护、服务层,包括:数据服务子系统、用户管理子系统、多维信息发布与远程协同子系统。基础功能平台层,包括:通信子系统、信息展示与查询系统等。应用功能层(业务子系统),包括:电子政务子系统、电子商务子系统、智能交通子系统、统计、分析、调度决策子系统、电子医院子系统、故障定位子系统和网上社区子系统等。
3.2 详细设计 基于数字高程模型(DEM)的三维GIS有助于用户对空间数据相互关系的直观理解,但仅把多维可视化模型作为信息表示的一种输出媒体是远远不够的。对于各种各样的GIS用户来说,往往需要直接将其作为可交互查询的媒体。在此分析基础上,采用以下方法对应用系统进行详细设计:①以关系型数据库作为数据管理的中心。由于多维数字城市展示系统会涉及到各种类型的数据,因此,为实现系统数据集成存储、网络共享、分布式处理,系统采用关系型数据库来管理结构化数据与非结构化数据。数据库管理系统选用大型数据库Oracle平台,实现对数据的统一管理,从而使城市空间数据与非空间数据的管理问题得以解决。②多维影像合成采用Skyline平台的TerraBuilder模块实现。系统中,完成数字DOM图像与数字DEM模型进行多维融合,生成系统skyline独有的多维地形文件,采用TerraBuilder合成技术,它支持包括遥感影像、高程数据、特殊景观纹理和基础二维GIS数据等多种数据的合成。③系统开发应用TerraExplorer Pro模块进行。我们可以与现存的二维系统实现联动,因为TerraExplorer Pro支持WFS/WMS和ArcSDE,同时,利用skyline的Developer提供的COM接口,可以实现用户自定义开发,各种外部资源可以得到充分利用,完美做到与Oracle平台的结合。④系统的数据发布管理。海量的地理信息数据,是制约多维GIS发展的一大难题,而本系统采用Skyline平台的TerraGate很好的解决了这一问题,用户浏览海量数据可以没有限制、没有阻碍。
3.3 系统的逻辑结构 根据上述的系统设计方案,系统的逻辑结构进行如下设计:系统采用三层式逻辑结构:底层数据平台、发布数据系统平台、应用系统平台。底层数据平台:Oracle数据库作为底层平台,数据信息包括TerraBuilder合成之后的多维数据、以及二维的影像和属性数据,还有其他的数据(如单位列表、电话簿等),其中还有原有基础城市数据的链接等。发布数据系统平台:完成二维、三维空间数据和属性数据的发布功能,发布多维数据采用TerraGate,发布二维数据采用ArcIMS。应用系统平台:应用系统使数字城市的电子政务、电子商务、智能交通和分析决策等功能可以实现,它是通过COM接口与底层数据库和数据发布层进行数据交互的功能扩展。
3.4 系统典型应用的研制 ①二维、多维展示功能的实现。本系统采用二维和多维联合操作的方式,在不影响用户操作方便性的基础上实现了多维可视化效果,使显示、查询和编辑可以在两种视图之间自由切换。从而在多维可视化场景下,继承二维GIS操作具有无极放大、选择唯一和定位准确的特点,结合三维GIS的强大空间检索和分析功能为城市的规划、设计和高效管理提供整体支持。②空间行为决策系统的开发。空间信息分析与行为决策是三维GIS的核心部分之一,空间信息分析在地理数据的应用中发挥着举足轻重的作用。系统开发了一些简单的空间分析功能模块,比如图1-2所示的“测量功能”模块,这与二维计算机地图制图系统有显著的差别。利用系统的空间信息分析技术,对原始数据模型进行观察和分析,用户可以获得新的经验和知识,并做出城市空间行为的决策。
4 解决的几个关键问题
4.1 多维建模技术 城市多维景观模型包含数字高程模型、地面纹理影像等数据,它是多维数字城市信息系统的表现模型。本系统数字高程模型的建模方法采用综合形式,普遍采用数字摄影测量方法,结合GIS数据,通过影像匹配快速自动生成数字高程模型。另一种方法是采用三维设计软件,如3Dmaxs等软件,通过Skyline平台提供的COM接口,将设计好的模型实体导入并定位于特殊地形景观模型中。
4.2 图像压缩处理技术 图像压缩采用小波算法实现,可以生成地面纹理和形状最大限度接近真实目标,从而保证了图像压缩后的质量达到无失真。图像压缩比高,以1米地面高度分辨率的影像数据和25米地面高度分辨率的高程数据多维融合为例,经过测试,压缩比一般可达到4:1,最高甚至可以达到10:1。高图像压缩比和快速还原能力得以实现,它采用多级LOD方式存储系统影像,使多比例尺、多尺度空间地形数据可以无缝融合在一起,调用图像响应时间不超过0.5秒,从而在根本上解决了大型影像数据(>200GB)的网络浏览问题。
5 结论
随着信息技术的不断发展,各行各业开始重视交互式多维可视化应用软件的开发。针对数字城市应用系统的特点,我们基于Skyline平台实现了一个面向数字城市应用领域的交互式可视化多维展示与决策系统。系统应用后,能够在一定程度上为城市数字化管理提供完善的支持,可视化程度高、交互性好和开放性强是该系统的特点,在当前飞速发展的城市数字规划与管理中有着广阔的应用前景。
参考文献:
[1]王树德.数字城市基本问题和我国数字城市建设[J].青岛大学师范学院学报,2002,(01).
[2]周利军.GIS在数字城市中的作用[J].绥化学院学报,2005,(05).
Skyline论文 篇3
随着数据库技术的不断发展及数据库管理系统的广泛应用, 数据库中存储的数据量急剧增大, 如何从这海量的数据中找出人们最感兴趣的信息, 为人们作出有效决策服务, 成为了一项重要的研究课题。Skyline计算[1,2,3,5,6,8,11]以其在多目标决策、数据挖掘、数据库可视化等方面的重要性引起了越来越多研究者的关注。一个多维数据库的skyline, 是此数据库上不被其它任何数据点支配的点所组成的集合。数据点p支配点q, 当且仅当p在任一维上的取值都不比q差, 且至少在一维上比q更好。这也就意味着, 任何一个在所有维上都单调的函数, 对p点的打分都优于对q点的打分。
随着网络技术的发展和数据规模的急剧增大, 对等网络 (P2P) 作为一种分布式信息共享与搜索的平台吸引到越来越多人的注意。但直到不久前, skyline计算的研究还局限在集中式数据库上。由于对等网络对网络带宽、节点访问量等的特殊要求, 集中式skyline算法并不能有效地直接运用于对等网络上。如何设计出符合对等网络特点的skyline算法也成为了一个重要的研究课题。然而, 迄今为止, 国内外只有三篇文章[9,10,11]在这个课题上作出了初步探索。这些文章提出的算法或者是专门为子空间上skyline计算设计的[9], 或者是针对特殊的对等网络协议CAN[11]或BATON[10]而不能应用到其它协议上。但是, 除了CAN和BATON, 还有一些对等网络协议具有重要的研究和应用价值。例如Chord[7], 以其简单灵巧的设计和良好的性能在对等网络研究领域中一直获得广泛的关注。如何处理这些重要的对等网络上的skyline计算, 还有待进一步深入的研究。
在这篇文章里, 我们提出了一种新的、基于Chord网络的skyline算法。这个算法在处理受约束的skyline查询 (即指定了数据取值范围的查询) 和普通的针对数据全空间的skyline查询时都表现出良好的性能, 且达到了对等网络对skyline算法的各种要求:占用较少的网络带宽、访问较少网络节点、具有良好的渐进性并保持节点间负载的均衡。理论分析和实验结果均证明它是一个高效、可扩展的算法。
1相关工作
提出一种基于对等网络Chord进行skyline计算的算法。接下来我们将分别就Chord和skyline计算的相关研究进行简单评述。
1.1Chord
对等网络是无集中控制的分布式系统。Chord[7]作为众多对等网络协议中的一种, 以其灵巧的设计、准确可靠的特点和良好的性能获得了广泛的研究和应用。Chord使用一个简单的环形结构, 为每一个节点和每一个关键字分配[0, 2m-1]之间的一个m位标识符, 组建一个环状标识空间。一个节点的标识符是将其IP哈希到[0, 2m-1]上得到的, 而一个关键字的标识符是此关键字的键值的哈希值。每个关键字被映射到离它最近且标识符不比它大的节点上。每个节点维护一个指针表 (finger table) , 存储离它距离分别为1, 2, …, 2m-1, 依次折半共m个节点的信息。Chord 可以确保路由在标识空间中单向靠近目标结点而且不会越过, 并且保证路由在O ( LogN ) 步内完成。
1.2Skyline计算
集中式skyline计算作为早期关注的焦点得到了较深入成熟的研究, 块嵌套循环算法 (BNL) [2]、排序过滤算法 (SFS) [3]、分治法D&C[2]、位图法 (bitmap) [8]、索引法 (index) [8]和最近邻算法 (NN) [5]等等都是著名的集中式skyline计算算法。分枝界限算法 (BBS) [6]基于最近邻搜索渐进地输出skyline点, 是当前公认最优的集中式skyline算法。
文献[11]是第一篇对对等网络 (P2P network) 上的skyline计算进行研究的文章。它基于对等网络的一种特殊协议——CAN, 通过动态地为区域编号标示出区域间的依赖关系, 按此依赖关系并行地传递和执行skyline查询。文献[10]提出了基于树型对等网络BATON的skyline计算算法。它将整个数据空间适应性地划分为对应于网络节点的各个区域, skyline查询被按照区域依赖关系发送到可能包含skyline点的节点上。而文献[9]对支配的概念作了扩展, 提出了扩充的skyline集, 来定义所有可能在任一个子空间skyline查询中有用的点所组成的集合, 并设计出一个基于阈值和超级节点的skyline算法。
2基于结构化对等网络Chord的skyline计算算法
在这一部分里, 我们首先阐述对等网络上的skyline计算的定义和目标。然后, 我们将提出一个新的基于对等网络Chord的skyline计算算法, 并通过理论方法分析它的性能。
2.1问题定义
假设DB是一个d维的数据库, 其中的每一个数据点p用向量 (p.a1, p.a2, ..., p.ad) 表示, 且0≤p.ai≤1 (i∈[1, d]) 。DB被水平划分到一个Chord网络的N (N≤ 2m, m > 0) 个节点上。标识符为i的节点被标记为Pi, 而P0, …, P2m-1上的数据划分分别被表示为DB0, …, DB2m-1 (注意某些Pi可能在某一时刻不在网络中, 对应的数据划分DBi的大小为0) 。 新的数据随时可能被插入到DB中, 已有的数据也可能被删除, 因而不可能为每个查询预先计算出结果。
对于DB中的任意两点p和q, 点p支配点q, 当且仅当对任意一维i (i∈[1, d]) , p.ai≤q.ai, 且至少存在某一维j (j∈[1, d]) , 使得p.aj < q.aj。即p在任一维上的取值都不比q差, 且至少在一维上比q更好。对于Pi上的任一个点p, p是DBi的本地skyline点, 当且仅当p不被DBi中其它任何点支配。同样的, p是全局skyline点, 当且仅当p不被DB中其它任何点支配。
一个全局 (不受限) 的skyline查询的目标是找到DB0, DB1, ..., DB2m-1中所有的全局skyline点;一个受限的skyline查询的目标是找到在某个特定的查询空间, 即超立方体Qr中的所有全局skyline点。
一个设计良好的对等网络上的skyline计算算法应达到以下四个目标:1) 最小化网络通信开销。通信开销是对等网络上算法衡量的普遍标准, 它不仅决定了网络带宽占用量, 还很大程度上决定了查询的响应时间。2) 最小化平均节点访问量。算法应在尽可能少的节点参与计算的情况下准确计算出skyline, 避免对整个网络的彻底搜索。3) 渐进性。算法应快速地计算出前几个skyline点, 并逐渐地把更多结果返回给用户。4) 负载均衡。保持负载均衡是对等网络上算法的一个重要目标, 负载应被尽量均匀地划分到网络各个节点上。
2.2基本算法
不难发现, 任何一个全局skyline点必属于某一个本地skyline集, 也就是说, 所有本地skyline集的并集是全局skyline的一个扩展集。基于这一点, 我们可以获得一个简单的计算对等网络上skyline的基本算法。它包含两个步骤: (1) 每个节点分别使用某种集中式skyline算法 (如BNL[2]) 计算它的本地skyline集; (2) 某个节点 (如查询的发起者) 扮演起协调者的角色, 将所有节点的本地skyline集收集到一起, 将它们合并并去除其中不符合要求的点, 得到全局skyline集。
这个基本算法有一个重要的缺陷:它可能在节点间传输大量的无用信息, 导致很高的网络带宽开销。事实上, 本地skyline集的并集可能远远大于全局skyline的大小, 将这个并集传给协调者将致使许多非全局skyline点被传输, 引起了不必要的网络开销。这个基本算法的另一个缺点在于它缺少渐进性, 所有的skyline点都要在计算结束以后才能一起被返回给用户。除此以外, 对于每一个查询, 基本算法都需要访问所有的节点才能获取到所需的全部信息。这样对网络的彻底搜索使算法的效率不高, 且难以扩展到较大型的网络上。
2.3基于Chord的skyline计算
在这个部分里, 我们定义一种新的数据映射的方法, 将每个数据映射为它在Chord上的标识符。然后, 我们将详细介绍一种新的基于Chord的skyline算法。
2.3.1 数据映射
为了将多维数据点映射到Chord网络的一维标识符, 我们首先选择一个在所有维上都单调的函数F (·) , 称之为优先函数。每一个数据点p都被F (·) 映射到一个一维值F (p) 上, 并把这个值作为点p的关键字, 标记为Kp。为简单起见, 在以后的讨论中我们选择一个简单的优先函数F (p) =∑
这里[Kmin, Kmax]是关键字的值域。显然, ID (Kp) 是一个保序函数, 关键字小的点将被哈希到较小的值, 根据Chord协议, 也将被映射到标识符较小的节点。
图1是数据映射的一个例子。这个Chord网络上共有3个节点, 且m=3。整个数据集的5个数据分别被映射到各个节点上。Kmin=0, Kmax=2, 按照公式 (1) , 点 (0.2, 0.04) 被映射到P0, 点 (0.1, 0.45) 被映射到P1, 其它三个点则被映射到P3上。
2.3.2 ChordSky算法
首先, 我们介绍文献[3]中的一个重要定理:
定理1 按照任何单调函数对数据点所作的全序排序, 都是按skyline偏序支配关系所作的拓扑排序。
也即是说, 将数据点全部按单调函数排序以后, 任何一个排在前面的点都不可能被排在后面的点所支配。回忆我们使用了一个单调函数的值作为数据点的关键字。根据2.3.1中描述的映射方法, 对于任何0 ≤ i, j < N, Pi中的关键字必定比Pj中的关键字小。因此, Pi中的任何数据点都绝不会被它后面 (标识符比它大) 的节点上存储的点所支配。也即是说:
引理1 Chord环中的任何节点都只需要参考它前面的节点, 就能够决定它的本地skyline点是否属于全局skyline。
而对于一个受限的skyline查询, 假设l (l.a1, l.a2, …, l.ad) , h (h.a1, h.a2, …, h.ad) 分别是查询空间的左下和右上角的点, 则没有关键值小于F (l) 或大于F (h) 的点属于全局skyline。由此, 我们得到另一条引理:
引理2 对于一个关键字范围为[Keyi, low, Keyi, high]的节点, 当且仅当skyline查询的关键字范围[F (l) , F (h) ]与之相交时需要访问它来计算skyline。
基于引理1和引理2, 我们提出了在Chord网络上进行skyline计算的新算法, 称之为ChordSky算法。算法1是此算法的伪码描述。当一个查询Q在某个节点上发出时, 按照Chord协议的路由机制将它路由到关键字范围与[F (l) , F (h) ]相交且标识符最小的节点Pi上 (全局skyline的查询范围是[0, d]) 。同时初始化一个空结果集Ssky, 以备存储计算的最终结果, 并将它传到Pi上。在接收到Q和Ssky以后, Pi上的SkyComputation (Q, Ssky) 过程被触发。SkyComputation (Q, Ssky) 首先检查Pi与Qr的关键字范围是否相交, 如果不相交, 则搜索已经超出了查询范围, 计算结束。否则, Pi根据Qr计算出本地skyline集Si, 用Ssky过滤掉Si中被支配的点, 并将剩余的Si中的点添加到Ssky。然后, Pi将查询Q和新的Ssky传递给它的后继节点Pj, 并触发Pj上的SkyComputation (Q, Ssky) 过程。为了将算法解释得更加清晰, 下面我们给出了一个具体的例子:
例1 我们仍然考虑图1中的Chord网络和数据集。基于2.3.1中提出来的数据映射方法, P0, P1和P3的关键字范围分别是[0, 0.25) , [0.25, 0.75) 和[0.75, 2]。一个受限查询Q被发出, 它的查询空间的左下角点为l (0.1, 0.4) , 右上角点为h (0.4, 0.9) 。因此, 查询Q的关键字范围是[F (l) , F (h) ]= [0.5, 1.3], 它被路由到第一个与它相交的节点P1上。在P1上完成计算后, Ssky = { (0.1, 0.45) }。然后, P1将Q和Ssky传递给它的后继P3, 并触发P3上的处理进程。P3计算它的本地skyline, 用Ssky去除其中的 (0.3, 0.8) 和 (0.35, 0.6) 点, 并将剩余的点 (0.4, 0.4) 加到Ssky中。Skyline计算完成, 最终Ssky = { (0.1, 0.45) , (0.4, 0.4) }。
算法1ChordSky
Procedure ChordSky (Q)
1: initialize an empty set Ssky;
2: route Q and Ssky to Pi s.t.i is the first ID satisfying
Keyi-1, high ≤F (l) and Keyi, low =F (l)
3: Pi.SkyComputation (Q, Ssky) ;
End Procedure
Procedure SkyComputation (Q, Ssky)
1: if Keyi, low > F (h) or Keyi, high ≤F (l) then
2: return;
3: else
4: initialize an empty set Si;
5: Si←Pi.LocalSkyline (Q) ;
6: eliminates points in Si that are dominated by points in Ssky;
7: Ssky←Si∪Ssky;
8: if Keyi, high ≤F (h) then
9: Pi.successor.SkyComputation (Q, Ssky) ;
10: end if
11: end if
End Procedure
2.3.3 算法分析
由引理1和引理2很容易验证算法的正确性与渐进性。算法沿着Chord环传递查询和已求出的skyline数据集Ssky, 每当一个节点收到查询时, 它也获得了它所需要的前驱节点处的信息, 也即是说, 所有可能支配它所存储的点的skyline集。因此, 当一个节点处理完以后, 它新加到Ssky中的每一个点都必然是全局skyline中的点, 可以立即被输出给用户, 这就保证了算法渐进的特性。此外, 由于查询将被传递到所有与查询空间相交的节点, 每一个全局skyline点都必然被访问到。在计算结束时, 有且仅有所有的全局skyline点被输出, 确保了算法的正确性。
同时, 算法最小化了需要访问的节点数。按照基本算法处理查询将需访问网络中的所有节点, 而ChordSky算法仅需要访问那些可能含有全局skyline点的节点 (引理2) 就可以获取正确完整的答案, 保证了访问量的最小化。
负载均衡作为对等网络的一个重要方面得到了广泛的关注[4]。我们可以从三个方面提高负载的均衡度: (1) 将各个节点的关键字范围重新分配, 比如让原本较热门的节点接受较小范围的关键字; (2) 使用虚拟主机[4]的方式让强大的节点负载更多地工作; (3) 使用范围复制的方法, 像文献[11]中的动态区域复制方法一样, 把工作量从负荷重的节点转移到较为空闲的节点。
3性能评估
下面, 我们将用实验验证算法的性能。我们实现了基本算法和ChordSky算法, 并在一台Intel Pentium 4 2.8GHz CPU, 内存512M, 硬盘40G的单机上进行了模拟。我们使用包含1000, 000个均匀分布点的两维集合, 在网络大小 (在线节点数) 从100到1000的范围内测试各种受限/不受限的skyline查询。每个查询的范围都是随机生成的。我们按每一组参数进行10次实验, 取其结果的平均值作为这组参数下的结果。
我们采用2.1部分中的四个目标为衡量标准。因为算法渐进性和负载均衡两个方面的性能已经在2.3.3部分中得到了详细的论证, 在这一部分里, 我们集中讨论网络的带宽消耗量和节点访问量。由于传输数据的数量极大地决定了网络带宽的消耗量, 对每一个查询而言, 我们用平均每个节点传送的数据点的个数作为带宽消耗的衡量标准。对于节点访问量, 我们比较两种算法在每个查询上平均访问节点数占总节点数的百分比。
3.1带宽消耗
为了研究两种算法在带宽消耗上的性能, 我们使测试网络的大小从100个节点到1000个节点变化。图2是节点数量变化时, ChordSky算法比基本算法减小的带宽消耗比。这个减小的带宽消耗比是按 (Bnaive-B) /Bnaive*100%来计算的, 其中Bnaive和B分别是基本算法和ChordSky算法中每个节点平均传递的数据点的个数。由实验结果可知, 无论网络大小如何变化, ChordSky算法始终比基本算法减小了大约60%的带宽消耗, 展示出非常好的性能。
3.2节点访问量
为了回答一个skyline查询, 基本算法必须访问所有的节点才能避免结果出现错误或遗漏。而受益于新的数据映射方式, ChordSky算法仅需要访问那些与查询范围相交的节点, 最小化了节点访问量。图3展示了ChordSky算法的平均节点访问量。如图3所示, 在所有的查询中, 有90%的查询是只需访问60%以内的节点即可完成。而超过70%的查询只需访问不到40%的节点。这一较基本算法节点访问量的大幅度减小也确保了ChordSky算法良好的可扩展性。
4总结
在这篇文章里, 我们对对等网络上有效计算skyline的问题进行了研究。基于重要的对等网络结构Chord, 我们提出了一种新的把多维数据映射为一维标识符的方法, 并提出了ChordSky算法将查询沿着Chord环向后传递, 渐进地处理数据点并输出skyline。该算法最小化了需要访问的节点个数, 极大地减小了网络带宽的消耗量, 并提供了保持节点负载均衡的方法。理论分析和实验结果都证明, ChordSky算法在有效性、渐进性和可扩展性三方面的性能都远远超过了基本算法。将来, 我们还将进一步探索对等网络上skyline的动态更新等问题。
参考文献
[1] Balke W T , Guntzer U, Zheng J X.Efficient distributed skylining for web information systems.In Proc.of EDBT, 2004:256-273.
[2] Borzsonyi S, Kossmann D, Stocker K.The skyline operator.In Proc.of ICDE, 2001:421-430.
[3]Chomicki J, Godfrey P, Gryz J.Skyline with presorting.In Proc.of IC-DE, 2003:717-816.
[4] Godfrey B, Lakshminarayanan K, Surana S, Karp R M, Stoica I.Load balancing in dynamic structured p2p systems.In INFOCOM, 2004.
[5]Kossmann D, Ramsak F, Rost S.Shooting stars in the sky:An online al-gorithm for skyline queries.In Proc.of VLDB, 2002:275-286.
[6]Papadias D, Tao Y, Fu G.An optimal and progressive algorithm for sky-line queries.In Proc.of SIGMOD, 2003:467-478.
[7]Stoica R Morris, Karger D R, Kaashoek MF, Balakrishnan H.Chord:Ascalable peer-to-peer lookup service for internet applications.In SIG-COMM, 2001:149-160.
[8] Tan K L, Eng P K, Ooi B C.Efficient progressive skyline computation.In Proc.of VLDB, 2001:301-310.
[9] Vlachou C Doulkeridis, Kotidis Y, Vazirgiannis M.Skypeer:Efficient subspace skyline computation over distributed data.In Proc.of ICDE, 2007:416-425.
[10]Wang S, Ooi B C, Tung A K H, Xu L.Efficient skyline query process-ing on peer-to-peer networks.In Proc.of ICDE, 2007:1126-1135.
Skyline论文 篇4
伴随着经济的快速发展,服务化成为了产业发展的必然趋势,各种生产活动的成果逐渐开始以服务方式向用户进行交付[1]。进而,互联网上的服务种类越来越丰富,服务数据越来越繁杂,服务选择的优化成为了一个亟需解决的问题。
目前,Skyline服务选择成为了服务选择优化的一大研究热点[2,4,5]。这些研究大多是通过引入Skyline计算,选择出Skyline服务集,去除冗余服务,从而减小候选服务集大小、提高服务选择的效率。但是,这些研究只是去除了被支配的冗余服务,剩下的Skyline服务集仍然是一个非常庞大的服务集,这些服务必定只有少部分才会用于服务组合。所以,对候选服务进行二次筛选,选出能被选择的可能性最大的Skyline服务集,成为Skyline选择方法亟待解决的难题。
为了提高服务选择的效率,缩小Skyline服务集的大小,提出了Skyline服务Top-k选择方法。该方法可快速求解到最优的Top-k Skyline服务,去除冗余的Skyline服务,有效降低服务选择的时间,而不会影响服务组合的结果。
1 相关介绍
1.1 Skyline服务
Skyline计算(查询)[3]就是从一个数据库中抽取出不被其他任一数据对象所支配的所有数据对象的集合,也称为Pareto(即在不损害他方利益的情况下,使得自身已达最优)。目前,Skyline计算已经被引入到服务领域。
定义1服务支配[2]:设存在一个服务类S={s1,s2,…,sn},s1和s2为其中的两个候选服务,并且每个服务都有k个Qo S属性。如果i∈[1,k],s1(i)≥s2(i)(≥表示好于或等于),且,使得s1(j)>s2(j)(>表示好于),那么就有s1<s2(<表示服务支配,即s1支配s2),也就是说,候选服务s1的每一个Qo S属性值都要好于或等于候选服务s2的属性值,且至少有一个属性值好于s2。
定义2 Skyline服务集[2]:Skyline服务集是指在某一服务类S中不被其他任一服务所支配的最小候选服务的集合,记为Sky S,Sky S={si∈S|瓙sj∈S:sj<si}。
1.2 基于云模型的Skyline服务选择
文献[2]将Skyline计算引入到服务选择中,通过剔除候选服务中的冗余服务,得到Skyline服务集,从而缩小候选服务集的大小、提高服务选择的效率,并求解出基于Qo S全局约束的服务选择的解。同时,文献[2]提出了命题1,即服务选择一定选择自Skyline服务集,并为它的Skyline服务选择方法提供了理论依据。
命题1[2]设最优组合服务为S={s1,s2,…,sn}(si是对应组合服务类Si中选择出的服务),那么对于S中的每一个服务,都属于对应组合服务类的Skyline服务(记为Sky Si),即si∈Sky Si。
2 基于Skyline服务的Top-k选择
文献[2]将Skyline计算引入到服务选择中,剔除冗余的候选服务,降低候选服务集的大小,从而提高了服务选择的效率。但是,这只是服务选择的第一步,因为剔除了冗余的候选服务后,得到的Skyline服务集仍然是一个非常庞大的数据集。本节将对Skyline服务集进行筛选,选择出最优的Top-k Skyline服务,达到缩小Skyline服务集大小,而不会影响服务组合的目的。
2.1 理论基础
服务选择最终是为了服务组合,本节从服务组合角度,用数学推理的方式给出了基于Skyline服务的Top-k选择的理论依据。
众所周知,基于Qo S全局约束的服务选择的重点是从所有可能的服务组合中选择一个Qo S效用函数值最大且满足全局Qo S约束的组合。例如,假设最终的最优服务组合为S={s1,s2,…,sn},那么,它必须满足两个条件:
a)所有服务类的Qo S效用函数值U(S)最大;
b)Qo S属性聚合值qj(S)≤Cj,其中qj(S)为S的第j个Qo S属性聚合值,Cj为相对应的约束值。
本文设定服务组合的所有可能组合按Qo S效用函数排序,取其Top-k,最大限度的容许了条件b)的成立,所以,关键在于条件a),即使服务的Qo S效用函数值最大。
在顺序模型中,服务组合S={s1,s2,…,sn},服务类si的质量属性为q(si)={q1,q2,…,qj,…,qm},则S的Qo S效用函数值为:
均按照正属性来处理,其中Qjmax和Qjmin分别为所有服务类的质量属性qj的最大值和最小值,由于其余三种模式均可转化为顺序模式求解[6,8],仅考虑顺序模式。
如果所有的服务类在进行服务组合之前已经进行了归一化处理(处理后均为正属性),即每个服务类的每个Qo S属性的最大值和最小值均分别为1和0,另外,由于服务组合的Qo S属性的计算方式主要分为3种:累和,累积,最小值。所以,分三种情况分析。
(1)累和:如响应时间,价格,信誉度等
响应时间、价格的计算公式为,信誉度的计算公式为。
此时,服务组合S的Qo S属性的最小值肯定为0,所以效用函数变换为:
又由于对于有系数的Qo S属性,例如信誉度,有1/n,因为分子、分母都有,消去。所以,如果考虑的Qo S属性均为累和形式,则服务组合的效用函数变换为:
即,服务组合的效用函数与每个服务类所选择的服务的效用函数相关。所以,可以依据每个服务类中候选服务的效用函数值进行选择服务,而具体的依据或者具体的效用函数值范围的界定,由下节命题给出。
(2)累积:如可用性,可靠性,可能性
可用性计算公式为,此种情况下,如果所有考虑的Qo S属性都是这种累积的形式,服务组合的Qo S属性的最小值均为0,最大值均为1。服务组合的效用函数变换为:
可见,看不出与每个服务类所选择的服务的效用函数的关系,但可以肯定,如果此种计算方式的Qo S属性个数所占比重较少,且权重不大,其数值相对较小。
(3)最小值:如吞吐量
吞吐量的计算公式为,此种情况下qthr(S)=minni=1qthr(i),如果所有的考虑的Qo S属性都是这种最小值的形式,服务组合的Qo S属性的最小值均为0,最大值均为1。服务组合的效用函数变换为:
也看不出其与每个服务类选择出的服务的效用函数的关系,但是在权重非常小的情况下,其值相对也较小。
综上,如果一个服务组合,有a个属于累和类型的Qo S属性(令其属性标签为1至a),有b个属于累积类型的Qo S属性(令其属性标签为a+1至a+b),有c个属于最小值类型的Qo S属性(令其属性标签为a+b+1至a+b+c),那么服务组合的效用函数可变换为
其中,U(i)表示第i个服务、第1至a个Qo S属性的效用函数值。可以看出,如果累积和最小值方式的Qo S属性相对比较少(甚至没有),且其权重也不占主要地位,累和形式的结果就成了最终服务组合的效用函数值最主要的部分。在这种情况下,可以通过候选服务的效用函数值来界定被选择用来进行服务组合的可能性,达到降低Skyline服务集大小、提高服务选择效率的目的。这种方法的误差为:
2.2 相关命题
由上节可知,候选服务的效用函数值与服务组合是存在一定的函数关系的,对服务组合的某一个服务类而言,可以依据候选服务的效用函数值来界定一个范围,该范围内的Skyline服务是最有可能被选择后用于服务组合的。本节将给出基于Skyline服务进行Top-k选择的相关命题及其证明。
命题2如果对服务组合按照效用函数值进行Top-k排序,那么对于任意的服务组合S={s1,s2,…,sn}(si是对应服务类Si中选择出的服务),si一定属于其对应的Skyline服务集的Top-k(按效用函数排序)。
证明:反证法
假设对于服务组合S={s1,s2,…,sn},S属于Top-k,si是对应服务类Si中选择出的服务,,sim表示服务类中排名第m的服务。
由于按照Qo S效用函数(累和形式的Qo S属性效用函数值)排序的,所以对于Sky Si服务类,其效用函数排序为si1>si2>…>sik>sim。
又由于在顺序模型中,服务组合的Qo S效用函数与各个服务类效用函数值的关系如式(2)所示,所以,有k个服务组合,它们的Qo S效用函数一定大于服务S,这与条件“S属于Top-k”相矛盾,所以,假设不成立,命题得证。
命题3对于任一服务类S,如果其中的一个服务s1支配另一个服务s2,那么服务s1的Qo S效用函数一定优于服务s2的效用函数。
证明:设服务s1={x1,x2,…,xk},服务。
由于s1<s2(<表示支配、优于),则1≤i≤k,xi≥xi(≥表示好于或等于)。
又由于Qo S效用函数是各个质量属性的聚合值,聚合值随着各个属性值的越大也越大,所以Qo S效用函数也是单调函数,由此可知s1的效用函数一定优于s2的效用函数。得证。
2.3 Skyline服务的Top-k选择算法
根据上一节的命题,本节提出了基于Skyline服务Top-k选择算法,算法流程如图1所示。
该算法是一个并行算法,一边对候选服务集进行Skyline计算,一边根据效用函数进行排序,最终得到Top-k的Skyline服务集。算法代码如下:
3 实验与分析
本文对Skyline服务Top-k选择方法的对比分析以及其对服务组合的影响,进行了两个实验。
所有实验均基于公共Web服务集QWS[7](包含2507条Web数据信息,取其4个Qo S属性数据———Response Time,Latency,Throughput,Successability),以及随机产生的493条Web数据,Trustworthiness(Web服务起源可信度)取自文献[4]的实验数据。
所有算法都用Java实现,硬件环境配置为Intel(R)Core(TM)i5-3470 CPU,3.20 GHz,4 GB RAM running Windows 7(32位)。
(1)Skyline服务Top-k选择方法的对比分析
对比文献[2]提出的Skyline选择方法与本文提出的基于Skyline服务的Top-k选择方法,随机抽取Web服务,针对不同的k值,计算其服务选择的时间耗费,具体的对比如图2所示。
由图2可知,不管k值如何,随着候选服务集的增加,两种方法时间耗费的差距越来越大,本文提出的基于Skyline服务的Top-k选择方法大大减少了服务选择的时间耗费,从而能提高服务选择的效率。
(2)基于Skyline服务的Top-k选择对服务组合的影响分析
分两种情况分析本文提出的基于Skyline服务的Top-k选择方法对服务组合的影响:a)用户所关注的Qo S属性均为累和形式的Qo S属性;b)累和形式的Qo S属性相对较多,累积、最小值等其他形式求解的Qo S属性的权重很小。
对图3所示的服务组合流程,以及表1所示的组合阈值和权重,选取按效用函数值排序的前Top-k个服务组合(k=10)。两种情况下,最终得到的前10个服务组合如图4所示。
由图4可知,在仅考虑累和形式的Qo S属性的情况下,本文提出的基于Skyline服务的Top-k选择与文献[2]的Skyline选择后的服务组合结果相同;而在累和形式的Qo S属性占绝对优势的前提下,本文提出的基于Skyline服务的Top-k选择与文献[2]的Skyline选择后的服务组合结果相差较小,只有最后排行末尾的服务组合不一致。所以,本文提出的基于Skyline服务的Top-k选择算法是可行的、有效的,不会影响服务组合。
4 结语
Skyline论文 篇5
据调查显示,信息80%是通过视觉获取的,因此视觉效果作为评价标准,具有以真实地景、地理空间位置为平台的飞行模拟,才能对飞行员体验飞行、对飞行的认知起到帮助,而Skyline能满足平台需要,为用户提供真实的地景和地理空间,因此基于Skyline开发的飞行模拟具有重要意义。飞行模拟的一个重要方面就是飞机的座舱仪表显示系统,它能让飞行员体会到从第一视角观察自己的飞行状态及周围的地景变化。为满足人们体验模拟飞行的视觉效果,文中基于实现Skyline模拟飞行的前提下,对如何实现座舱仪表的显示进行了探讨,并得出如何高效简单地解决座舱仪表显示的问题。目前仪表显示可以通过OpenGL、DirectX和Flash实现,文中给出用Flash实现Skyline飞行座舱仪表显示的方法,该方法高效、快捷。
1 Skyline和Flash简介
1.1 Skyline
Skyline是独立于硬件之外、多平台、多功能的一套基于网络的三维地理信息系统平台。用户可以利用航空和卫星遥感影像、地形高程数据和其他的二、三维地理空间和属性数据,创建自定义的虚拟现实三维可视化场景,进行浏览、查询、分析和网络发布。它能够允许用户快速融合数据、更新数据库,并且有效地支持大型数据库和实时信息流通讯技术,此系统还能实时地展现给用户3D地理空间影像,并开放所有的API,无论在网络环境还是单机应用,用户都能根据自身的业务需求开发定制功能,建立个性化的三维地理信息系统。文中基于Skyline提供的开放API实现模拟飞行功能的基础上,进行再次开发,实现座舱仪表的显示。
1.2 Flash
Flash是重要的动画制作工具,它是基于矢量的图形系统,各元素均为矢量,只用少量的向量数据就可以描述一个复杂的对象,占用的存储空间仅为位图的几千分之一,同时矢量图像可以做到真正的无级放大,这样图像始终可以完全显示,并且不会降低画面质量。在Flash中,一般动画都是依靠关键帧实现,方便快捷,用户只需给出一个对象的几个关键动作,生成关键帧,系统就会根据需要在各个关键帧之间自动插入平滑的动画。Flash使用了“层”的概念,不同的角色可以出现在不同的层面上,相互掩映,可以单独对某一层面进行操作,并且可以看见效果。文中根据Flash的这些特性,实现了座舱仪表的显示。
2 座舱仪表显示功能实现
2.1 座舱仪表制作
为了达到座舱仪表显示更为逼真的目的,采用3D MAX制作。3D MAX是集各项3D功能为一身的软件,建模、渲染、材质、动作等使得建模更加精致、逼真。建模完成的效果如图1所示,该图作为Skyline窗口的背景贴图。
利用3D MAX的裁剪渲染功能,将图1中的每一个仪表(除地平仪以外)及仪表指针单独渲染输出保存图像如图2所示,用于之后加入到Flash场景中制作动画。由于地平仪中的圆柱是随着飞机俯仰角的变化而转动,在Flash中实现较困难,因此将其独立出来,放在3D MAX中制作动画,设置旋转一圈为720帧,然后再通过裁剪渲染,按每帧输出得到720张图像并保存。
在新建的Flash工程中,将仪表图像及其相应的指针分层放入场景,并按照指针的指示设定足够的帧数和关键帧制作动画输出保存为*.swf文件。其中,Flash支持图片的批量加载,并自动将每幅图像按编号顺序添加为关键帧,这使得地平仪的制作简单化。制作效果图如图3所示。
2.2 仪表动态显示实现
以上制作的仪表必须通过数据的驱动才能转动,数据来自于飞行模拟。本文的仪表动态显示是通过C#编程语言实现,通过建立同一命名管道实现飞机参数与仪表指针帧数之间的通信,具体实现过程如下:
(1)建立Myfly和Flash两个工程文件。Myfly工程用于模拟飞行并将飞行参数输出;Flash工程用于加载制作的*.swf文件,并匹配飞行参数与指针帧数之间的关系。
(2)建立同一命名管道。Myfly中的管道作为客户端,用于发送带一定格式的数据;Flash中的管道作为服务器端,用于接受数据并按数据格式解码。
(3)运行两个工程文件,实现仪表的动态显示。其显示结果如图4所示。
可以看到飞行的场景为Skyline提供的海量遥感影像,座舱为3D MAX制作的座舱,仪表为Flash动画,在飞行参数的驱使下,指针发生了偏转,实现了座舱仪表的动态显示。而图5为机舱照片直接粘贴,仪表都是静止的,而且显示效果不好,相比之下,通过3D MAX和Flash相结合制作的飞行座舱仪表显示取得了良好的效果。
3 结束语
论述了基于Flash实现Skyline的飞行座舱仪表显示,该实现使得飞行模拟更加逼真形象。与其他仪表显示相比,显示更精致;优点是较好地使Skyline的开发平台与Flash相结合,实现了不同工程程序间的相互通信,对Skyline的二次开发能力进行了补充。
摘要:Skyline作为一个三维地理信息平台,为用户提供直观、形象的三维地景显示和二次开发功能。文中在Skyline实现模拟飞行的基础上,论述了如何用3D MAX和Flash实现座舱仪表的显示,并用飞行参数驱动仪表指针,实现了更加逼真的模拟飞行。
关键词:Skyline,Flash,座舱,航空仪表
参考文献
[1]王娟.飞行仿真中虚拟航空仪表显示系统的研究和实现[D].吉林:吉林大学,2005.
[2]东方道迩.SkylineGlobe+6技术白皮书[M].北京:北京东方道迩信息技术股份有限公司,2010.
[3]吴东岩.飞行模拟器座舱仪表驱动的设计与应用[D].吉林:吉林大学,2006.
[4]李俊涛,李学仁,李永宾.基于DirectX的虚拟仪表技术在飞行仿真中的应用[J].空军工程大学学报,2004,5(6):1-4.
Skyline论文 篇6
目前对地下管线的管理仍然停留在图纸及文字手工管理或计算机二维图形管理模式。作为城市建设的一个重要组成部分, 地下工程的规划、设计、施工及运行管理需要完整、精确、直观的地下管线信息。因此, 建立城市地下三维管线信息系统, 实现管线数据的三维可视化就成为一个迫切的需要。在建立城市地下三维管线信息系统的过程中, 城市地下管线数据模型的制作就成为极其关键的一个环节, 因为管线数据模型的的设计是三维显示和操作的基础, 直接决定了整个系统的完整性、准确性和直观性。
1 地下管线概况
建立城市地下管线的空间模型, 首先要了解地下管线的分布特征和空间结构。种类繁多, 主要分布在城市道路地下, 呈立体空间交叉网状分布, 具有分布集中性和不可见性等特点。
城市地下管线可以分为给水、排水、煤气、电力、电信、有线电视、热力和工业8大类, 并且每种管线还可以按照其传输的物质和用途的不同进行细分, 例如, 排水系统可以分为污水、雨水和雨污合流等。各种管线分层而立, 不同的管线不存在直接的关系。虽然城市管线种类繁多, 但是其基本的结构是一致的, 一般都由管点、管线段及附属设施组成。管线层由若干条管线、管点和附属设施组成, 一条管线可以分为若干条管线段, 而管线段是两个管点之间的连接管的通称。管点的基本几何结构可以分为以下几类:管线交叉点、管线分支点、管径变化点、管线埋深变化点、管线转折点、附属设施中心点。
2 管线数据模型的设计思路
采用面向对象的设计思路, 将每段管线或者管点看作为一个对象, 制作成独立的模型, 一个数据对象应包括一个唯一的标识号, 该标识号用于后期地下管线查询系统的属性查询功能。
在管线三维视图中, 一段管线一般用圆柱面表示, 圆柱面的轴心即为管线中心线, 圆柱面的截面半径为管线在截面处的半径。在构造管线三维图形时, 管线的截面是以等边多边形来实现的, 实验表明, 管线表面等分地越细, 模拟管线在直观上就越接近真实管线, 但模型的计算量增大, 电脑显示速度会降低;反之, 模拟管线比较粗糙, 电脑显示速度较快。当管线表面为八边等边形时, 显示真性与显示速度能取得较好的平衡。
3 管线数据模型制作方式
3.1 skyline软件独立制作管线数据模型
3.1.1 skyline软件系统工具箱制作管线数据模型
Skyline Terrasuite是目前国际上应用较广泛、技术较领先的3维GIS平台之一, 具有精确的定位查询、浏览、编辑、注释、打印、空间分析、VR技术、用户自定义工作界面、基于COM的二次开发以及网络发布等功能。由TerraBuilder, TerraExplorer和Ter raGate三个相互独立的子系统构成。
TerraExplorer pro具有创建简单三维模型的功能, 系统的工具箱提供了一系列的简单三维实体可以放置到三维场景中, 其中包括:三维模型、点云模型、线性点云模型、建筑物、三维多边形、立方体、圆柱、球体、圆锥、金字塔、三维箭头。在工具栏上选项相应的图标可以在三维场景中绘制相应的三维图形。
由于地下管线多为圆柱型, 可用系统的工具箱提供的圆柱模型制作工具进行手动绘制。该方式方便快捷, 可直接在三维场景中绘制管线数据模型, 对模型有较为直观的控制。因为是手动绘制, 模型的位置精度难以保证, 需进一步调整。
3.1.2 skyline软件二次开发制作管线数据模型
TerraExplorer A PI提供了一套强大的接口用来集成TerraExplorer、TerraEx plorerPro和用户自定义应用。TerraExplo rer也提供了一套A ctiveX控件, 可将3D窗口、信息树和导航图以控件对象的方式嵌入到用户自定义的可视化界面中。
TerraExplorer API接口中的IObjectM anager51用于管理三维窗口中的所有对象, 可创建、删除、修改三维窗口中的所有对象。可根据管线属性信息利用IObjectManag er51接口下的CreateCylinder方法创建圆柱模型。具体代码如下。
用该方式制作管线数据模型需要管线的属性数据, 比如:管线起止点的x、y、z方向上的坐标、管径、透明度、截面多边形面数、线条颜色、填充颜色、管线名称。该制作方式是以管线的坐标数据为基础进而在三维场景中生成管线数据模型, 所以用该方式生成的模型的位置极为精准, 可用以主要管线的生成, 对整个管网图层的在三维场景中的位置进行控制。该方式的不足之处为:需要逐个输入属性数据, 较为繁琐, 只适用于少数模型的生成。
3.2 多软件平台协作制作管线数据模型
3.2.1 AutoCAD+ArcGIS+3dsMax生成管线数据模型
在AutoCAD中对地形图进行处理, 对不需要的线进行删减, 减少数据量, 只剩下主要并清晰的管线线条, 将数据导入到Arc GIS中进行拓扑检查, 对管线线条中的断、超、重情况进行修正处理, 以保证后面的建模可以顺利进行。
将AutoCAD数据导入到3ds Max中进行建模。将导入场景中的数据的scale值设为1, 建模时数据的小数点前或后的位数不应太多, 以提高运行速度, 对于所建的模型要进行优化, 在维持模型显示效果的前提下, 使用尽可能少的点、线、面和多边形。模型完成之后需对模型进行塌陷, 并防止平移、旋转等操作时出现问题然后将模型的坐标值归零。最后在3DMAX中使用PandaD XExport插件导出.X文件。该方法需要多个软件平台协作, 流程复杂, 制作繁琐, 但可以用来制作较为精细的模型, 比如管点和附属设施。
3.2.2 管线数据模型手动方式加载
TerraExplorer pro具有加载三维模型的功能, 系统的工具箱提供了Load 3D Mo del工具将三维模型加载到三维场景中。将导入场景中的模型的scale值设为1, 保持模型的实际尺寸。鼠标在TerraExplorer pro场景中的点击位置即为模型的加载位置, 但鼠标点击位置往往不是模型的实际位置, 需要对模型进行移动。
3.2.3 基于A rcGIS shp文件的管线数据模型流方式加载
对于数量较少的模型以手动方式加载较为快捷, 如果要加载较多数量的模型, 则采用流方式进行加载, 具体步骤如下。
将所有模型的X, Y点坐标获取输出成txt文本, 同时添加相应模型名称字段和模型编号。将txt文本导入Arcgis制作点shp文件, 并加以投影。对点shp文件进行剪辑, 增加模型保存路径字段如D:tempskylin e�****.x。
TerraExplorer pro具有加载三维模型的功能, 系统的工具箱提供了load featuerl ayer工具将shp文件加载到三维场景中。将导入场景中的模型的scale值设为1, 保持模型的实际尺寸。
4 管线数据模型制作方式整合
由上文可知, 管线数据模型制作有多种方式, 且各有优缺点。如果要制作一个高精度的完整的管线系统, 就需要对上述各种制作方式进行整合, 在不同的情况下使用不同的制作方式, 以达到快捷、方便和精准的效果。管线数据模型的制作流程一般分为三个阶段如图1所示:流程一, 使用sky line软件二次开发工具制作主要管线数据模型, 因为该建模方式精度较高, 适合主要管线的生成, 从而对整个管网图层的在三维场景中的位置进行控制;流程二, 选择简单快捷的skyline系统工具箱制作次要管线数据模型, 对管网系统进行补充;流程三, 需要对管点和附属设施进行建模, 故采用能够精细建模的多软件平台协作的方式。整体效果图如图2所示。
5 结语
城市信息化建设的步伐逐渐加快, 各大中城市都加强数字城市建设的投入, 城市管线作为城市发展的命脉, 在城市规划建设和日常安全建设中的作用不可忽视。我们相信三维管线数据模型制作技术将在城市管线信息化建设中发挥更大的优势。
参考文献
[1]《城市地下管线探测技术书册》编写委员会.城市地下管线探测技术书册[M].北京:中国建筑工业出版社, 1998.
[2]毛坤德, 刘俊林, 周园.三维地下管网管理系统研究与开发[J].城市勘测, 2007, 6 (6) :36~3 7.
Skyline论文 篇7
随着数据库技术及数据库管理系统的广泛应用, 数据库存储的数据量急剧增加, 如何从庞大的数据中找出人们最感兴趣或最关心的信息, 成为了一项重要的研究课题。作为一种方法skyline计算就是从一个数据库中找出不被其他任何数据对象支配的数据对象集合。所谓的支配, 即假设数据点p支配点q, 当且仅当p在任意维度上的取值都不比q差, 且至少在一个维度上比q更好。因为在目标决策、数据挖掘方面的潜在应用, skyline计算引起了越来越多研究者的关注。
在绝大多数数据库中, 用户和目的点 (用户可选择的目标) 都分布在数据库中。假设数据是随机分布在一张数据网上, 查询指导用户从出发点到达目的点, 从出发点到目的点之间的路径的长度就是它们的成本, 传统的算法, 例如分治算法 (Divide-and-Conquer, D&C) 、最近临近算法 (Nearest Neighbor, NN) 、分枝界限算法 (Brance-and-Bound skyline, BBS) 索引算法 (Index) 、排序过滤算法 (Sort-Filter-Skyline, SFS) , 都可以计算哪条路径成本最小。
但是这些算法都只是考虑用户的一种成本, 但是在现实中, 存在多种成本共同影响用户决策的现象。例如从家去单位上班选择什么途径就是多重成本共同作用的结果。假设成本有: (1) 时间、 (2) 费用、 (3) 天气、 (4) 路况等等。可供选择的途径有: (1) 做公交车、 (2) 骑自行车、 (3) 坐地铁、 (4) 出租车、 (5) 步行。假设今天起得早、天气好, 也许会选择骑自行车或者步行去单位, 而如果起得早但天气情况很恶劣 (时间成本和天气成本) , 也许就要选择公交车或者地铁了。同理如果起的晚了 (注重时间成本) , 就会选择打车去单位争取不迟到, 但如果同时考虑路面上早高峰拥堵情况的话 (时间成本和路况成本) , 打车不见得比坐地铁时间快。所以通常人们在决定一件事情的时候往往不是由一种成本所能决定的, 而是由多种成本共同作用的结果。
介绍了倾向查询的例子, 结合skyline来看, 如果有一种方案无论在哪个成本上都比其他的方案优秀, 那就可以说该方案支配其它的方案, 但现实往往是不可能找出在任何方面都强于其它方案的方案, 因为每个方案的侧重点不同, 因此需要用到skyline理论来列出候选的点 (不受其它方案支配的点) 来供用户选择。
虽然倾向查询在应用上很普遍, 但是到目前为止这方面的相关文献很少, 因此, 本文中总结了相关的skyline方法, 并且结合Kyriakos M等人提出的算法来解决多成本偏好查询的问题。
问题构建
在这一节中, 构建问题和查询方案, 假设数据是以图的形式存储在计算机上的, 起始点和目标点随机分布在图中。
多成本网络 (Multi-cost network, MCN) :用G={V, E, W}来表示, 其中V表示点的集合, E代表边, W代表每条边上的成本, 因为每条边的成本种类有许多种 (例如:长度, 花费, 时间等等) , 所以用一种向量机制w (e) 表示, w (e) ={w1, w2, …, wi}, 其中wi (for i=1 to d) 。为了简化用
目标点集P:P中包含全部的目标点, P中的所有点均在图中的某条边上。如果某个目标点在某条边上, 它的权值就是分别从这个点到两个端点的值 (它们的和就是整条边的权值) 。
最短路径和最短成本向量:假设有一个查询从起点q到p, 用si (q, p) 来表示q到p的最小成本, 其中i表示各种成本中的第i个, 并且用ci (q, p) 表示各种成本相加的总的成本。例如, s1 (q, p) 是q到p的欧几里得长度 (c1 (q, p) 是欧几里得长度的总和) , s2 (q, p) 表示q到p的步行时间 (c2 (q, p) 是总的步行时间) 。
MCN skyline:在MCN中, skyline (q) 包含那些不被其它p’支配的点p, 如果p支配p’, 当且仅当ci (q, p) ≤ci (q, p’) , 才能成立。
最后, 假设图中所有的数据都存放在如图1所示的结构中, Adj tree中存放图中各个点, 每个点 (假设为vi) 指向一个相邻文件 (Adjacency file) 在这个文件中存放着与vi有边相连点 (假设为vj) 及边
传统寻找目标点的算法是从起始点q开始对每个目标点p进行d (成本类型数量) 次拓展, 之后再计算c (p) , 但是这种算法的缺点是要进入储存目标点的数据文件d次, 从而导致I/O时间过长。根据skyline的性质, skyline目标点集合sky (q) 应该是起始点q周围的一些点, 所以提出了局部搜索算法 (Local Search Algorithm, LSA) 。
1、局部搜索算法 (Local Search Algorithm, LSA)
LSA算法最主要特征是拓展成本d的同时削减搜索空间。并且在没有新的skyline目标点出现时停止算法。LSA算法开始用最近临近算法 (Nearest Neighbor, NN) 来拓展起始点q中的每一种成本, 从而找到每个成本的目标点。LSA算法经历两个阶段:增长阶段与收缩阶段。
增长阶段:在增长段中, 候选的skyline目标点被识别出。假定我们关心的成本有d个, 那么算法在每一个成本中找出下一个最近的目标点, 之后转到下一个成本。每一个成本找到的候选目标点都放入skyline候选集CS (Candidate Set) 中。这个过程直到第一个目标点被“选定”。所谓的“选定”是指一个目标点p被d中的每一个成本都找到了, 这就意味着目标点p的所有成本都被计算过了。
举一个例子来说明局部搜索算法在增长阶段是如何进行的。如图3所示, 假设d=2, 即我们关心的成本有两种 (C1, C2) , 图中有点p1-p5, 分布如右图所示, 其中横轴代表成本C1, 纵轴代表成本C2。从左图中我们可以看出找到每个成本的顺序。首先搜索成本C1, 找到最近的点p1, 并将p1放入候选目标集 (CS) 中, 之后搜索C2, 找到p5点, 因为p5没有在目标集CS中, 所以将它放入。算法持续这种成本交替查找过程, 直到p3被“选定” (p3第一次被C2找到, 第二次被C1找到) 。增长阶段到这里结束, 并且候选目标集CS={p1, p2, p3, p5}, 右图中的水平、垂直虚线 (如p3) 表示扩展的边界。
被选定的点可以直接作为skyline目标点的一部分输出。在例子中, 选定的点是p3, p3点只能被浅灰色区域中的点支配, 但是在图中, 浅灰色区域中是空的, 假设不空, 那么在p3点被选定之前, 浅灰色区域中的点就会被选定了。因此p3是一个skyline点。另外, 通过skyline点的定义, 选定的点 (p3) 不能支配候选集中CS的点 (p1, p2, p5) 因为在CS中的点至少有一个成本比选定点 (p3) 的成本类型好。
当第一个目标点被选定之后, 除了CS中的点, 其它的点都可以不用考虑了, 因为它们可以保证被选定点所支配。再次看一下图3, 深灰色区域就是被p3支配的区域, 任何在此区域中的目标点 (如p4) , 都被p3支配。因为C1、C2已经扩展了全部的区域, 任何可能的不被选定点支配的目标点全部放入了CS中。剩下的问题就是从CS中决定那些是skyline目标点, 这些是在收缩段要解决的。
收缩阶段:在收缩阶段中, 找出并确定每一个skyline点, 和前边增长阶段的区别是它只处理CS中的不被选定点支配的其它目标点, 如果CS中的点p因为第i个成本类型的扩展被找出, 那LSA算法就记录ci (p) , 如果p被所有的成本类型找出, 之后要做两点:1、将它作为skyline目标点输出给用户。2、检查CS中是否有被p支配的点, 如果有就从CS中删除该点。收缩阶段当CS中没有候选点时结束。
继续刚才的例子, 选定p3之后, C2找到p1 (p1已经在CS中) , 并且选定它, 因为在C1、C2上, p1的所有成本类型都已经知道了。所以p1作为skyline点可以输出给用户, sky (q) ={p3, p1}。之后检查CS中剩下的点p2和p5是否被p1支配。C1 (p2) 知道, 并且它大于C1 (p1) , 而C2 (p2) 我们还不知道 (因为C2的拓展还没有找到p2) , 但是我们可以确定它不会比C2 (p1) 小。因为C2拓展是线序的, C1 (p1)
之后轮到C1扩展, 它找到p4, 但是p4不属于CS所以淘汰, 之后下一个是p5, 选定p5并且sky (q) ={p3, p1, p5}, 现在CS中没有候选点了, 算法结束。
根据LSA算法的内在性质可以提高程序运行的性能。首先, 根据定义可以看出, 在d中每一个成本类型中第一个找到的目标点不可能被其它的目标点所支配, 因为该目标点至少有一个维度上的值是最优的。因此, 我们可以把每个成本类型中第一个找到的目标点作为skyline点直接输出。利用这个性质, 我们可以减少候选目标集CS中元素的个数, 从而使LSA算法更早结束。在图3中, p1、p5, 可以被直接作为skyline目标点输出, 因此, 在增长段结束时, CS中只剩下p2。
通过以上的介绍我们可以看出, LSA算法是一种在二维或多维坐标轴中找出skyline点的比较好的方法, 但是在现实的网络中, 利用LSA算法开销还是比较大的, 这主要是因为查找的目标点通常都是分散在图中, 目标点和起始点之间利用通路和节点相连接, 起始点、目标点、节点和边的信息是以问题构建中图2的形式存储在机器中的, 可以想象到, 利用LSA方法, 在查找每一个成本类型时, 都要读取机器中的信息, 这造成了较大的IO操作, 降低了算法的效率。实例请看下图5。
在图5中, 从q点出发寻找目标点的过程中, LSA算法的前提需要先计算出每一个目标点的各个成本。利用传统的算法从q点出发, 先计算各个目标点的时间成本, 之后再计算各个目标点的距离成本, 在两种成本都知道的情况下, 最后利用LSA算法求出skyline点。
通过上边介绍可以看出LSA算法在I/O上开销比较大, 尤其是在扩展成本类型中读取邻接点和目标点所在的边时, 要多次从磁盘文件中读取数据 (次数取决于d) 。因此在此算法的基础上提出了联合拓展算法 (Combined Expansion Algorithm, CEA) , 该算法保证了每一个节点和边的读取次数不会超过一次。
2、联合拓展算法 (Combined Expansion Algorithm, CEA)
假设图中所有的数据的存储格式如图2所示, 搜索成本C1时, 每当拓展到一个新的节点 (或目标点) 时, 读取该节点 (或目标点) 的全部信息, 不仅包括与C1成本相关的, 还包括该节点 (或目标点) 其它成本的信息, 并将他们存入相应的数据结构中。
如果拓展C1时找到一个目标点, 就暂停C1的拓展, 开始搜索成本C2, 当C2找到一个目标点时, 暂停C2的拓展, 开始搜索C3, 在搜索中, 每当成本找到一个目标点就把该目标点放入CS中 (如果该目标点已在CS中, 则该目标点的此项成本标记一下) , 一直循环此过程, 当所有的成本都找到同一个目标点后 (也就是选定了一个目标点) , CS中的点就是skyline点的候选点。之后我们再利用上文里说的方法淘汰掉CS中那些被其他候选点支配的点, 并将最后剩下的目标点返回给用户。
结合图5的例子来分析一下CEA算法, 假设成本C1为路程, C2为所用时间。从q点开始, 首先拓展成本C1, 与q邻接的v1, v2, v6, 分别为3km, 2km, 4km, 根据算法要求, 将v1, v2, v6, 三个邻接点的所有信息都存入相应的数据结构中, 之后沿着路程最短的v2继续拓展, 找到v7, 并将v7点的所有信息存入相应的数据结构中, 之后利用最近临近算法 (Nearest Neighbor, NN) 继续拓展各个邻接点, 找到目标点p2, 将p2放入CS中, 暂停C1的拓展, 开始C2, 因为在C1拓展中, v1, v2, v6, v7等等点的信息已经取得并存入了相应的数据结构中, 所以C2拓展时不需要在进入文件中读取信息, 提高了程序运行的速度, 当遇到的邻接点是C1拓展时没有读取的情况时, 程序进入该点读取全部信息并存入相应的数据结构中, 最后C2找到目标点p3, 并放入CS中, 之后暂停C2的拓展从新开始C1, 如此循环, 最终C1, C2拓展选定p4点, CS={p2, p3, p4}, 之后利用LSA中收缩阶段的算法来确定那些点作为skyline点输出给用户。
实验
实验选取San joaquin公路网来测试LSA与CEA这两种算法。 (资源自”http://iapg.jade-hs.de/personen/brinkhoff/generator/”取得)
在该公路网中, 包含约16830个点及22000条边, 为了满足实验要求, 在公路网中利用高斯分布在10个随机点周围生成目标点。这么做的主要原因是模拟现实中的城市, 因为在现实的城市中, 实现某一目的的设施或服务通常都是集中在一定区域中的, 以北京为例, 电子及高新技术产业主要集中在中关村, 大型金融企业主要集中在西二环金融街, 高等学府主要在海淀区等等。定义每条边的成本类型数量d, 其中d∈[2…5], 默认d=4。同时根据每条边的成本特点, 将边分为独立的、关联的、不关联的三种, 其中独立的是指边的各个成本取值是完全随机的。不关联的是指某一个成本取值低, 其余的成本相比就比较高。关联的是指某一个成本低, 其它的成本也比较低。最后, 因为处理的数据较大, 利用最近最久未使用算法 (LRU) 来管理内存, 设置缓冲区大小为整个San joaquin公路网所占存储空间的1%—4%, 默认2%。每次测试, 更改上述参数中的一种来计算总的时间 (包括I/O和CUP处理时间) 。
1、实验环境
硬件平台:
CPU:Intel Core i5-3450
内存:Kingston 4GB DDR3 1333 (KVR1333D3N9/4G)
硬盘:Seagate 1TB 7200转64M SATA2 (ST1000DM003)
软件平台:
操作系统:Windows 7 Professional
程序设计语言:Java
JDK版本:JDK1.6
2、实验结果
图7显示了目标点P的数量对查询时间的影响, 在实验中, P的数量取值在2500到20000之间, 从图中可以看出, LSA与CEA的查询时间与P成反比的关系, 这是因为在目标点较少的情况下, 算法需要拓展较多的边来寻找可能的点。随着设定目标点的增多, 拓展边的时间减少, 但在P大于10000以上时, 变化趋势减缓, 这是因为整个网络总节点数所限。
图8显示了成本d的数量对于查询时间的影响, 不出所料地, 随着d的增加, 两种算法查询需要的时间增加, 这是因为1、随着d的增加, 要进行更多的拓展。2、目标点候选集CS中的点越来越多, 固定第一个skyline点的时间增加。
图9显示了每条边上成本分布类型对时间的影响。从图中可以看出, 两种算法在不关联类型的成本下, 运行时间最长, 这是因为, 算法计算一种成本时距离某个目标点很近, 但在查询其它成本时对于该目标点很远。
这导致了有较大的skyline点候选集CS, 并且很难确定第一个skyline点。相反的, 对于关联类型成本下, 两种算法所用时间最短, 因为算法计算一种成本时距离某个目标点很近, 在查询该点其他成本时距离也很近, 因此能很快找出第一个skyline点, 同时, CS也不会很大。
图10表示了缓冲区大小对于计算时间的影响, 从图中可以看出, 随着缓冲区的增大, 两种算法所用时间都逐渐变小, 但观察图可以看出, 缓冲区的大小对于LSA算法的影响更大, 因为相比于CEA, LSA算法要求更多的I/O操作, 因此, 有较大的缓冲区, 可以存储更多的数据资料, 从而减少IO操作。
Skyline论文 篇8
GIS是处理空间信息的强大工具, 已在资源、环境、石油、电力、市政管理、城市规划等众多领域发挥着巨大作用。当前GIS的研究成果和应用系统主要集中于描述二维空间信息, 各项技术已较为成熟。但由于二维地理信息系统将实际的三维事物采用二维的方式表示, 具有很大的局限性, 大量的多维空间信息无法得到利用, 不能给人以自然界的本原感受。随着计算机图形学和硬件技术的迅猛推进, 三维GIS 成为当今GIS 发展的重要趋势。由于水环境信息流域性的分布, 需要强有力的GIS支持。本文旨在研究基于Skyline软件构建太湖流域水环境三维GIS系统。
2 Skyline软件结构及功能
本系统采用Skyline作为三维GIS平台, Skyline是目前国际上应用最广泛、技术最领先的三维GIS平台, 由TerraBuilder、TerraExplorer Pro和TerraGatesare三个相互独立的子系统构成, 分别实现数据合成、数据发布、数据展示三大功能。
Terra Builder用于融合大量的影像、高程和矢量数据, 以此来创建有精确坐标的三维模型地形数据库, 为三维地理信息系统提供基础地形数据。Terra Builder通过叠加航片、卫星影像、地形数据、数字高程模型以及各种矢量地理数据, 可以迅速方便地创建海量3D地形数据库。
TerraGate是一种强大的网络数据服务器技术, 用来管理如何同时传输海量数字地形数据到众多终端用户。其提供了一个平台来启动由Terra Builder及Terra Explorer Pro创建的很多应用, 并且提供了数字地球接入功能, 使得众多网络应用具有了地理信息参考的功能。该服务器软件与一般视频流的主要区别在于, 能在互联网上通过可变带宽来无缝接入, 而不会受到网络连接的反应时间或中断的影响。
TerraDeveloper软件开发工具以ActiveX控件形式提供丰富的应用客户化定制功能。开发人员可在TerraExplorer Pro环境中, 利用TerraDeveloper开发工具, 集成TerraExplorer Pro软件系统的全部功能, 开发自己的3D可视化应用系统。客户化开发的系统可以是应用程序, 也可以以HTML网页形式实现。TerraDeveloper可以为基于台式机、笔记本、网络或无线解决方案的PC机应用系统扩充强大的三维地理空间处理接口功能。
3 系统设计
太湖流域水环境三维GIS系统综合应用了空间三维技术与GIS技术, 对太湖流域水环境监测信息进行模拟仿真, 实现多视角、多层次的三维显示, 同时实现了地形模型与用户的交互访问。系统包括三个方面的内容:流域数据中心、三维可视化场景、集成系统平台。
(1) 水环境数据中心:
由太湖流域水环境监测数据、污染源数据、主要比例尺基础地理空间数据、环境要素地理空间数据、卫星遥感正射影像数据、航空遥感正射影像数据、三维地形数据组成。
(2) 三维可视化场景:
利用三维GIS平台Skyline实现在太湖流域高精度三维电子地图上的信息发布展示功能, 根据太湖流域航空影像、卫星数据、数字高程模型创建太湖流域三维地形景观数据库, 创建三维交互式环境, 为太湖流域水环境信息的立体化分析和空间展现提供支持。
(3) 集成系统平台:
系统采用Bs结构, 应用.net 2008调用组件、开发包开发三维GIS系统, 实现三维地理信息的任意浏览、自动飞行、监测点位分布展示、三维模型叠加显示等功能, 要求具有与数据的集成交互功能, 能通过三维GIS操作直接完成对数据、视频、报表等信息的查阅。
4 三维场景的实现
在本系统中, 我们通过收集资料、数据预处理、建立三维地形、精确建模、系统集成等一系列步骤建立太湖流域水环境三维场景。Skyine软件使用方面, 主要是采用TerraBuilder产品融合完成太湖流域高精度的影像和高程数据, 采用TerraGate实现三维地理数据的网络化发布, 采用TerraDeveloper的ActiveX控件接口在客户端实现基于Web方式的三维浏览。
4.1 三维地形数据建立
太湖流域水环境三维地形数据的建立需要高程数据、矢量数据、航空和卫星影像数据四类。航空和卫星影像数据经过坐标系的确定与配置、投影转换、金字塔生成、数据加载、黑边处理、白边处理、影像裁剪等处理过程, 最终叠加矢量数据和高程数据合成三维地形数据。影像数据坐标系的配置可以用ArcGIS软件来实现, 其余过程主要用三维地理数据加工软件Skyline TerraBuilder来实现。利用TerraBuilder可融合太湖流域大量的影象、高程和矢量数据, 以此来创建有精确坐标的太湖流域三维模型地形数据。
4.2 三维建筑物模型建立
在环境自动监控应用中, 除了地形地貌等地理信息以外, 还需要尽可能逼真地展现监控现场 (如污染源、自动站等) 的所处位置和空间布局, 而这些信息在三维地理数据中是不包含的, 必须依靠三维建模技术来实现在数字空间中对真实世界的模拟。
为更逼真地展示监控现场的情况, 本系统采用了几何造型结合图像的建模方法, 以矢量图形为基础, 综合使用建筑物的轮廓、颜色、纹理、阴影等信息, 既有效提高建模精度, 又能合理控制模型文件的大小, 保证了展示效果。在3DMAX中的数据处理工作包括贴图处理、三维建模、纹理映射以及数据导出四个部分。
4.3 三维GIS系统集成
完成三维地形数据和建筑物模型建立后, 我们在net.2008环境下调用SkyLine组建进行系统的开发。在开发过程中通过复调试系减少系统运行错误, 确保系统运行的正确性、可靠性和稳定性。利用Skyline组件进行开发, 可获取其所提供的三维可视化功能, 并通过不同的视角流域水环境空间数据、地形数据和业务数据进行查询, 进行三维动画模拟, 主要包括以下功能:
(1) 基本功能。包括地图放大、缩小、平移、鹰眼导航、全图显示、回到初始视野、测量距离/面积、图层控制、图例, 这些为GIS的基本功能, 查询和空间分析工具不包含在内, 结合业务分别阐述。
(2) 浏览功能。支持在三维可视化场景中进行多模式飞行, 包括自由飞行、转向、升降、调速等, 同时对感兴趣的区域进行路径定制播放。
(3) 动态标注功能。三维可视化系统会将各测点监测到的重要数据动态实时的在图中显示出来, 优先显示测点中检测到的超标指标, 并以红色高亮显示。
(4) 查询功能。系统对三维地形数据和业务数据库进行了关联, 在三维可视化GIS中可对场景内的任意节点进行相关属性信息的查询。属性信息可以通过文字、数据、图纸、图像以及多媒体等形式表现出来。
5 系统功能模块
(1) 国家考核断面水质监测。
实现对53个国家考核断面的水质例行监测数据的查询分析, 可对数据进行纵向 (同一断面不同年度) 和横向 (不同断面同一时间段) 的比较分析, 以及查看断面的具体位置、全景照片、视频录像等。
(2) 太湖湖体监测。
实现对21个太湖湖体监测点的数据查询分析功能, 可对数据进行纵向和横向的比较分析, 并可在电子地图上查看最新的污染物空间分布情况、污染时空变化情况。
(3) 水质自动监测。
该模块接收已建的75个水质自动站的最新监测数据和水面及站房内的实时视频, 可对指定时间段的日平均和月平均数据进行统计查询分析, 可在电子地图上显示站房的三维模型和全景照片。
(4) 重点污染源自动监控。
利用标准数据交换协议, 实时接收282家国 (省) 控重点污染源自动监控系统的监测数据, 包括137家工业废水污染源和145家污水处理厂, 主要功能包括:污染源信息查询、监测数据查询、实时视频监控、企业三维模型、全景照片和360度视频展示、排污口阀门远程控制等。
(5) 主要入湖河流环境规划。
可对15条主要入湖河流进行自动巡航飞行, 形象显示河流小流域地形地貌断面、水质站的布设情况, 查看河流详细规划资料。
(6) 蓝藻预警监测。
提供根据蓝藻遥感影像生成和查看蓝藻爆发频率分布图的功能, 可查看每个月度的蓝藻爆发区域, 也可查看每天的遥感影像和全年蓝藻面积的变化趋势。
(7) 排污指标交易。
该模块主要功能包括排污指标申购审核、收费确认、交易申请审核、指标交易及许可证变更、交易监管核查等。
(8) 污染源普查。
利用图表的方式显示污染源普查数据情况, 包括COD、氨氮、总磷、总氮等指标排放量, 分地区排放量统计结果, 工业源、农业源、生活源对区域污染的贡献等。
(9) 涉太部门信息共享对接。
展示与其他涉太部门的数据交换共享成果, 主要包括水利部门提供的引江济太调水通道监测数据和引排水量、太湖每日水位、气象部门提供的每日气象监测资料, 以及其他涉太部门的数据对接。
6 结语
【Skyline论文】推荐阅读:
Skyline服务08-06