毕业论文科学数据可视化Word下载.doc

上传人:聆听****声音 文档编号:811428 上传时间:2023-04-29 格式:DOC 页数:45 大小:809.50KB
下载 相关 举报
毕业论文科学数据可视化Word下载.doc_第1页
第1页 / 共45页
毕业论文科学数据可视化Word下载.doc_第2页
第2页 / 共45页
毕业论文科学数据可视化Word下载.doc_第3页
第3页 / 共45页
毕业论文科学数据可视化Word下载.doc_第4页
第4页 / 共45页
毕业论文科学数据可视化Word下载.doc_第5页
第5页 / 共45页
毕业论文科学数据可视化Word下载.doc_第6页
第6页 / 共45页
毕业论文科学数据可视化Word下载.doc_第7页
第7页 / 共45页
毕业论文科学数据可视化Word下载.doc_第8页
第8页 / 共45页
毕业论文科学数据可视化Word下载.doc_第9页
第9页 / 共45页
毕业论文科学数据可视化Word下载.doc_第10页
第10页 / 共45页
毕业论文科学数据可视化Word下载.doc_第11页
第11页 / 共45页
毕业论文科学数据可视化Word下载.doc_第12页
第12页 / 共45页
毕业论文科学数据可视化Word下载.doc_第13页
第13页 / 共45页
毕业论文科学数据可视化Word下载.doc_第14页
第14页 / 共45页
毕业论文科学数据可视化Word下载.doc_第15页
第15页 / 共45页
毕业论文科学数据可视化Word下载.doc_第16页
第16页 / 共45页
毕业论文科学数据可视化Word下载.doc_第17页
第17页 / 共45页
毕业论文科学数据可视化Word下载.doc_第18页
第18页 / 共45页
毕业论文科学数据可视化Word下载.doc_第19页
第19页 / 共45页
毕业论文科学数据可视化Word下载.doc_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业论文科学数据可视化Word下载.doc

《毕业论文科学数据可视化Word下载.doc》由会员分享,可在线阅读,更多相关《毕业论文科学数据可视化Word下载.doc(45页珍藏版)》请在冰点文库上搜索。

毕业论文科学数据可视化Word下载.doc

第2章 基础知识 4

2.1STL简介 4

2.1.1STL算法 4

2.1.2STL容器 5

2.1.3STL迭代器 6

2.2BOOST简介 6

第3章 科学数据可视化的概述 8

3.1科学数据可视化的基本概念 8

3.1.1科学数据 8

3.1.2可视化 8

3.1.3科学数据可视化的原理概述 8

3.2科学数据可视化的表示模型 9

3.2.1科学数据模型 10

3.2.2坐标轴模型 10

3.2.3图形图像模型 11

3.3科学数据可视化的发展趋势 11

第4章 科学数据可视化总体的设计 13

4.1科学数据可视化的类包设计 13

4.2科学数据可视化设计中使用的数据结构 14

4.2.1Vector结构 14

4.2.2Shared_ptr结构 16

第5章 科学数据可视化的主要类及算法描述 17

5.1CPGLRegion类:

18

5.2CPGLObject类:

20

5.3CPGLAxe2D类:

22

5.4CPGLVector类:

24

5.5CPGLLine2D类:

25

第6章 科学数据可视化的具体实现 26

6.1科学数据的组织 26

6.2科学数据到图形对象的转换 26

6.3将图形对象的添加到Region 27

6.4实现图形可视化操作 27

6.4实现图形视图的导出 32

第7章 演示系统 34

6.1主要功能运行实例 35

6.2系统主要特点 39

第7章 结束语 40

参考文献 41

湖南师范大学本科毕业论文

第1章绪 论

1.1什么是科学数据可视化

现代的科学数据可视化(ScientificDataVisualization)技术指的是运用计算机图形学和图像处理技术,将数据换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。

它涉及到计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域。

数据可视化概念首先来自科学计算可视化(VisualizationinScientificComputing),科学家们不仅需要通过图形图像来分析由计算机算出的数据,而且需要了解在计算过程中数据的变化。

随着计算机技术的发展,数据可视化概念已大大扩展,它不仅包括科学计算数据的可视化,而且包括工程数据和测量数据的可视化。

学术界常把这种空间数据的可视化称为可视化(VolumeVisualization)技术[1]。

1.2发展概况及应用领域

近年来,随着网络技术和电子商务的发展,对科学数据的研究提出了更高的要求,科学数据可视化技术随之发展起来。

我们可以通过数据可视化技术,发现大量金融、通信和商业数据中隐含的规律,从而为决策提供依据。

这已成为数据可视化技术中新的热点。

为适应硬件平台、操作系统、网络和通信方面的飞速发展,可视化的软件产品在近几年中发展很快,其中以AVS/Express开发版、IDL(包括VIP、ION)和PV-WAVE等为代表。

科学数据可视化的应用十分广泛,几乎可以应用于自然科学、工程技术、金融、通信和商业等各种领域在国民经济中发挥着越来越大的作用。

其中数据可视化主要应用在以下几个领域。

①医学

医学数据的可视化,已成为科学数据可视化领域中最为活跃的研究领域之一。

由于近代非侵入诊断技术如CT、MRI和正电子放射断层扫描(PET)的发展,医生已经可以较易获得病人有关部位的一组二维断层图象。

②油气勘探

由于地震数据及测井数据的数据量极其庞大,而且分布不均匀,因而无法根据纸面上的数据作出分析。

利用可视化技术可以从大量的地质勘探数据或测井数据中,构造出感兴趣的等值面、等值线,并显示其范围及走向,并用不同颜色显示出多种参数及其相互关系,从而使专业人员能对原始数据做出正确解释,得到矿藏是否存在、矿藏位置及储量大小等重要信息。

③气象预报

科学数据可视化可将大量的数据转换为图像,在屏幕上显示出某一时刻的等压面、等温面、旋涡、云层的位置及运动、暴雨区的位置及其强度、风力的大小及方向等,使预报人员能对未来的天气做出准确的分析和预测。

④工程

计算机辅助工程(CAE)包括计算机辅助设计(CAD)、计算机辅助制造(CAM)和计算机辅助运行等多项内容。

可视化技术有助于整个工程过程一体化和流程化,并能使工程的领导和技术人员看到和了解过程中参数变化对整体的动态影响,从而达到缩短研制周期、节省工程全寿命费用的目的

1.3科学数据可视化主要研究的内容

科学数据可视化研究的主要内容包含以下几个方面:

①科学数据的组织:

对科学数据进行合理的收集,人们使用特定的工具(如数据采集器等)对数据进行采样分析,将收集的信息进行过滤获取感兴趣的部分。

②实时图形生成技术:

将科学数据转化成图形,可使在分析科学数据时,提供界面友好图形信息、支持各种鼠标操作。

通过对科学数据图形化可使操作者有一种感观上的了解,从而更好的分析数据、发现数据的规律并做出正确的判断。

实时图形生成技术主要有:

二维图形区域实时图形生成技术、三维数据模型实时生成技术、三维视角变换技术、数据模型的显示和快速漫游数据技术。

③科学数据的存储和压缩:

通常由于科学数据的数据量比较大,运用合理有效的存储压缩算法可提高磁盘的利用率并提高科学数据使用效率。

④数据可视化工具的开发:

研究开发数据可视化工具并使其支持科学数据的导入、导出、图形化等操作。

⑤数据可视化算法研究:

对科学数据图形生成、存储压缩的算法研究。

⑥科学数据检索系统:

对科学数据进行分析找出有用的、可利用的信息。

1.4本论文的目的及主要内容

本论文的目的是:

在首先选用合理的数据结构组织好科学数据,再通过分析数据的图形生成技术和常用图形生成算法思想的基础上,然后使用VisualC++这个软件开发工具以完全面向对象的开发模式设计出了一套科学数据可视化的工具,最后以类和控件的形式提供给其他开发者直接使用或做进一步的完善。

本论文的主要内容包含如下几个方面:

①对C++所提供的常用的数据结构进行简单的描述和解释,为科学数据生成图算法的设计打下基础。

②科学数据图形生成算法的介绍。

将科学数据以矩阵形式的文件格式存储在计算机的存储器中的。

本论文以矩阵转换成多条曲线图形的算法为例并结合上述的数据结构,并对它们之间的转换给出了算法描述。

③数据可视化工具的开发算法的介绍:

可视区域的显示范围、可视区域的放大和缩小、可视区域的移动、可视区域中图形曲线的选中、可视区域中图形曲线的移动以及可视区域的恢复等给出了详细的讨论及算法描述。

④数据可视化图形导出文件格式介绍:

BMP文件格式、JPEG文件格式、TIFF文件格式、PNG文件格式、EMF文件格式、EPS文件格式、SVG文件格式以及SVGZ文件格式。

41

第2章基础知识

由于在科学数据可视化开发时引用到了许多STL库、BOOST库中的内容特此对它们进行一下总体概述。

2.1STL简介[2]

STL(StandardTemplateLibrary,标准模板库)是惠普实验室开发的一系列软件的统称。

它是由AlexanderStepanov、MengLee和DavidRMusser在惠普实验室工作时所开发出来的。

现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。

STL的代码从广义上讲分为三类:

algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。

在C++标准中,STL被组织为下面的13个头文件:

<

algorithm>

、<

deque>

functional>

iterator>

vector>

list>

map>

memory>

numeric>

queue>

set>

stack>

和<

utility>

以下笔者就简单介绍一下STL各个部分的主要特点。

2.1.1STL算法

算法是大家都能取得的一个共识是函数库,对数据类型的选择对其可重用性起着至关重要的作用。

举例来说,一个求方根的函数,在使用浮点数作为其参数类型的情况下的可重用性肯定比使用整型作为它的参数类性要高。

而C++通过模板的机制允许推迟对某些类型的选择,直到真正想使用模板或者说对模板进行特化的时候,STL就利用了这一点提供了相当多的有用算法。

它是在一个有效的框架中完成这些算法的——可以将所有的类型划分为少数的几类,然后就可以在模版的参数中使用一种类型替换掉同一种类中的其他类型。

STL提供了大约100个实现算法的模版函数,比如算法for_each将为指定序列中的每一个元素调用指定的函数,stable_sort以你所指定的规则对序列进行稳定性排序等等。

这样一来,只要我们熟悉了STL之后,许多代码可以被大大的化简,只需要通过调用一两个算法模板,就可以完成所需要的功能并大大地提升效率。

算法部分主要由头文件<

,<

组成。

是所有STL头文件中最大的一个(尽管它很好理解),它是由一大堆模版函数组成的,可以认为每个函数在很大程度上都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等等。

体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。

中则定义了一些模板类,用以声明函数对象。

2.1.2STL容器

在实际的开发过程中,数据结构本身的重要性不会逊色于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要。

经典的数据结构数量有限,但是我们常常重复着一些为了实现向量、链表等结构而编写的代码,这些代码都十分相似,只是为了适应不同数据的变化而在细节上有所出入。

STL容器就为我们提供了这样的方便,它允许我们重复利用已有的实现构造自己的特定类型下的数据结构,通过设置一些模版类,STL容器对最常用的数据结构提供了支持,这些模板的参数允许我们指定容器中元素的数据类型,可以将我们许多重复而乏味的工作简化。

容器部分主要由头文件<

<

容器和相应头文件的对应关系如表2-1。

数据结构

描述

实现头文件

向量(vector)

连续存储的元素

列表(list)

由节点组成的双向链表,每个结点包含着一个元素

双队列(deque)

连续存储的指向不同元素的指针所组成的数组

集合(set)

由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序

多重集合(multiset)

允许存在两个次序相等的元素的集合

栈(stack)

后进先出的值的排列

队列(queue)

先进先出的执的排列

优先队列(priority_queue)

元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列

映射(map)

由{键,值}对组成的集合,以某种作用于键对上的谓词排列

多重映射(multimap)

允许键对有相等的次序的映射

表2-1容器和相应头文件的对应关系表

2.1.3STL迭代器

迭代器从作用上来说是最基本的部分。

软件设计有一个基本原则,所有的问题都可以通过引进一个间接层来简化,这种简化在STL中就是用迭代器来完成的。

概括来说,迭代器在STL中用来将算法和容器联系起来,起着一种黏和剂的作用。

几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。

迭代器部分主要由头文件<

是一个很小的头文件,它包括了贯穿使用在STL中的几个模板的声明,<

中提供了迭代器使用的许多方法,而对于<

的描述则十分的困难,它以不同寻常的方式为容器中的元素分配存储空间,同时也为某些算法执行期间产生的临时对象提供机制,<

中的主要部分是模板类allocator,它负责产生所有容器中的默认分配器。

2.2BOOST简介[3]

Boost一套开放源代码、高度可移植的C++库。

出自于C++标准委员会库工作组。

它的功能如下:

·

正则表达式,可以与POSIXAPI和Perl语言处理正则表达式的功能相媲美,而且还能支持各种字符类型(如char、wchar_t,甚至还可以是自定义字符类型);

多线程,可实现跨平台的多线程库;

数据结构方面除了STL中的数据结构再加上即将加入标准的hash_set、hash_map、hash_multiset、hash_multimap等,使C++对数据结构的支持已近完备;

python,对Python语言的支持;

智能指针,与std:

:

auto_ptr一起善加使用,可杜绝内存泄露;

更有循环冗余的CRC、可轻松定义返回多个值函数的元组tuple、可容纳不同类型值的any、对标准库各方面的补充;

还在迅速扩大中,部分内容有望进入C++标准库。

第3章科学数据可视化的概述

3.1科学数据可视化的基本概念

3.1.1科学数据

中国工程院院士、我国著名农业与资源环境信息工程专家孙九林院士对科学数据的定义如下:

“科学数据资源,是人类长期以来智慧的结晶、是信息与知识创新的源泉、提高人们生活质量的保证、推动社会发展的重要条件;

然而,只有对它实现有效的开发、管理、利用,建立起完善的共享、服务机制,充分发挥科学数据的科学价值、经济价值和社会价值,才能确保科技的‘第一生产力’地位。

”[4]

3.1.2可视化

可视化是帮助人们表现数据或挖掘数据隐含信息的手段,目的是辅助人们得出某种结论性观点。

因此,可视化技术通常用在解决问题的后期阶段,并且需要以数据采集和处理技术为基础。

没有采集技术,可视化技术就无从谈起;

没有可视化技术,采集来的数据得不到很好的应用,它们是相辅相成的。

3.1.3科学数据可视化的原理概述

科学数据可视化是指运用计算机图形学和图像处理技术将科学计算过程中产生的数据和计算结果转换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。

其研究的核心问题是将数据变成图像,使繁多枯燥的科学数据变得更加直观,易于理解。

由于从事科学数据可视化研究的一般需要高性能计算机、高档工作站、高速网络和虚拟现实环境,这些都需要巨额的投资,而作为一般单位很难具备这样的条件,因此从事这一研究的单位寥寥无几,所以感觉科学数据可视化离我们比较远。

不过,科学数据可视化的运用对我们并不陌生,气象预报中的卫星云图的变换就是我们经常可以看到的科学数据可视化的例子。

从事科学数据可视化的研究最主要是从事可视化处理的研究。

可视化处理的研究就是包括对将科学数据转化成为二维、三维的图形或图像信息,并可以人为对其进行加工以满足人的视觉心理或应用需求的行为。

科学数据可视化就是利用数字计算机或其他数字硬件,对从数据信息进行采集经过数据可视化处理转换而得的图形、图像将其在显示设备上显示。

这样可以帮助技术人员形象直观地查看仿真结果,而且在一定程度上可以提高设计水平,减少错误的发生。

因此计算机图形技术将在各行业、各个领域内得到越来越广泛地应用。

科学数据可视化的原理如图3-1所示:

图3-1科学数据可视化原理图

3.2科学数据可视化的表示模型

在进行具体科学数据可视化的开发之前,首先对科学数据可视化的表示模型是十分必要的,它可以帮助我们建立起正确的数据可视化的概念,这样才能正确地进行开发研究;

否则就会走弯路,甚至事倍功半。

科学数据可视化的表示模型可以分为三个部分,如图3-2所示。

图3-2科学数据可视化的表示模型

其中,科学数据是科学数据可视化的基础,有了科学数据才能确定坐标轴模型的显示范围,也才能确定图形、图像是显示一什么样的东西,是一个点、一条直线、一个平面图形图像还是一个三维图形图像。

当科学数据模型和坐标轴模型都确定之后,这样图形图像的位置也将可以确定下来。

3.2.1科学数据模型

科学数据模型定义某学科的科学数据及其它们之间的关系,并通过一种通用语言和一个信息的公共结构,为科学数据理解提供一个公共的基础,以便描述所采集的数据,用于计算机系统的开发,定义数据库和进行数据转换。

因此,科学数据模型由相应学科的要素(实体)和这些要素的特征(属性)组成,并用E-R图来描述数据模型的实体关系。

如面向GIS地学的科学数据模型是由地学要素实体和点、线、面三个实体综合表示地学空间的模型。

它可以用图层和相应的属性描述,层是用以区分空间实体的类别,即属性一致的地理实体或特征相同的地理因子在空间分布的集合,目的是为了制图、显示、管理和分析。

3.2.2坐标轴模型

由于要使用二维的屏幕来描述二维或三维的图形、图像,这时可以利用坐标轴模型来实现在二维的屏幕上实现三维交互。

简单地说只要可以准确的确定从逻辑坐标值到设备坐标值的转换方式,就可以实现在二维的屏幕上实现三维交互。

如果需要表示一个二维图形时,就构造一个二维坐标轴,如图3-3所示。

图3-3二维坐标模型

如果需要表示一个三维图形、图像时,就构造一个三维坐标轴,如图3-4所示。

图3-4三维坐标模型

随着坐标轴的各个轴的单位量的参数的变化坐标轴能表现的图形图像也就可以随之变化,如整个坐标轴的移动、坐标轴轴距的变换等。

3.2.3图形图像模型

图形图像模型是科学数据可视化的最高层。

它是用于来表现科学数据的特征、用来描述科学数据之间的关系、用来对科学数据进行整理、用来发现科学数据的规律等。

图形图像模型与坐标轴模型相结合可以构成可视化平台。

在可视化平台上可以进行多种变换操作这样就能够得到操作者所需要的图形图像。

如改变坐标值的位置,图形图像也随之改变,这样可以切换用户视角;

改变坐标值的轴距,图形图像就随之拉伸、缩放,这样就实现了图形图像的放大和缩小等。

3.3科学数据可视化的发展趋势

科学数据对我们的科学研究工作有很大的辅助作用。

现在的科学计算的数据量可谓是呈几何级数增长,如果没有科学数据可视化技术,人们很难从一大堆枯燥乏味的数字中找出其内在规律和变化趋势。

科学数据可视化在现实生活中的应用领域更是举足轻重,直接关系到国计民生。

例如在核武器研究领域,我国已经加入了核禁试条约,不能再做物理的原子弹爆炸实验了,但是有关核弹的研究与制造工作还得进行,这就需要在计算机上进行数学模拟,并用科学数据可视化技术显示其结果。

此外还有石油勘探领域,通过科学计算可视化技术可以依据勘探的数据绘制出地下的石油分布图。

在气象预报领域,科学计算可视化能在繁多的数据中总结出风云变幻的趋势。

其次,采用科学数据可视化技术进行模拟实验可以节省

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2