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

博文

OpenDX Paths to Visualization 学习笔记之第6、7、9、11章

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

第6章 Mystery Data
对于非OpenDX自带格式的数据,需要先经过一定的转换,才能导入OpenDX中,这里要用的就是Data Prompter工具,先识别特定格式的文件,然后存储为一个Header file,再导入OpenDX中。
Browse Data可以以文本格式查看一下文件的内容。Describe Data可以对文件进行描述并存储。如果此时关闭了Browser,可以在...button后面选择Browser重新查看。一般文件开头会有几行描述性的文字,注意这时要skip这些行。同时选择好数据编码方式、网格尺寸、数据排序、起始点和间隔、数据类型等信息,并保存成xxx.general文件。
第7章 OpenDX Data Model
OpenDX的数据模型(Data Model)使用的是基于对象、自我描述(objected-oriented,self-describing)的方法。
通常使用6种描述性的对象:
  • 属性(attribute):OpenDX的对象(array、component、field或group)和value之间的关联

  • 数组对象(array object):用来存储具体数据的容器,数组元素可以是任意类型的,OpenDX使用的数组是一维的

  • 组件对象(component object):场(field)的组件,通常是有特定名字的数组(array)

  • 场对象(field object):场是OpenDX的基本组成物,用来收集和封装相关的组件(component),场的所有元素必须是组件(components)

  • 组对象(group object):用来将一些场(fields)和/或组(groups)组合起来。

一句话,components are typically just named arrays, fields collect components, groups collect fields and other groups, and attributes can be attached to arrays, components, fields and groups.
(1)属性(attribute)
属性是对象(object)与该对象的某个值(value)之间的关联,用来表示对象的特性。如组件(component)的属性通常有:
  • dep:给定组件依赖于哪个组件,如data可依赖于positions

  • ref:给定组件对应于哪个组件,如connections可对应于positions

  • der:一个组件派生于(is derived from)另一个组件,当来源组件变化时,该组件也变化。如box通常有positions的der属性

  • element type:connections组件的一个属性。表明插值的方式

  • shade:表明如果给出normals组件,是否给该对象画阴影

(2)数组对象(Array Objects)
数组对象的属性通常为type(包括double、float、int、uint、short、ushort、byte、ubyte和string),category(包括real和complex),rank(元素的维度,0代表标量,1代表向量,2代表矩阵或2阶张量,3代表更高次的张量),shape(每个维度上的大小)
(3)场对象(Field Objects)
标准的场的组件有:
  • positions:存储n维空间的坐标

  • connections:独立点之间的关系,在位置之间插值

  • data:存储实际值,一个Field只能有一个data组件

  • colors,front colors,back colors:表明对象如何描述

(4)组对象(Group objects)
不同的模块使用和操作(修改、增加、减少)不同的组件,并保持其他未被操作的组件不变。所以通常模块的顺序影响不大,但个别情况下不同的顺序导致不同的显示效果
可以使用Print(属于Debugging)模块来显示数据信息,options如果是r,意味着递归地输出数据,如果是o,则只输出顶层(top-level)信息,rd表示递归地同时输出数据描述性信息。
第9章 More on Data Import
OpenDX可以用两种不同的方式来描述数据格式,第一种是简单的提前设定文件结构的general array header file,第二种是可以灵活地定义几乎全部数据结构的内置文件格式。
(1)General Array Importer(Data Prompter)
Data organization
可以导入用两种组织方式的数据,一种是block,一种是column。
Row versus Column Major Order
对于规则位置的多维数据,不仅要指定data organization,还要指定data order,即是按行or列排列。
在文件中包含明确的坐标
如果在文件中包含坐标,那么坐标可以通过General Array、Import模块或ImportSpreadsheet模块来导入。
如果使用General Array Importer,那么关键字”locations“必须指定。
如果数据文件是电子表格的格式(spreadsheet),即每一行包括坐标和相应的数值,那么可以使用ImportSpreadsheet模块来导入数据。这个模块导入所有的列作为一个field独立的组件。因此,ImportSpreadsheet的输出需要通过Mark、Compute、Unmark来将这些列组件转换成positions组件。
(2)The Native File Format


第11章 Series, Categorical and Scattered Data

OpenDX可以处理与时间有关的一系列的数据(Series Data)。这一系列数据可以是单个文件或多个文件。对于放置在多个文件中的一系列文件,用户必须创建一个头文件(header)来描述这些数据。
分类数据(Categorical Data)是包含其他数据类型的分类或二进制文件。OpenDX使用分类数据来减小一个包含重复值、字符串或矢量数据的组件的大小。
散点图(Scattered Data)包括数值和位置信息。OpenDX可以导入一个包含位置和数值信息的文件,这可以使用general array importer、ImportSpreadsheet或将数据文件转换成OpenDX内置文件。
(1)处理Series Data
VPE样例为:
Import——Select——AutoColor——Image
添加Sequencer来给Select的第二个输入传入参数。
另一种方式是Sequencer——Import——AutoColor——Image
这时Sequencer给Import的start和end两个参数赋值。注意这两个参数原先是隐藏的,需要点击Hide使其显现。
(2)处理Categorical Data
VPE样例为:
ImportSpreadsheet——Categorize——Print
ImportSpreadsheet(属于Import and Export)模块专门用来出来表格类的数据文件,注意里面的几个选项,如delimiter(分隔符)、headerlines(表头行数)等设置一下。
Categorize(属于Transformation)模块是用来将string类型的数据转化成numerical数据,具体是将原来的Stirng类型的组件转换成数字类型的组件,然后映射到xxx lookup的新的组件上,这个组件存储之前的string数据。
Categorize可以指定特定的组件进行转换,如果想要转换所有的string类型的组件,可以直接使用ImportSpreadsheet中的categorize选项。
一个非常有用的工具是CategoryStatistics(属于Transformation)模块。它能允许OpenDX对不同的分类的数据进行操作。注意每个字段都是一个组件。
对数据操作完后就可以画图。Plot(属于Annotation)模块需要一组一维的位置和数值的数据,即要做的是个二维的图。它将位置作为x轴,将data组件作为y轴。注意此时使用的位置坐标有可能是string类型经过转化后的numerical类型,作图时很难理解numerical具体的意义是什么,需要Extract将原来的string类型的组件提取出来赋给Plot的xticklabels,这样就比较易看。Plot还有其他参数,如labelscale等设置。
注意Extract获得的是xxx lookup的组件!
如果需要选择其他string类型的组件,那么Extract的参数相应地也要改变名字。这时可以使用Format(属于Annotation)模块来实现统一输入,因为它们具有相同的模板。Format就是形成一个统一的模板,它的template参数为:
  • %c  单个字符

  • %d  整数

  • %f  浮点数

  • %g  general(scientific notation if appropriate)

  • %s  字符串

(3)处理Scattered Data
VPE样例为:
同(2)中的情形。不过因为这里的坐标是二维的,不能使用Plot画图,可以使用AutoGlyph对数据场中的每一个数据点做出合适的图形,因此适合作散点图。注意AutoGlyph也是接收data组件,所以可能需要mark来转换。
这个VPE中使用了Transform(属于Rendering)模块,来将x坐标乘以了一个“-1”,从而使其称为相反数。



https://blog.sciencenet.cn/blog-441611-760535.html

上一篇:OpenDX Paths to Visualization 学习笔记之第2章
下一篇:OpenDX Paths to Visualization 学习笔记之第8、10章
收藏 IP: 210.72.136.*| 热度|

0

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

数据加载中...

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

GMT+8, 2024-4-25 16:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部