qlearner的个人博客分享 http://blog.sciencenet.cn/u/qlearner

博文

OpenDX Paths to Visualization 学习笔记之第8、10章

已有 2526 次阅读 2014-1-21 10:52 |个人分类:专业学习|系统分类:科研笔记

第8章 Manipulating Data

1、Mark和Unmark
不同的模块处理不同的components。如:
  • AutoColor创建一个新的“color”组件

  • Compute和Map修改“data”组件

  • Isosurface和Rubbersheet修改“connections”组件

  • ShowConnections创建一个新的connections组件,如果之前没有color,那么就会增加一个color组件

单纯的Compute仅能处理“data”components,不过可以通过附加模块使其操作其他components,比如“positions”。
Compute大概是OpenDX中最强大的功能。
添加Mark(属于Structuring)模块,它的功能是将输入的某个特定的components转换成”data“,具体是将特定的components拷贝成”data“,并将之前的”data“另存为”saved data“。通过Compute操作可以对data进行拆解组合等,此时所有的操作是存入data组件的,需要添加Unmark(属于Structuring)来将data还原成positions组件,同时将saved data重存成data组件。
VPE样例为:
Import——Mark——Compute——Unmark——Shade——AutoColor——Image
这里增加了Shade(属于Rendering)模块,以增加normals组件,从而产生阴影效果。之前的例子中的Rubbersheet自动增加了normals组件。
2、Invalid Data
在真实的数据收集时,经常会有坏(bad)、丢失的(missing)或无效的(invalid)数据。处理这些无效数据的一种方法是简单地去除它们,但有时候更好的方法是标记出来,而不是直接去除。比如在规则网格中,位置positions和联系connections是紧密存储的,但如果去掉无效数据后,就会破坏数据之间的相关性,使其成为了散点图。而且有时还想知道何时和何地出现了无效的数据。
OpenDX支持”无效位置“(invalid positions)和”无效联系“(Invalid connections)的概念。与无效位置或无效联系相关的数据被认为是无效的。OpenDX所有的模块通常忽略所有无效的数据(假装它不在那),但missing的位置和联系仍然在Field中。
VPE样例为:
Import——Reduce——Include——AutoColor——Isosurface——Image
Import——Statistics——Echo
Reduce(属于Import and Export)降低一个field的分辨率,如果加上ShowConnections(属于Realization)效果就是网格看起来更粗等。
Include(属于Import and Export)可以使自由选择数据,如数据的上下限、是否包含无效数据等。
Statistics(属于Transformation)可以计算一个field的数据信息,如平均值、标准差、方差、最小值、最大值或者field的data组件
Echo(属于Debugging)可以输出一条信息,因此可与Statistics组合将其信息输出。
Remove(属于Structuring)可以去除一个field的某个组件,但是它并不去除实际的数值,这一点与Include不同。
Extract(属于Structuring)可以取出field的某个组件
Rename(属于Structuring)重命名某个组件
Replace(属于Structuring)替代一个组件,或者作为某个组件插入
第10章 Network Flow Control
VPE样例为:
FileSelector——Import——Select——Isosurface——Color——Image
Select(属于Structuring)模块的功能是选择一个group中的某个成员,比如一个数据文件中有三个变量,那么就可以通过Select来选择,同时可以添加Selector(属于Interactor)模块来作为交互,方便手动选择。
添加ShowBox(属于Realization)模块来显示一个field的边界框。
为了显示切片,OpenDX提供了几种工具,比如Slice和Slab(属于Import and Export),但这两个模块都不能任意切片,它们只能得到输入的数据中能作为”slice“的数据的子集。
如果想要得到任意面的切片,需要MapToPlane(属于Realization)模块。该模块可以在某个点point上指定切片的法向量normal,从而作图。
单纯的MapToPlane能做出一个切面,但原有的图整体还在,此时可以加上ClipPlane(属于Rendering)来将部分东西前面阻挡视线的东西切掉,使露出切面来。
有时想要ClipPlane的效果,有时又不想要,这时可以添加Switch(属于Flow Control)模块,Switch可以在几个Input里选择哪一个作为Output,它的第一个参数就是要选择的input,1代表第一个input通过,2代表第二个input通过。
Toggle(属于Interactor)模块则提供了用户与Switch的交互。
与Switch工作类似的是Route(属于Flow Control),不过它只接收一个输入,但是可以选择多个输出。
在Image窗口中的Rotate命令可以通过Rotate(属于Rendering)模块来实现,后面加上Display(属于Rendering)来创建另一个Image窗口。如果想要随时控制这个窗口的有无,还需要添加ManageImageWindow(属于Interface Control)来实现。
如果想要精确控制Image窗口中的参数,可以使用附加的模块,如AutoCamera、Camera、Render等模块。




http://blog.sciencenet.cn/blog-441611-760942.html

上一篇:OpenDX Paths to Visualization 学习笔记之第6、7、9、11章
下一篇:OpenDX显示鼠标所取点的坐标(来自mail-archive)

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-10-25 13:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部