首页 基于Processing的信息可视化研究

基于Processing的信息可视化研究

举报
开通vip

基于Processing的信息可视化研究 多媒体技术及其应用本栏目责任编辑:唐一东 Computer Knowledge and Technology 电脑知识与技术第 5 卷第 13 期 (2009 年 5 月) 基于 Processing的信息可视化研究 罗万才 1,雷君虎 2,李叙庚 3 (1.湖南师范大学 固定资产管理处,湖南 长沙 410081;2.湖南师范大学 电子与信息工程系,湖南 长沙 410081;3.湖南新邵县工业职业中专,湖南 新 邵 422900) 摘要:Processing 是一个开源的可视化设计工具。 它为从事可视化设计...

基于Processing的信息可视化研究
多媒体技术及其应用本栏目责任编辑:唐一东 Computer Knowledge and Technology 电脑知识与技术第 5 卷第 13 期 (2009 年 5 月) 基于 Processing的信息可视化研究 罗万才 1,雷君虎 2,李叙庚 3 (1.湖南师范大学 固定资产管理处,湖南 长沙 410081;2.湖南师范大学 电子与信息工程系,湖南 长沙 410081;3.湖南新邵县工业职业中专,湖南 新 邵 422900) 摘要:Processing 是一个开源的可视化设计工具。 它为从事可视化设计的广大科研工作者提供强大的技术支持。 该文对 Processing 的 API 及核心库做了简单介绍,并通过具体应用描述了 Processing 进行可视化设计的全过程。 关键词:Processing;信息可视化;交互;固定资产 中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2009)13-3543-02 Based on the Processing of Information Visualization Research LUO Wan-cai1, LEI Jun-hu2, LI Xu-geng3 (1.Fixed Assets Management of Hunan Normal University, Changsha 410081,China; 2.Department of Electronic and Information Engi- neering, Hunan Normal University, Changsha 410081, China; 3.Hunan Xinshao Industry Vocational School, Xinshao 422900, China) Abstract: Processing is an open source visualization design tool .It provides technological support for those who work at visualization. In the paper the API and core libraries of Processing are introduced ,finally the whole process of Processing visualization design is described by the way of special application. Key words: processing; information visualization; interaction; fixed assets 1 引言 随着计算机技术和网络技术的飞速发展,当今社会已进入信息化时代,人们需处理的信息已经呈现出爆炸性增长的态势。 为了 探索繁杂的抽象信息之间的复杂关系,经常需要对大量的信息进行分析、归纳,并从大量杂乱无序的信息中发现隐藏在其中的信息本 质特征与规律,因此,诞生了一门结合科学可视化、人机交互、数据挖掘、图像技术、图形学和认知科学等诸多学科理论和方法的新学 科──信息可视化(Information Visualization)。经过十几年来的发展,信息可视化获得了一系列研究成果,其发展前景方兴未艾。然而由 于信息可视化技术自身所具有的多样性、复杂性及跨学科性,使得如何将已有的技术应用到具体的应用当中成为长期以来困扰可视 化应用开发设计人员的一个难 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。因此,一系列信息可视化 框架 财政支出绩效评价指标框架幼儿园园本课程框架学校德育工作框架世界古代史知识框架质量保证体系框架图 及工具包应运而生,其中以 InfoVis[1]、Prefuse[2]及 Piccolo[3]尤为著名。本 文引入一个功能强大、使用方便、源代码开放的信息可视化开发工具———Processing,它大大提高了我们进行可视化设计的效率。 2 信息可视化的相关概念 可视化是将数据信息和知识转化为一种视觉形式,利用人们对可视模式快速识别的自然能力 [4]。 可视化分为科学计算可视化和 信息可视化两类。 信息可视化是在科学计算可视化的基础上发展起来的。 科学计算可视化(Visualization in Scientific Computing)是 1987 年由 B.H.McCormick 等人根据美国国家科学基金会召开的 科学计算可视化研讨会的内容撰写的一份 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 中正式提出来的 [5]。 信息可视化是 1989 年在 Robertson、Card 和 Mackinlay 发表的 文章《用于交互性用户界面认知协处理器》中第一次出现 [6],随后 信息可视化迅速发展成为与科学计算可视化并列的研究领域 。 Jim Foley 在 2000 年发表的关于计算机图形学的 “十大尚未解决 的关键问题”一文中,将信息可视化列为第三位 [7]。 信息可视化结合了科学可视化、人机交互、数据挖掘、图像技 术、图形学、认知科学等诸多学科的理论和方法。 信息可视化完整 的过程应包括信息组织与调度、静态可视化、过程模拟和探索性 分析等四个过程如图 1 所示[8]。 3 Processing概述 Processing[9]是一个由 Casey Reas 和 Benjamin Jotham Fry 发起 的开源项目,主要目标是设计成为一个非程序开发人员的可视化 设计工具。 Processing 建立在 JAVA 语言的基础上,但是大大的简 化了 JAVA 语言。 Processing 可以跨平台使用,产生基于 Web 的 Applet,也可以很容易生成 Java 应用程序。 因为是一个开源项目, Processing 也有很好的开源社区支持,大量的扩展的 API 得到开发,以支持 Processing 在可视化的各方面的应用。 另外,我们也可以 基于 Processing 为原型,根据应用的需求,在它的基础上进行二次开发,从而建立独立的信息可视化应用系统。 3.1 Processing 的 API Processing的 API大多的是 JAVA平台,Processing的 API可以分为 15个部分。 Structure部分包含 Processing基本的语法符号以 及关键字,还包括 Processing的一些常用的基础函数。 Environment包含处理全局环境属性的十个属性。 Data包含 Processing的全部数 据类型以及一些如类型转换之类的有用的函数。 Control部分主要用来控制程序流。 Shape部分包含预设的几何图形函数, 这部分为 收稿日期:2009-01-15 图 1 信息可视化过程 ISSN 1009-3044 Computer Knowledge and Technology 电脑知识与技术 Vol.5,No.13, May 2009, pp.3543-3544,3546 E-mail: eduf@cccc.net.cn http://www.dnzs.net.cn Tel:+86-551-5690963 5690964 3543 本栏目责任编辑:唐一东多媒体技术及其应用 Computer Knowledge and Technology 电脑知识与技术 第 5 卷第 13 期 (2009 年 5 月) Processing能有效应用于信息可视化提供了非常重要的支持,JAVA语言虽然也有这方面的函数,但是操作起来明显比 Processing复杂 很多。 Shape包括一些二维的基本图形元素、曲线、三维的基本体元素,点以及处理这些基本元素的一些属性函数及变量。 Input部分涉 及到数据的输入和接收,为 Processing提供从鼠标、键盘、文件、Web以及 Time&Date获取信息。Output涉及到数据的输出,数据可以输 出到屏幕、文件或生成图片。Transform通过实现矩阵的一系列操作来产生创新的效果。Lights和 Camera是 Processing比较难以使用的 部分,包括处理场景的光线、物体的位置、各种坐标系统的变换、物体的材制特性等函数。 Color用来产生颜色、设置颜色以及获取颜色 值。 Image主要涉及到 Processing对图片的调用和修改,提供了 PImage类,它封装了许多的特性,使用 Processing对图片进行处理非常 简单。 Rendering提供进行图形创建和渲染。 Typography分为 PFont ,Loading&Displaying ,Attributes, Metrics 四部分。 Math为 Processing 提供一些处理数据的函数或操作符。 Constrants部分只有 HALF_PI,TWO_PI,PI三个常量,在三角函数处理中是非常有用的[10]。 3.2 Processing 的核心库 为了扩展 Processing 语言,Processing 还提供了 Processing 的核心库,Processing 默认带了 XML Import、OpenGL Import、Video Im- port、Network Import、Serial Import、Minim Import、 PDF Import、DXF Import 和 JavaScript 等几个库。 这些库扩展了 Processing 在视频、 网络、串口通信和 JavaScript 等领域的功能。 为了扩展核心库,还有 40 多个开源社区用户贡献的库,每一个库都带有自己的 API。 这 些库扩展了 Processing 在声音控制、物理、运行检测和数据库连接等方面的功能 [11]。 4 Processing中的信息可视化应用实例 下面我们用某高校的固定资产投入数据来分析 Processing 信息可视化流程。 我们要处理的是该校近几年的固定资产投入数据 进行可视化。 根据 Ben Fry 提出的可视化设计流程如图 2[12],当然这些步骤也不能盲目遵循,整个流程也不是一成不变的。 图 2 可视化设计流程 4.1 数据获取和解析 我们从某高校的固定资产管理部门获得该校近几年的固定资产投入数据。 对固定资产近几年的数据进行分析和抽取,因为我 们目前只对固定资产的总投入、学校每年固定资产的投入和每年新增固定资产件数进行数据可视化,所以,我们从固定资产管理处 的大量数据中,只提出了这部分的数据,这些数据部分可以从资产管理处里的数据库中查到,但是有些数据只能从以前的统计表上 获取,然后,对这些数据进行处理,以适合 Processing 进行操作。 在这里我们自定义了一个类 ReadData 来读取这些数据。 data = new ReadData("capital_assets.tsv"); 4.2 数据过滤和挖掘 为了寻找适合的尺度去将数据可视化,首先我们必须将原始数据里每列的最大值最小值找出,在自定义类里 ReadData 里我们 实现求列最大和最小值的方法。 // 首先使用常量 MIN_FLOAT 来初始化变量 m float m = MIN_FLOAT; // 通过迭代获取最大值 for (int row = 0; row < rowCount; row++) { if (isValid(row, col)) { if (data[row][col] > m) { m = data[row][col];}}} 同样还有整个数据的最大最小值。 然后利用 map(years[row], yearMin, yearMax, plotX1, plotX2)来进行坐标重新分配。 4.3 信息可视化和优化 信息可视化之前,首先要确定 X 轴 Y 轴的尺度和大小。从数据来看,这是时间序列的数据,X 轴按年份表示,Y 轴就按每年的固 定资产投入来表示。 在 setup()函数中设置如下: plotX1 = 50; plotX2 = width - plotX1; plotY1 = 60; plotY2 = height - plotY1; 然后,在 draw()中画出图形 rect(plotX1, plotY1, plotX2, plotY2),但是这还只是一个框,下面将数据表示出来: int rowCount = data.getRowCount( ); for (int row = 0; row < rowCount; row++) { if (data.isValid(row, col)) { float value = data.getFloat(row, col); float x = map(years[row], yearMin, yearMax, plotX1, plotX2); float y = map(value, dataMin, dataMax, plotY2, plotY1); point(x, y);}} 4.4 可视化优化和交互设计 从上一步骤我们基本上已将信息进行了可视化表示,为了更好用户体验,提供更好的可视化效果,让用户能按需求进行可视化 表示,这里我们设计了用户交互,让用户参与可视化设计,这样,更有利于信息的表征,使可视化更有效。 下面的代码就是当用户鼠 标移动到曲线上,会显示出当年的固定资产投入等数据。 显示效果如图 3 所示。 for (int row = 0; row < rowCount; row++) { if (data.isValid(row, col)) { float value = data.getFloat(row, col); float x = map(years[row], yearMin, yearMax, plotX1, plotX2); float y = map(value, dataMin, dataMax, plotY2, plotY1); if (dist(mouseX, mouseY, x, y) < 3) { strokeWeight(10); point(x, y); (下转第 3546 页) 3544 本栏目责任编辑:唐一东多媒体技术及其应用 Computer Knowledge and Technology 电脑知识与技术 第 5 卷第 13 期 (2009 年 5 月) (上接第 3544 页) fill(0); textSize(10); textAlign(CENTER); text(nf(value, 0, 2) + " (" + years[row] + ")", x, y-8); textAlign(LEFT);}}} 另外,我们还通过 keyPressed()函数来增加了键盘的操作,可以通过键盘操 作“+”、“-”来选择总金额、年增加金额和台件可视化图。 if (key == '-') { currentColumn--; if (currentColumn < 0) { currentColumn = columnCount - 1; }} else if (key == '+') { currentColumn++; if (currentColumn == columnCount) { currentColumn = 0;}} 5 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 本文给出了基于 Processing 的信息可视化技术,介绍了 Processing 的 API 和核心库,并通过可视化某校固定资产投入数据展示 了 Processing 的可视化设计流程,通过使用 Processing,很大程度上的减少了我们的工作量,提高了我们的开发效率。期望本文工作有 助于信息可视化技术的发展。 参考文献: [1] Fekete J D. The InfoVis Toolkit [C].IEEE Symposium on Information Visualization 2004.USA:IEEE Computer Society.Austin, Texas, 2004:167-174. [2] Heer J. prefuse: a toolkit for interactive information visualization[C].USA:ACM Press,2004:421-430. [3] Benjamin B. Bederson. Toolkit Design for Interactive Structured Graphics[J].IEEE Transactions on Software Engineering, 2004(30). [4] Nahum D. Gershon, Stephen G. Eick.Information Visualization[J].IEEE Computer Graphics and Applications,1997:7-8. [5] McCormick B H, DeFanti T A, Brown M D, eds.Visualization in Scientific Computing[J].Computer Graphics,1987:21. [6] Robertson G, Card S K, Mackinlay J D. The Cognitive Co -processor for Interactive User Interfaces [C].Proceedings of the ACM SIGGRAPH symposium on User interface software and technology,1989. [7] Foley J. Getting There: The Ten Top Problems Left[C].Vision 2000 issue of IEEE Computer Graphics and Applications,2000. [8] 宋绍成.信息可视化的基本过程与主要研究领域[J].情报科学,2004(1):13-17. [9] Processing overview[EB/OL].http://www.processing.org/about/. [10] Ira Greenberg.Processing:Creative Coding and Computational Art[M].CA:Apress,2007. [11] Processing Libraries[EB/OL].http://www.processing.org.reference/libraries/. [12] Ben F.Visualizing Data[M].CA:O'Reilly Media,2008. 罗万才(1970-),男,湖南汉寿人,工学硕士,工程师,研究方向:计算机应用与自动控制等; 雷君虎(1982-),男,湖南涟源人,工学硕士生,研究方向:信息可视化与软件工程; 李叙庚(1970-),男,湖南新邵人,讲师,研究方向:计算机应用等。 图 3 可视化效果图 4 系统服务器端集成技术研究 互联网视频的传播,必须具有时效性和易操作性,所以视频分享网站必然是一个能及时有效的提供视频采集、视频格式转换和 视频发布的整体系统,而不是站对某一个环节的独立应用。服务环境集成框架建立在客户机/服务器结构的分布式系统的基础上,它 提供了一个同步 CSCW 系统的服务器的框架,适合支持具有同步通信要求的 CSCW 系统。 该集成框架有效地支持 CSCW 系统的管 理和常用工具的集成。 它所具有的可扩展性,使得可以很方便地增加对新的视频转换工具和协作方法的支持。 本文的研究将实现基于 FFMPEG 视频转换系统集成技术框架,实现服务器端对视频文件的采集,同时分发视频转换的任务,开 启多个线程同步进行视频转换、发布传播视频分享文件。 5 结束语 随着互联网视频传播的发展,国内很多视频网站运营商纷纷投入大量的资金和人力进行视频转换和发布的研究,如土豆、56 等 大型的视频分享门户网站运营商都逐渐在其视频分享的网站中增加了对各种视频处理功能。 但是,由于每个视频分享平台的厂商 起步时间不同,采用的技术体系不同,因此缺乏一个整体的视频转换解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。 该文研究的主要目的是开发研制一个国内领先水平的在线的视频转换系统,并借助 FFMPEG 对视频转换的强大功能,形成一 个服务器端对视频传播流程的智能化处理,减少视频传播中人工操作,提高互联网视频传播的效率,最终大幅度地降低互联网视频 传播的成本。 通过此平台的研制和应用,基本实现视频传播网站的快速开发,并且使转换服务适应不断发展变化的需求。 参考文献: [1] 史美林,向勇,杨光信.计算机支持的协同工作理论与应用[M].北京:电子工业出版社,2000. [2] Beaucheminz B.ADO.NET 本质论[M].北京:清华大学出版社,2003. [3] Onion F.ASP.NET 基础教程—C# 案例版[M].北京:清华大学出版社,2003. [4] Shoemaker M.UML 实战教程—面向 NET 开发人员[M].北京:清华大学出版社,2006. 马洪堂(1981-),男,河南开封人,硕士,研究方向:网络技术。 3546
本文档为【基于Processing的信息可视化研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_076577
暂无简介~
格式:pdf
大小:256KB
软件:PDF阅读器
页数:3
分类:
上传时间:2012-03-20
浏览量:24