前言:中文期刊网精心挑选了数据可视化范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
数据可视化范文1
中图分类号:TP39 文献标识码:A 文章编号:1006-0278(2014)07-172-01
一、大数据概述
巨量资料(big data),或称大数据、海量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。大数据的4V特点:Volume、Velocity、Variety、Veracity。“大数据”是由数量巨大、结构复杂、类型众多数据构成的数据集合,是基于云计算的数据处理与应用模式,通过数据的整合共享,交叉复用,形成的智力资源和知识服务能力。
二、可视化数据与大数据
数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。但是,这并不就意味着,数据可视化就一定因为要实现其功能用途而令人感到枯燥乏味,或者是为了看上去绚丽多彩而显得极端复杂。
三、可视化数据方法的工具
目前可用的数据可视化工具大约有上百种,但适合处理大数据的工具并不太多,约有20余种,以下简单介绍几种常用工具:
(一)简易数据处理工具
Excel的图形化功能并不强大,但Excel是分析数据的理想工具,它也能创建供内部使用的数据图,但是Excel在颜色、线条和样式上可选择的范围有限,这也意味着用Excel很难制作出能符合专业出版物和网站需要的数据图。
CSV(逗号分隔值)和JSON(JavaScript对象注释)虽然并不是真正的可视化工具,但却是常见的数据格式。你必须理解他们的结构,并懂得如何从这些文件中导入或者导出数据。以下将要介绍的所有数据可视化工具都支持CSV、JSON中至少一种格式。
Google Chart API工具集中取消了静态图片功能,目前只提供动态图表工具。能够在所有支持SVG\Canvas和VML的浏览器中使用,但是GoogleChart的一个大问题是:图表在客户端生成,这意味着那些不支持JavaScript的设备将无法使用,此外也无法离线使用或者将结果另存其他格式,之前的静态图片就不存在这个问题。尽管存在上述问题,不可否认的是Google Chart API的功能异常丰富,如果没有特别的定制化需要,或者对Google视觉风格的抵触,那么你大可以从Google Chart开始。
D3(Data Driven Documents)是支持SVG渲染的另一种JavaScript库。但是D3能够提供大量线性图和条形图之外的复杂图表样式,例如Voronoi图、树形图、圆形集群和单词云等。虽然D3能够提供非常花哨的互动图表,但你在选择数据可视化工具时,需要牢记的一点是:知道在何时保持简洁。
(二)进阶数据处理工具
作为用来分析大数据集的统计组件包,R是一个非常复杂的工具,需要较长的学习实践,学习曲线也是本文所介绍工具中最陡峭的。但是R拥有强大的社区和组件库,而且还在不断成长。当你能驾驭R的时候,一切付出都是物有所值的。
Processing是数据可视化的招牌工具。你只需要编写一些简单的代码,然后编译成Java。目前还有一个Processing.is.项目,可以让网站在没有Java Applets的情况下更容易地使用Processing。由于端口支持Obiective-C,你也可以在iOS上使用Processing。虽然Processing是一个桌面应用,但也可以在几乎所有平台上运行,此外经过数年发展,Processing社区目前已近拥有大量实例和代码。
四、针对大数据的可视化数据方法的使用
针对不同的大数据体系和数据结构,我们可以选择以上所介绍的几种工具来使用,不同的工具使用技巧和难度迥异,然而如何在适当的数据面前使用适当的工具来处理也是一个不小的难题。我们应当针对不同的问题和数据的使用效率来决定使用哪种工具。例如:需要统计一个地区的年温度数据并可视化的时候,我们可以使用D3(DataDrivenDocuments)来进行处理,然而如果需要统计全球的温度数据并按时间序列排布且能进行动态化演示的时候,我们就需要类似Open-Layers的工具来达成目的了。
五、结论
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。通过一定的可视化数据方法,我们可以很有效的对大数据进行深入加工,从而获得数据中的潜在信息。
从某种程度上说,大数据是数据分析的前沿技术。简言之,从各种各样类型的数据中,快速获得有价值信息的能力,就是大数据技术,也是大数据的可视化方法最有价值的一点。明白这一点至关重要,也正是这一点促使该技术具备走向众多企业的潜力。
参考文献:
[1]维克托・迈尔-舍尔维恩,肯尼斯・库克耶.大数据时代[M].浙江人民出版社,2013.
[2]弗莱(Fry.B).可视化数据[M].电子工业出版社,2009.
数据可视化范文2
关键词:网络安全;安全可视化;发展现状;发展趋势
中图分类号:TP393.08
计算机网络安全问题产生于20世纪后半叶,人们在享受网络所带来的快捷与方便的同时,也需要承担风险,所以目前为止,网络安全性已经成为网络建设与管理的重要考核指标.
人们提出了许多安全防范措施和检测措施去解决网络安全问题,例如安全网关、防火墙等都解决了一定程度上的安全问题,但随着网络规模达扩大以及各种网络攻击越来越复杂,各种问题也相应出现,为此,本文提出了网络安全数据可视化的研究,能够涵盖网络中现有的多种安全设备,与传统的网络安全产品有着本质的不同。
1 网络安全可视化的必要性以及传统安全防御模式的缺陷
随着网络的不断扩大,科技的快速发展,用户对网络安全性能的要求也越来越高。目前所使用的大部分网络安全产品,不管是异常检测还是日志的分析,全是在网络安全受到攻击后才能够做出的反应。也就是说在确定安全已被破坏,已经造成一定危害的情况下,对安全漏洞进行“补丁”的表现。这也就相当于“亡羊补牢”。对于防御者来说,一直处于被动状态,给攻击者时间,受到或深或浅的伤害后才会有所行动,这无异于雪上加霜。随着网络数据量的快速增长,出现的攻击类型越来越多,越来越复杂,网络安全岌岌可危,现有的网络安全产品也仅仅只是对安全领域的小部分进行防护,但无法真正起到防御的作用。漏洞修复只负责对网络中明显存在的漏洞进行修补,防火墙检测内部网络的行为异常以及外部网络的访问状况,IDS也只是负责外部网络对内网攻击行为的检测,它们各尽其职,看起来兢兢业业,却对彼此陌生,没有互动,这也就给网络安全的维护人员带来了麻烦,同时也让攻击者有机可乘。不仅如此,安全产品的漏报率也是影响其性能的主要因素,较高的漏报率影响了网络安全维护人员的判断和分析。
针对安全产品的种种不足,人们纷纷提出了很多方法去解决和完善,却都无法从根本上解决问题,因此提出来网络安全数据可视化的研究,多方面对安全防护问题进行完善。
2 网络安全数据可视化技术
2.1 科学计算可视化。科学计算可视化早在1986年10月美国国家自然科学基金会特别专家就提出了,第二年以报告为标志作为一门学科正式宣布诞生。科学计算可视化(简称可视化,英文是Visualizationin Scientific Computing,简称ViSC)做为图形科学的新领域,成为计算机图形学的一个重要研究方向。科学计算可视化的基本含义是将科学与工程计算等产生的大规模数据,通过运用一般图形学的方法和原理或者计算机图形学转换为图形、图像,以直观的形式呈现在人们面前,不仅可以让人们看到原来看不见的现象,还提供了模拟与计算的视觉交互手段。
2.2 信息可视化。在可视化领域中出现的一个新的研究分支信息可视化,其在现实生活中占据着越来越重要的地位。出现信息可视化的原因数字是数字化带来的庞大的信息和数据库是由于日益渐增的海量数据和网络技术所造成的。信息可视化是一个首在研究大规模非数值型信息资源的视觉呈现的一个跨科学领域,人们理解和分析数据受到了软件系统之中众多文件或者一行的程序代码,以及利用图形技术的科学方法的帮助,数据可视化、信息图形学、知识可视化、科学可视化以及视觉设计都被信息可视化这条术语所囊括。表格、图形、地图甚至包括文本在内,如果加以充分适当的整理,无论静态或动态。不仅能让我们理解其他形式情况下不易发觉的事,让我们洞察其中的问题发现关系并找出答案。创建那些以直观方式传达抽象信息的手段和方法,是信息可视化的重点,利用人类的眼睛通往心灵深处的广阔优势是可视化的表达形式与交互技术。
2.3 数据挖掘与可视化。可视化数据挖掘是理解交互数据挖掘算法、采用可视化的检查。可视化模型自模拟阶段的变换过程为:数据预处理、映射、绘制、图像处理、显示。利用数据可视化技术,可以完善数据分析性能,发现传统方式无法发现的的异常规律和信息,数据可视化能够让用户了解专业数据、易分析,进而提高用户的观察力。
2.4 安全数据可视化。网络安全数据可视化属于信息可视化的范围,通过以图形图像方式把采集的数据显示在可视化的视图中,通过人工分析、安全评估、数据交互等,挖掘网络数据中包含的安全信息,实现对网络安全数据的可视化显示。网络安全数据可视化是一种将网络数据安全态势的可视化显示,有助于人们对网络安全态势的认识和分析。
3 网络安全可视化方法
3.1 保证网络数据流量安全下的可视化模式。在网络数据流量安全方面,由于端口扫描、服务攻击受阻、系统蠕虫扩散等安全问题的频繁发生,且多呈现为一对一、多对一特性的存在,就促使攻击事件在网络数据流量方面存在异样,同时就显示流量方面来说,合理的对流量进行监控和分析,能够促使网络安全人员更好的对网络系统安全进行维护和防御,其中就网络数据流量安全下的可视化模式而言,其属性大致可分为源IP属性、目的IP属性、协议、数据时间、网络端口、目的端口等几方面。
3.2 网络端口信息安全下的可视化模式。由于黑客在对网络系统进行攻击时通过数据分析,判断目标主机中的那些程序正在运行,一次来发现目标主机中存在的系统漏洞,因此,综上所述对目标主机的端口进行攻击最为常见。
3.3 网络入侵检测技术安全的可视化模式。就目前网络安全来说,网络分析人员会通过对入侵系统的防御和识别模式,来判断网络蠕虫、木马病毒的存在,即入侵系统通过对以存储的网络病毒进行扫描分析匹配,最终通过警示传输给网络系统分析人员,再由其对网络系统进行修复升级。
3.4 网络防火墙时间安全的可视化模式。通过使用防火墙,可将存储在目标主机中的日志信息进行扫描检测分析,同时还可记录目标主机和外界联系的准确时间和操作流程。
4 网络安全数据可视化发展现状
网络安全数据可视化是新的研究领域,它将安全态势与可视化技术的需求结合到了一起,当今国内外的很多研究机构都对此领域展开了研究,并取得了一定的成果。但是,由于日志本身限制了日志数据的可视化,并且实时性不好,上传时间较长,无法满足较高的网络需求。同时由于实际性的问题,当攻击为被检测时,日志有可能会被篡改,导致日志不可信。因此提出来基于数据流的可视化方法,通过对网络流量的实时监控提出网络攻击行为的可视化。
5 发展趋势
网络安全可视化发展经历了一段时间的研究,在内容、形式以及显示结果方面都有了较大的进步。目前可视化软件相对于最初而言有了很大的进步,在显示、处理方面都已经得到了很大的改进,直观性强,操作性能好。由于网络不断地发展,人们对安全性能也越来越重视,对可视化的要求也随之变高。因此,可视化的发展将向以下几个方面完善:(1)显示实时数据;(2)数据多维显示;(3)多源数据可视化;(4)更加直观且具有交互性;(5)预测功能。网络安全数据可视化将随着网络的发展和人们的需求不断发展完善。
6 结束语
网络安全数据可视化的研究还在不断的深入,通过不断的探索研究更多的理论和方法产生,逐渐构建实用完整的网络安全数据可视化系统。不过,目前面临着种种困难,在显示处理大规模网络数据无法有效地、实时的处理,无法自动报警和防御,到目前为止都没有出现一套完整地理论去引导网络安全可视化的研究。当然,随着人们对安全的重视程度的加重,网络安全可视化的研究也会不断深入,不断完善。
参考文献:
[1]王慧强,赖积保,朱亮.网络态势感知系统研究综[J].计算机科学,2006(33):5-10.
数据可视化范文3
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2017)006-0059-04
0 引言
近年来,随着医疗保险领域数据量的日益增多,分析数据日益庞大,且医疗保险涉众广,不同年龄段和不同地区的数据表征和变动特征差异性大[1-2],同时医疗保险采用实收实付制,人工分析很难发现医保数据变化趋势,不易对医保数据进行对比分析和预测。
本文针对医疗保险数据的数据特征,设计并实现了医疗保险数据可视化系统,通过数据可视化展示数据,可及时有效地对医保收支和参保人员数据进行对比分析,掌握其运作情况并作出预测,为医保决策作出有力支撑[3]。
1 相关技术
1.1 Spring MVC
Spring MVC是基于MVC设计模式的请求响应模型的Web框架[4],使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器进行处理。
1.2 Maven
Maven是一个软件项目管理工具,通过简单的描述信息实现对象项目的管理[5]。Maven提供三大功能:依赖管理、项目构建、项目知识管理。
1.3 Vue.js
Vue.js是基于MVVM模式的渐进式框架[6],旨在克服原生的HTML和Javascript构建应用上的不足,采用单文件组件和Vue.js生态系统支持的库开发复杂的单页面应用,数据的双向绑定和组合的视图组件只需要通过简单的API就可以实现。
1.4 Echarts数据可视化技术
Echarts是由百度开发的基于Javascript的数据可视化图表库,提供灵活、直观且交互性强的数据可视化图表。打破了单纯的视图呈现,允许用户对所呈现的数据进行挖掘、整合,让可视化成为辅助人们进行视觉化思维的方式[7]。提供混搭、拖拽重计算、数据视图、动态类型切换、图例开关、数据区域选择、多图联动、子区域地图等功能。
1.5 MyBatis
MyBatis是一个持久层框架,其支持SQL查询和定制、高级映射和存储过程。MyBatits可以通过配置文件将接口和Java普通类映射成数据库中的记录,从而自动获取结果集[8]。
2 系统设计
医保数据采用实收实付制,人工分析很难发现数据变化趋势。本文设计实现一个基于Vue.js+SpringMVC+MyBatis+Maven框架的医疗保险数据可视化系统,从多维度、多层面分析和展示,便于决策者对医保收支作对比并分析数据变化趋势。
系统主体分为3个部分:数据库、服务器和Web客户端[9]。Web客户端向服务器发出HTTP请求,服务器根据不同的请求信息调用业务逻辑从数据库中获取数据,对请求作出相应的响应。系统架构如图1所示。
该系统是基于用户请求响应的框架[10],用户发出请求,前端控制器根据请求信息(如URL)分发给相应的页面控制器,如图2中的步骤1、2。页面控制器接收到请求后,将请求对象委托给业务对象进行处理,通过Mybatis与数据库进行交互,实现数据处理;处理结束后将数据和视图返回到前端控制器,如图2中的步骤3、4、5、6。前端控制器收回控制权,将数据和视图交给 Vue.js,Vue.js将数据绑定到Echarts上,如图2中的步骤7、8;最终前端控制器将获得的数据和页面一并呈现给用户,如图2中的步骤9,至此整个流程结束。
3.2 数据库实现
医疗保险数据由参保人信息、医保收支信息、医保基本信息三大部分组成[2]。参保人信息包括城镇职工、城镇居民。医保收支信息包括医保收入信息、医保支出信息、医保结算信息。同时,医保收入信息又由个人缴费、企业事业缴纳、政府补贴以及利息组成。医保支出信息又分为个人账户支出和统筹账户支出。个人账户支出由用药费、诊断费和检查费构成,统筹账户支出由大病支出和特殊病种支出组成。医保结算信息主要包括医保支出和收入结余及医保收入支出的变化率。医保基本信息主要显示医疗保险规定的个人缴费比例和政府缴费比例等。
通过对以上信息中字段的提取和信息的关联,设计出如图3 所示的EER图,并存于数据库中。其中,u_staff_acc为城镇职工医疗保险结算表,包含统筹基金收入、个人账户收入、统筹基金支出、个人账户支出等字段;u_res_acc为城镇居民医疗保险结算表,包含当年收入、当年支出、当年结余等字段,per_expdetail为个人账户支出明细,包括用药费、诊断费和检查费等字段;whole_expdetail表示统筹账户支出,包含大病支出和特殊病种等字段;income_detail为医疗保险收入明细表;perinfo表示参保人信息,包括性别、年龄、人员类别等字段;all_change为收支变化率表;basicinfo表示医疗保险基本信息包括个人缴费比例、政府缴费比例、退休年龄等字段。
4 应用展示
本网站首页如图4所示,展示了当月累积收入支出、结余、当年参保人员总数、各项相对变化率、首页堆叠折线图,以及当年每??月的收支和结余对比。同时,还将镇江市每个地区预算收支和实际收支以雷达图的形式显示,便于分析出各地区的超支情况。
从整体上,将2007-2015年镇江市医疗保险收支按年份以动态的方式展示,如图5所示。横向对比和纵向深入,纵向挖掘数据规律,对收入较低或者支出较高的年份作深入分析,通过雷达图可以查看此年份医疗保险收入的组成分布。对于收入较低的项,横向通过折线图显示不同年份该项的收入,对于较低的年份,向下钻取数据,以地图的形式来展示各地区的收入情况,从而分析出收入较低的原因,分析预测医保收支。
局部上,通过堆叠条形图显示各类缴费人员(退休人员,在职0~46岁,在职46岁以上)在不同年份月份人数变化[15],如图6所示。结合?t疗保险缴费合计变化,推断出下个月或者下一年医疗保险缴费变化。生成分析对比报告,便于决策人员分析。也可以个人账户支出为例,结合年龄、性别、地区、支出项(用药费、诊断费、检查费等)等多个维度对医疗保险个人账户支出进行可视化展示。对不同年龄段中的相同支出项、不同性别的相同支出项进行展示。
此外,结合性别和年龄两个角度,使用矩阵树图的动态缩放功能,有层次地展示不同性别下不同年龄组的医疗保险收入和支出。
数据可视化范文4
关键词:数据结构;排序;可视化
中图分类号:TP311.5 文献标志码:A 文章编号:1673-291X(2013)29-0253-03
引言
在科学高速发展的21世纪,计算机得到了广泛的应用。在时代的需求下,人们对知识的需求也越来越高。为了人们便于理解和掌握更多复杂的知识,所以可视化技术成为了人们学习复杂知识的工具。那么,什么是可视化呢?可视化(Visualization)是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。它涉及到计算机图形学、图像处理、计算机视觉、计算机辅助设计等多个领域,成为研究数据表示、数据处理、决策分析等一系列问题的综合技术。目前正在飞速发展的虚拟现实技术也是以图形图像的可视化技术为依托的。可视化把数据转换成图形,给予人们深刻与意想不到的洞察力,在很多领域使科学家的研究方式发生了根本变化。可视化技术的应用大至高速飞行模拟,小至分子结构的演示,无处不在。在互联网时代,可视化与网络技术结合使远程可视化服务成为现实,可视区域网络因此应运而生。
数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据结构的实现方式是数据存储结构,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。排序算法是数据结构学科经典的内容,其中内部排序现有的算法有很多种,其中包含冒泡排序,直接插入排序,简单选择排序,希尔排序,快速排序,堆排序等,各有其特点。
一、设计目的
本次我们的创新实践项目就是研究关于数据结构的可视化。简单来说,数据结构可视化就是利用计算机的编程语言将数据结构的内容以动态的方式表现出来。这就为数据结构的学习带来很多的方便,更容易让人们理解。
通过本次实践项目的研究,可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高;可以学习并掌握数据结构与算法计,使学生能够有独立的分析能力和设计能力,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。下面我们重点来讲解一下关于本次研究项目的具体构思和实现方式。
二、具体实现
按要求选择不同的操作。选择后根据不同的选择进行不同的操作,最终达到对各种排序的可视化。系统设计如图1所示。
(一)分析各种排序算法的特点
1.冒泡排序
这是一种较简单的排序方法,它重复地走访要排序的数列,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
2.插入排序
每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。
3.选择排序
它的基本思想是:对待排记录(R1,R2,...,Rn)进行n次选择操作。其中第i次操作是选择第i个小(或大)的记录放在第i个(或n-i+1个)位置上,从而得到一个新的记录数曾1的有序表。
4.快速排序
首先检查数据列表中的数据数,如果小于两个,则直接退出程序。如果有超过两个以上的数据,就选择一个分割点将数据分成两个部分,小于分割点的数据放在一组,其余的放在另一组,然后分别对两组数据排序。
5.希尔排序
先取一个正整数d1
(二)可视化的实现
在界面的排序方法处选择需要的排序方法,然后在数值输入区输入排序的数字,跟据输入数字的大小在界面上会出现用来表示不同数字的不同高度的竖条,点击排序按钮竖条就会根据排序算法来跳动,整个跳动过程会在界面中显示,最后随着排序的完成竖条会停止跳动,最终显示排序结果。例如插入排序(升序)的可视化;在数值输入区里输入以下数值58、37、79、52、64、26、75、52、60、34,界面上会出现高度不一的竖条,然后点击插入排序按钮,58为第一关键字,因为前面没有数值,所以不比较;37为第二关键字与前面的58进行比较小于58,所以58的竖条向后移动到红色竖条的位置;第三关键字是79与前面的37、58进行比较,79大于58,所以竖条不移动。按照此过程进行逐一比较,排序完成后竖条会按照26、34、37、52、52、58、60、64、75、79,的顺序排列在界面上。如果想要完成其他的排序方法,点击重置按钮就然后按照上面的过程就可以。如图2—5所示:
三、结论
数据结构排序算法的可视化将书本上的抽象知识转变为更为容易理解的动态形式,不仅可以为学生减少学习的难度,还可以提高学生的学习积极性,更容易让学生掌握各种排序方法。
参考文献:
[1] 张乃孝.算法与数据结构(C语言描述-第二版)[M].北京:高等教育出版社,2006.
[2] 达尔文(Darwin,F.I).Java经典实例[M].北京:中国电力出版社,2009.
Design of the data structure algorithm visualization
YANG Xiao-bo,ZHANG Lin,ZHANG Long-hui,PANG Shuang-shuang
(Information Engineering College ,Tibet Nationalities University,Xianyang 712082,China)
数据可视化范文5
【关键词】阴影体 数据可视化 贴地绘制 地震带
由于长期稳定的构造条件和应力场的作用,我国地震空间分布较为稳定。但地震活动会随着时间推移不停的发生变化,会存在一些地震问题,如震区抢险救灾,地震预警,震源分析等。如果通过已知地震空间分布区域内地震信息的数据,生成一个地震区域虚拟场景。将地震信息贴地绘制在虚拟场景中,这样就可以很直观的为地震问题的探索和研究提供有价值的参考。
1 问题分析
在虚拟现实技术的实际应用中,有两个重要的过程,建模和渲染。在实际的现实应用中,建模过程一般采用成熟的商业建模来完成。在本文我们可以把模型数据看作是固定的,也就是一个静态过程。那么在这里,虚拟现实技术的实时性和真实性的关键点就在于渲染。
阴影体方法是基于细节层次(LOD)几何技术中的一种延伸,它需要几何形体的轮廓产生一个封闭的容积充当遮挡物,然后根据光源(视点)和遮挡物的位置关系计算出场景中会产生阴影的区域,称之为掩膜。然后对所有物体进行匹配检测,以确定物体会不会受到掩膜的影响。阴影体以屏幕空间为工作空间,可以做到单像素精确,改善效果问题。同时,它独立于底层的地形几何,并利用渲染引擎提高性能,即使是对于高分辨率的数据集也有着广泛的实用性。在独立的地形细节层次几何部分,我们可以最大程度的保证细节层次几何轮廓的清晰,而不用关注其细节。对掩膜范围进行匹配计算后,再对范围内的部分进行渲染。这种处理策略可以很好的应用在我们的问题研究中。
2 阴影体过程步骤描述
阴影体的常见的方法是通过CPU进行遮挡物模型处理,使用纯粹的硬件加速模版阴影体技术,然后在GPU上进行交叉点检测和生成阴影掩膜,根据掩膜进行渲染着色。
常规的过程是在进行光源(视点)测试判断后,我们需要把地震空间数据,构建成模型,然后绘制到模版缓冲区,以生成适当遮挡物。而为了最大限度减少大多面体所引起的高光栅工作量,我们要尽量减小大多面体的尺寸。要达到这个目的,我们要移动所生成遮挡物几何的顶部和底部,使它们朝向地形表面,而两侧则尽可能的接近地形表面但是并不与它相交。在我们的实现中,我们要利用地形渲染引擎中所固有的四叉树包围盒。用包围盒来表示封闭遮挡物几何的上下边界,为遮挡物几何的顶部和底部提供合适的上下边界。
在多边形几何的情况下,我们要使用整个多边形几何封闭包围盒投影的最大和最小高度值,用来表示多边形几何顶部和底部顶点的高度值。所构造的遮挡物几何是被包含在包围盒中的,这是为了确保环绕一致,以便于所有面的法线指向外部。在地震条带面数据不被修改的前提下,所得的每个几何形状对象都是储存在有效的缓存对象中。
在了解阴影体的基本原理和遮挡物之后,我们要计算出以屏幕空间为光源同以地震空间数据模型作为遮挡物的相对位置关系,然后对地形层次几何进行匹配检测,以确定其是否受到影响,对于受影响的部分,生成缓冲区掩膜。
掩膜应用场景必须针对每个对象分别进行,因为每个对象都是允许有不同颜色的。因此,如果直接在模板缓冲区中渲染所有对象,应用生成后会同时渲染屏幕区域,我们无法区分不同对象的颜色。如果只有少数不同的对象颜色在场景中,可以按颜色分类,渲染每个色组。这样可以帮助我们减少需要填充颜色的比率和应对对象状态的改变。根据上文,我们用地震数据模型,参照光源,计算生成了掩膜,下一步把掩膜被渲染到模板缓冲区中。这样就可以得到我们要的效果。
然而在实际情况中,我们其实并不需要进行交叉点检测,因为我们是以地震空间数据为遮挡物,它的数据地理信息是我们详细掌握的,我们可以不用CPU进行交点检测,直接根据数据地理信息生成掩膜,这样最大的优点就是只用一个GPU就可以实现,释放了CPU。因此,在掌握有详细数据的情况下,使用这种策略,可以极大优化性能。
之后使用OpenGL中EXT_stencil_wrap和EXT_stencil_side扩展,目的是为了简化在模版缓冲区中生成掩膜。EXT_stencil_wrap扩展了两个特别的额外模版操作,这两个新的操作类似于现有的递增和递减操作,但是新操作的结果更加的完善,这样可以减少出现因模版缓冲区分辨率不足而导致的阴影结果不正确的情况。EXT_stencil_side扩展提供了双面模版测试,其中模版关系状态可以对应不同的前端面和后端面多边形。使用双面模版测试前后端面可以在单通道渲染,这样可以提高性能。
但这中间也存在一个问题,在出现陡峭斜坡时会略有失真,这是一个普遍问题,当渲染对象应保留斜坡的宽度不变时,对于道路或轮廓线之类而言,它们投影会产生失真。
3 结论
本文阐述了一个阴影体特殊应用策略,能够针对地震条带的矢量数据进行高质量和高效率的实时可视化。该算法不需要特殊的硬件扩展。事实上,它是独立于底层的地形绘制引擎的。并且因为这个算法不受地形几何形状变化的影响,特别适合与视图相关的LOD 相关工作。
(通讯作者:姜保庆)
参考文献
[1]毛华庆.基于GPU优化的三维实时渲染技术的研究[D].武汉:武汉大学,2010.
[2]吴忠.四叉树LOD算法优化及在地形仿真中的应用[D].武汉:华中科技大学,2006.
[3]张勇,王莉.视景仿真系统中实时阴影绘制技术的研究[J].系统仿真学报,2006:180-182+186.
[4]邹志昴.实时阴影绘制算法研究及在城市仿真中的应用[D].武汉:华中科技大学,2007.
作者简介
朱永哲(1992-),男,河南省许昌市人。硕士研究生学位。主要研究方向为计算机图形学。
通讯作者简介
姜保庆(1964-),男,河南省滑县人。博士学位。现为郑州电力高等专科学校教授。主要研究方向为数据挖掘,计算机图形学。
郭朝令(1964-),男,河南省滑县人。高级实验师。主要研究方向为热力发电及可视化技术。
作者单位
数据可视化范文6
关键词:数据结构;可视化;设计
在我国的科学技术得到迅速发展的过程中,科学计算的工作量也开始变得愈来愈大,可视化的方法能够有效的帮助工作人员进行获取更多的信息,从而更为直观的来对计算的结果进行分析。由于受到计算机性能以及软件平台限制,在最初的可视化软件系统方面都是在高性能图形工作站进行发展的,对数据结构可视化类库的设计能够有效的将效率得到提高。
一、数据结构可视化类库设计的重要性及目的
(一)数据结构可视化类库设计的重要性
在使用以及学习数据结构和程序设计过程中,实现数据结构的可视化能够有效的提高对数据结构的直观分析,从而加深理解。在对程序进行调试的过程中,通过数据结构可视化类库能够有效的将编程的效率得以提高。从目前的发展情况来看,已经有了诸多的应用广泛的可视化集成开发环境,其中最为常见的就是Visual C++等,这些可视化的集成开发环境简化了程序界面的设计,对编写界面的程序降低了难度,从而有效的提高了软件的开发效率。
(二)数据结构可视化类库设计的目的
在数据结构可视化类库设计的目的上就是使得JVDSCL能够比较容易的在不同用途中进行应用,这就是要加强其灵活性,JVDSCL能够直接的应用到软件应用程序的开发方面,在开发人员方面也能够通过JVDSCL来进行对新的数据结构进行构造,另外就是加强其可靠性的目的,在这一方面是JVDSCL的最为主要的目的,还有就是面向对象的目的,数据结构是JVDSCL的主要对象,同时算法也是对象,它们保存运行的结果以及提供访问结果的接口。
二、数据结构可视化类库的设计和实现探究
(一)数据结构可视化类库的设计探究。在对数据结构可视化类库进行设计的过程中,要对问题进行综合性的考虑,其中在JVDSCL方面它主要是在Java集合库基础上来进行对原有的数据结构类中进行的扩展,与此同时也在这一过程中添加了相应的较为复杂化的数据结构,最为常见的就是树图。在JVDSCL过程中对可视化数据结构进行构造来实现数据结构的可视化,而这一可视化的数据结构也是在Java集合库当中的原有数据结构类的操作基础上进行的,另外就是增添了一些可视属性以及对可视化的接口进行了提供。在每种数据结构都会有着多种显示的模式,这就需要开发人员进行有机的选择,而在JVDSCL当中,对于每种数据结构会有这多种布局的方法来对其加以布局。
在对数据结构可视化类库进行设计的内容上主要就是基本的可视化接口的设计以及显示模式和布局方法。其中在可视化接口的设计方面,最为主要的接口就是V Collection接口,它不仅是能够提供Collection接口的基本方法,同时也提供可视化接口,在这一内容上主要有 void draw,操作上就是重画指定的数据结构,通过display Mode参数值来决定选用的显示模式,在这一接口中的参数c是表示数据结构所显示的颜色。在显示模式的设计当中,JVDSCL的每种数据结构都会有不相同的显示模式,如下图所表示的两种模式。
另外,在布局的设计上,关于数据结构可视化的关键问题就是图形的布局问题,这对于相关的研究人员对数据结构和算法的效果理解有着非常密切的关系。而在JVDSCL当中的最为主要的就是线性布局的方法以及图布局的方法,针对于每种不同的布局在算法的实现上也是不同的。其中在线性的布局方面,主要是能够适用于队列和线性表的数据结构,在对线性的布局方法上其基本的算法框架就是获取数据的元素个数以及依靠着所显示大小和数据元素个数进行对布局的大小值进行计算。如下图所示。
在图布局的设计方面在算法上是属于二维弹性模型的算法,最为基本的思想就是在二维平面上进行计算。这一方法比较的适合图等数据结构,在JVDSCL当中能够提供的多种算法实现图的可视化,其中有基于遗传模拟退火算法图的三维可视化以及以上所说的二维弹性模拟算法等。可视化技术的主要目的就是来辅助人们增强认知上的能力,而在计算机的可视化技术方面能够将其作为是信息的处理工具,以此来考虑多样化的样本以及变量和联系。
(二)数据结构可视化类库的实现分析。在数据结构的可视化类库的实现方面由于本论文的篇幅有限简要进行讲述,数据结构动态演示系统演示了各种不同算法的数据结构变化的过程,这还需要相关的设计人员在大量的画图操作上得以实现,比如对链表的结点的绘制,对于JVDSCL的应用就不需要自己来编码就能够实现画图的操作,在动态演示系统方面有了很大程度上的层次性提高,在这一过程中设计人员不需对数据结构的布局进行考虑,在JVDSCL自身已经有了布局的功能,只需要根据自身的的需要来进行重写即可实现。另外,在对数据结构中的draw()进行调用也能够有效的实现数据结构的可视化。
三、结语
总而言之,对于数据结构的可视化类库的设计以及实现能够有效的将软件的重用性和扩展性得到提高,在JVDSCL的基础上进行对其加以设计,对软件的开发设计的效率有了明显的提高,在未来我国的软件技术设计水平不断提升的过程中,也定能够在这一领域取得更加优异的设计成果。
参考文献:
[1]杨晓波,陈邦泽.数据结构课程实践教学体系研究[J].实验技术与管理,2013,(08).
[2]冯月华.《数据结构》课程改革下的一堂教学实例――最小生成树[J].陇东学院学报,2014,(03).