上一节课内容回顾 VTK: A Tutorial, 介绍VTK的基本内容 1 What is VTK? 2 VTK图形模型

Slides:



Advertisements
Similar presentations
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Advertisements

基本概論 Basic concepts.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
資料庫設計 Database Design.
上一节课内容回顾 2.1 Python概要 2.2 Python 快速入门
Oracle数据库 Oracle 子程序.
Google App Engine Google 應用服務引擎.
REVIEW 基本XYZ立體繪圖命令 MATLAB 程式設計與應用 張智星
第二章 C# 基础知识.
Hadoop I/O By ShiChaojie.
Overview of Python Visualization Tools
Chap 10 SQL定義、操作與控制指令.
(Exec1) GIS 空间分析-使用ArcGIS (Exec1)
第3章 變數、資料型別與運算子.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
Chinese Virtual Observatory
第八章 Illumination and Shading
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
创建型设计模式.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
培训内容安排 APDL基础 模态分析技术 非线性分析技术 热-结构耦合分析 练习 APDL练习 模态分析 接触分析.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
管理信息结构SMI.
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
上一节课内容回顾 第十一讲 科学计算可视化系统和工具 可视化系统分类 专用可视化工具 通用可视化系统.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
上一节课内容回顾 4.1 可视化数据类型 4.2 科学数据管理 4.3 科学数据格式 4.4 图形图像数据格式 4.5 VTK中的数据表示.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
Java lab3.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第七章 操作符重载 胡昊 南京大学计算机系软件所.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
第1章 绪论 2019/4/16.
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
作业情况 已交作业人数:140人 凡是自己没有交过作业的同学,课后留下,有话要说。 2. 文件名范例: 姓名:王树武 wshw_1.c
Java變數 2014/6/24.
MATLAB 程式設計入門篇 初探MATLAB
VisComposer 2019/4/17.
VB与Access数据库的连接.
保留字與識別字.
实体描述呈现方法的研究 实验评估 2019/5/1.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
林福宗 清华大学 计算机科学与技术系 2008年9月 2019年5月5日 多媒体技术教程 第4章 彩色数字图像基础 林福宗 清华大学 计算机科学与技术系 2008年9月.
iSIGHT 基本培训 使用 Excel的栅栏问题
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
Review 1~3.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Delphi 7.0开发示例.
第六章 类属B树索引技术 对基于树的索引方法给出一种通用算法。该算法是建立在类属B树的概念之上开发的。它将类型系统开放,使系统能支持用户自定义的数据类型、函数和某些特殊的查询谓词的集合。并且,将新的数据类型、函数、查询谓词等登记到数据库管理系统中,
本节内容 指针类型.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
基于列存储的RDF数据管理 朱敏
PYRAMID WITH FOUR POINTS
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Presentation transcript:

上一节课内容回顾 VTK: A Tutorial, 介绍VTK的基本内容 1 What is VTK? 2 VTK图形模型

上一节课内容回顾 1 VTK结构 VTK 在API访问接口上包括两个主要部分: C++实现的核心层 自动生成的接口层,包括Tcl、Java和Python.

上一节课内容回顾 2 图形模型子系统

上一节课内容回顾 3 VTK可视化管道

本节课内容 4.1 可视化数据类型 4.2 科学数据管理 4.3 科学数据格式 4.4 图形图像数据格式 4.5 VTK中的数据对象

4.1 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线 4.1.1 数据属性 数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据,包括: 保存在存储器中的数据 模型计算产生的数据 外部数据源--包括卫星数据、实验数据等 数据类型--数值型数据和图像型数据

数据量 如何高效地处理、生成和接受大量的数据 现有科学计算数据具有下列特征: 海量数据集 数据随时间变化 数据集由多个数据域组成 数据集具有不同的成分和结构 数据的结构 数据系统的基本元素是位(bit) 位之上有多级抽象表示(字节、字、结构、记录等) 低层次上有一些基本的构造块(整数、浮点数等) 高层次上有数据和结构之类的对象

􀂄 Dimensionality (number of independent variables) 􀂄 Parameters (dependent variables; the data themselves) 􀂄 Data Type 􀂄 byte, int, float or real, complex, etc.; 􀂄 can mean object structures such as triangle strips or point geometry) 􀂄 Rank (the number of values associated with a dependent variable): 􀂄 Rank 0: scalar 􀂄 Rank 1: vector 􀂄 Rank 2: tensor 􀂄 Structure 􀂄 mesh structure 􀂄 connection information or relations for data points) 􀂄 Aggregation (collections of dependent variables or structures treated as a single entity)

Dataset Design Criteria 􀂄 Compact - compact storage for large data 􀂄 Efficient - retrieve, compute, store as fast as possible (O(n) if possible) 􀂄 Mappable - into graphical primitives into visualization data structures 􀂄 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data types 􀂄 Simple - simple data structures, simple visualization algorithms

4.1.2 数据分类 数据集--单个记录、文件或文件集合: 数据分类方法很多,包括基于数据源、数据格式和数据类型的分类方法: 外部数据/内部数据 原始数据/导出数据 基本元素/逻辑集 几何数据/特性数据 记录数据

针对环境问题: 针对某一特征的数据 --属性数据,如污染物浓度等 针对某一空间位置上某一特征的数据 --属性数据,几何位置数据 针对某一空间区域上某一特征的数据 --属性数据,几何位置数据,空间拓扑数据 属性数据 几何位置数据 空间拓扑数据

4.1.3网格数据 笛卡儿网格 规整网格 矩形网格 结构网格 非结构网格 曲线网格 块结构网格 混合结构网格 散乱点

4.2 科学数据管理 用于科学计算可视化的数据库管理系统应具有: 提供读写的一般方法 对数据进行有效组织 用户可接受的响应时间,用户能与数据进行交互 把数据管理与单纯的数据访问分开 数据完整性的维护 安全性策略 4.2.1 数据描述和处理语言 SQL语句分为: 数据描述语言DDL、 数据处理DML 模块与过程

4.2.2数据存档 原始数据 内部导出数据 图像或图像数据 元数据

4.3 科学数据格式 4.3.1 HDF格式 是美国NCSA开发的一种科学数据格式。是多对象文件格式。 结构 通用的文件结构,具有如下功能: 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记(tag)或标记组合方法存储任何类型的数据 数据类型 8为图像数据集 24位图像数据集 科学数据集(SDS)--矩形网格数据 注解 VSets

4.3.2 CDF和NetCDF CDF--NASA开发的科学数据模型的具体实现。 NetCDF--美国Unidata开发的科学数据格式 结构 数据 使用

4.4 图形图像数据格式 4.4.1图形文件/图像文件 生成图形:从原始数据生成图像和图形经过了一系列变换过程。每个变换过程可能产生不同于输入数据的输出数据。这些数据按照一定的结构进行组织,形成了图形图像文件。 图形图像数据具有如下特点性: 数据量大 结构性

4.4.2 图形图像文件格式 位图/光栅图像格式 Targa, PCX, GIF, TIFF, EA IFF 85 , X Bitmap, Ximage, Sun Rasterfile, PICT, IIF 向量/对象文件格式 OFF, PostScript, HPGL, NTF, PHICS Archive, CGM , FITS, DXF

4.4.3 数据格式转换工具 对于特定的可视化系统,往往只支持部分数据格式 随着数据交换需求的增加,迫切需要数据格式转换工具 数据格式转换工具很多,代表性的有: PhotoShop/GIMP—典型的图像处理软件 IFFCT--图像文件格式转换工具

4.5 VTK中的数据对象 VTK一般把数据表示成场数据,数据集是带有拓扑和几何结构的数据对象。除了空间结构,数据集还附带有属性数据。属性数据包括:标量,矢量,张量,法向,纹理坐标,以及场数据。

VTK中的数组类 vtkDataArray vtkBitArray vtkCharArray vtkDoubleArray vtkFloatArray vtkIdTypeArray vtkIntArray vtkLongArray vtkShortArray vtkUnsignedCharArray vtkUnsignedIntArray vtkUnsignedLongArray vtkUnsignedShortArray vtkVoidArray

VTK中的列表类 vtkCollection vtkAssemblyPath vtkAssemblyPaths vtkCullerCollection vtkDataArrayCollection vtkDataObjectCollection vtkDataSetCollection vtkIdListCollection vtkImageReader2Collection vtkImplicitFunctionCollection vtkLightCollection vtkMapperCollection vtkObjectFactoryCollection vtkOverrideInformationCollection vtkPlaneCollection vtkPolyDataCollection vtkPropCollection vtkActor2DCollection vtkActorCollection vtkProp3DCollection vtkVolumeCollection vtkRendererCollection vtkRenderWindowCollection vtkStructuredPointsCollection vtkTransformCollection

VTK中的拓扑单元类 vtkCell vtkCell3D vtkConvexPointSet vtkHexahedron vtkPyramid vtkTetra vtkVoxel vtkWedge vtkEmptyCell vtkGenericCell vtkLine vtkPixel vtkPolygon vtkPolyLine vtkPolyVertex vtkQuad vtkTriangle vtkTriangleStrip vtkVertex vtkNonLinearCell vtkExplicitCell vtkQuadraticEdge vtkQuadraticHexahedron vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle

VTK中的数据对象类 vtkDataObject vtkPiecewiseFunction vtkDataSet vtkImageData vtkStructuredPoints vtkImageCanvasSource2D vtkPointSet vtkPolyData vtkStructuredGrid vtkUnstructuredGrid vtkRectilinearGrid vtkUniformGrid vtkCompositeDataSet vtkHierarchicalDataSet vtkHierarchicalBoxDataSet vtkMultiBlockDataSet vtkFieldData vtkDataSetAttributes vtkPointData vtkCellData

VTK中的数据对象关系图

4.6 环境科学与工程中数据的表示 (1)离散点数据 如采样点数据(2d,3d) (2)结构格网数据 如流体计算网格 (3)规则格网数据 如DEM数据 (4)多边形数据 如地形图数据,流化床的结构数据

(0,1,0) (1,1,0) (0,0,0) (1,0,0) 4.7 在VTK中的创建数据对象示例 pcoords = vtk.vtkFloatArray() pcoords.SetNumberOfComponents(3) pcoords.SetNumberOfTuples(4) pcoords.SetTuple3(0, 0.0, 0.0, 0.0) pcoords.SetTuple3(1, 1.0, 0.0, 0.0) pcoords.SetTuple3(2, 0.0, 1.0, 0.0) pcoords.SetTuple3(3, 1.0, 1.0, 0.0) points = vtk.vtkPoints() 构造点集对象 points.SetData(pcoords) strips = vtk.vtkCellArray() 构造拓扑单元 strips.InsertNextCell(4) strips.InsertCellPoint(0) strips.InsertCellPoint(1) strips.InsertCellPoint(2) strips.InsertCellPoint(3) (0,1,0) (1,1,0) (0,0,0) (1,0,0)

temperature = vtk.vtkIntArray() temperature.SetName(“温度") temperature.InsertNextValue(10) temperature.InsertNextValue(20) temperature.InsertNextValue(30) temperature.InsertNextValue(40) concentration= vtk.vtkDoubleArray() concentration.SetName(“浓度") concentration.InsertNextValue(2.7) concentration.InsertNextValue(4.1) concentration.InsertNextValue(5.3) concentration.InsertNextValue(3.4) polydata = vtk.vtkPolyData() 构造多边形数据对象 polydata.SetPoints(points) 几何点 polydata.SetStrips(strips) 拓扑单元 polydata.GetPointData().SetScalars(temperature) 设置点集属性数据 polydata.GetPointData(). SetScalars(concentration)

4.8 VTK的文件格式 VTK文件以vtk为扩展名,由五个基本部分组成: (1)文件版本和标识部分,占一行 # vtk DataFile Version x.x 如: # vtk DataFile Version 2.0 (2)文件标题部分,一行,简要介绍文件内容 如:This is a dem file for test (3)文件格式部分,一行,必须是ASCII 或 BINARY 如:ASCII ( 4)数据的几何部分,必须是DATASET开头,后跟数据类型描述关键词 如: DATASET POLYDATA ( 5)数据的属性部分,必须是POINT_DATA或CELL_DATA 开头,后跟点或单元的数目。 如: POINT_DATA 10

注意点: 在vtk文件中,数据类型只能是如下几种: bit, unsigned_char, char, unsigned_short, short, unsigned_int, int, unsigned_long, long, float, or double 数组下标是从0开始的 如果在文件中同时有几何部分和属性部分,则几何部分必须出现在属性部分前面。 在属性部分的点或单元的数目必须和几何部分定义的数目一样多

vtk文件支持五种几何类型:structured points, structured grid, rectilinear grid, unstructured grid, and polygonal data。 (1) structured points 支持2D, 和 3D的结构点类型,坐标隐含表示 DATASET STRUCTURED_POINTS DIMENSIONS nx ny nz >= 1 ORIGIN x y z SPACING sx sy sz >0

(2) structured grid 支持2D, 和 3D的结构格网类型,坐标显式表示在POINTS段中: DATASET STRUCTURED_GRID DIMENSIONS nx ny nz >= 1 POINTS n dataType 定义构成结构格网的坐标点 p0x p0y p0z p1x p1y p1z ... p(n-1)x p(n-1)y p(n-1)z

(3) Rectilinear Grid 支持2D, 和 3D的正交格网类型,坐标轴显式表示在COORDINATES段中: DATASET RECTILINEAR_GRID DIMENSIONS nx ny nz >= 1 X_COORDINATES nx dataType x0 x1 ... x(nx-1) Y_COORDINATES ny dataType y0 y1 ... y(ny-1) Z_COORDINATES nz dataType z0 z1 ... z(nz-1)

(4) Polygonal Data 支持2D, 和 3D的多边形类型,一般由POINTS ,VERTICES, LINES, POLYGONS, TRIANGLE_STRIPS几个部分组成。 POINTS段定义多边形的坐标。 VERTICES, LINES, POLYGONS, TRIANGLE_STRIPS是可选段,定义拓扑单元。 DATASET POLYDATA POINTS n dataType p0x p0y p0z p1x p1y p1z ... p(n-1)x p(n-1)y p(n-1)z VERTICES n size numPoints0, i0, j0, k0, ... numPoints1, i1, j1, k1, ... numPointsn-1, in-1, jn-1, kn-1, ...

LINES n size numPoints0, i0, j0, k0, ... numPoints1, i1, j1, k1, ... ... numPointsn-1, in-1, jn-1, kn-1, ... POLYGONS n size TRIANGLE_STRIPS n size

CELL_TYPES n type0 type1 type2 ... typen-1 (5) Unstructured Grid 表示任意的数据类型: DATASET UNSTRUCTURED_GRID POINTS n dataType p0x p0y p0z p1x p1y p1z ... p(n-1)x p(n-1)y p(n-1)z CELLS n size numPoints0, i, j, k, l, ... numPoints1, i, j, k, l, ... numPoints2, i, j, k, l, ... numPointsn-1, i, j, k, l, ...

vtk文件中属性数据的表示: 类型:标量,矢量, 法向量, 纹理坐标, 张量, 和场数据 类别:点属性和拓扑单元属性 (1)标量 SCALARS dataName dataType numComp #(1,1-4) LOOKUP_TABLE tableName #(“default”) s0 s1 ... sn-1

(2)Lookup Table LOOKUP_TABLE tableName size r0 g0 b0 a0 r1 g1 b1 a1 ... rsize-1 gsize-1 bsize-1 asize-1 (3)VECTOR VECTORS dataName dataType v0x v0y v0z v1x v1y v1z v(n-1)x v(n-1)y v(n-1)z

(4) NORMALS NORMALS dataName dataType n0x n0y n0z n1x n1y n1z ... n(n-1)x n(n-1)y n(n-1)z (5)Texture Coordinates TEXTURE_COORDINATES dataName dim dataType t00 t01 ... t0(dim-1) t10 t11 ... t1(dim-1) t(n-1)0 t(n-1)1 ... t(n-1)(dim-1)

(6) Tensors TENSORS dataName dataType

(7) FIELD FIELD dataName numArrays arrayName0 numComponents numTuples dataType f00 f01 ... f0(numComponents-1) f10 f11 ... f1(numComponents-1) ... f(numTuples-1)0 f(numTuples-1)1 ... f(numTuples-1)(numComponents-1) arrayName1 numComponents numTuples dataType arrayName(numArrays-1) numComponents numTuples dataType

实例1: # vtk DataFile Version 2.0 Cube example ASCII DATASET POLYDATA POINTS 8 float 0.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 1.0 0.0 1.0 1.0 1.0 1.0 0.0 1.0 1.0 POLYGONS 6 30 4 0 1 2 3 4 4 5 6 7 4 0 1 5 4 4 2 3 7 6 4 0 4 7 3 4 1 2 6 5 CELL_DATA 6 SCALARS cell_scalars int 1 LOOKUP_TABLE default 1 2 3 4 5 NORMALS cell_normals float 0 0 -1 0 0 1 0 -1 0 0 1 0 -1 0 0 1 0 0 FIELD FieldData 2 cellIds 1 6 int 0 1 2 3 4 5 faceAttributes 2 6 float 0.0 1.0 1.0 2.0 2.0 3.0 3.0 4.0 4.0 5.0 5.0 6.0 POINT_DATA 8 SCALARS sample_scalars float 1 LOOKUP_TABLE my_table 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 LOOKUP_TABLE my_table 8 0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 1.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0

DATASET STRUCTURED_POINTS DIMENSIONS 3 4 6 ASPECT_RATIO 1 1 1 实例2: # vtk DataFile Version 2.0 Volume example ASCII DATASET STRUCTURED_POINTS DIMENSIONS 3 4 6 ASPECT_RATIO 1 1 1 ORIGIN 0 0 0 POINT_DATA 72 SCALARS volume_scalars char 1 LOOKUP_TABLE default 0 0 0 0 0 0 0 0 0 0 0 0 0 5 10 15 20 25 25 20 15 10 5 0 0 10 20 30 40 50 50 40 30 20 10 0

实例3: # vtk DataFile Version 2.0 Unstructured Grid Example ASCII DATASET UNSTRUCTURED_GRID POINTS 27 float 0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 0 0 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 1 0 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 3 0 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 5 0 1 6 1 1 6 2 1 6 CELLS 11 60 8 0 1 4 3 6 7 10 9 8 1 2 5 4 7 8 11 10 4 6 10 9 12 4 5 11 10 14 6 15 16 17 14 13 12 6 18 15 19 16 20 17 4 22 23 20 19 3 21 22 18 3 22 19 18 2 26 25 1 24 CELL_TYPES 11 12 10 7 6 9 5 3 1 POINT_DATA 27 SCALARS scalars float 1 LOOKUP_TABLE default 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 21.0 22.0 23.0 24.0 25.0 26.0 VECTORS vectors float 1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1

class VtkData(pyvtk.common.Common) | ======= | | Represents VTK file that has four relevant parts: | header - string up to length 256 | format - string: ascii | binary | DataSet - StructuredPoints | StructuredGrid | UnstructuredGrid | | RectilinearGrid | PolyData | Data - PointData | CellData | Usage: | ------ | v = VtkData(<DataSet instance> [,<header string>,<Data instances>,..]) | v.tofile(filename, format = 'ascii') - save VTK data to file. | DataSet | StructuredPoints(<3-sequence of dimensions> | [,<3-sequence of origin> [, <3-sequence of spacing>]]) | StructuredGrid(<3-sequence of dimensions>, | <sequence of 3-sequences of points>)

| UnstructuredGrid(<sequence of 3-sequences of points> | [,<cell> = <sequence of (sequences of) integers>]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = <sequence of x-coordinates>], | [y = <sequence of y-coordinates>], | [z = <sequence of z-coordinates>]) | PolyData(<sequence of 3-sequences of points>, | [vertices = <sequence of (sequences of) integers>], | [lines = <sequence of (sequences of) integers>], | [polygons = <sequence of (sequences of) integers>], | [triangle_strips = <sequence of (sequences of) integers>]) | | Data | ==== | PointData | CellData ([<DataSetAttr instances>]) - construct Data instanc | DataSetAttr | =========== | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field | Scalars(<sequence of scalars> [,name[, lookup_table]])

| ColorScalars(<sequence of scalar sequences> [,name]) | LookupTable(<sequence of 4-sequences> [,name]) | Vectors(<sequence of 3-sequences> [,name]) | Normals(<sequence of 3-sequences> [,name]) | TextureCoordinates(<sequence of (1,2, or 3)-sequences> [,name]) | Tensors(<sequence of (3x3)-sequences> [,name]) | Field([name,] [arrayname_1 = sequence of n_1-sequences, ... | arrayname_m = sequence of n_m-sequences,]) | where len(array_1) == .. == len(array_m) must hold. | | Methods defined here: | __init__(self, structure, *args) | tofile(self, filename, format='ascii') | ----------------------------------------------------------------------

celldata = CellData(\ Scalars([0,1,2,3,4,5], name='cell_scalars'), Normals([[0,0,-1],[0,0,1],[0,-1,0], [0,1,0],[-1,0,0],[1,0,0]], name='cell_normals'), Field('FieldData', cellIds=[[0],[1],[2],[3],[4],[5]], faceAttributes=[[0,1],[1,2],[2,3],[3,4],[4,5],[5,6]])) vtk = VtkData(structure,pointdata,celldata) vtk.tofile('example1','ascii') vtk.tofile('example1b','binary') #!/usr/bin/env python import sys sys.path = ['..']+sys.path if sys.version[:3]=='1.5': from lib152 import * else: from lib import * #from pyvtk import * structure = PolyData(points=[[0,0,0],[1,0,0],[1,1,0],[0,1,0], [0,0,1],[1,0,1],[1,1,1],[0,1,1]], polygons=[[0,1,2,3],[4,5,6,7],[0,1,5,4], [2,3,7,6],[0,4,7,3],[1,2,6,5]]) pointdata = PointData(\ Scalars([0,1,2,3,4,5,6,7], name='sample_scalars', lookup_table='my_table'), LookupTable([[0,0,0,1],[1,0,0,1],[0,1,0,1],[1,1,0,1], [0,0,1,1],[1,0,1,1],[0,1,1,1],[1,1,1,1]], name='my_table'))

#!/usr/bin/env python import sys sys.path = ['..']+sys.path if sys.version[:3]=='1.5': from lib152 import * else: from lib import * #from pyvtk import * vtk = VtkData(StructuredPoints([3,4,6]), PointData(Scalars([0,0,0,0,0,0,0,0,0,0,0,0, 0,5,10,15,20,25,25,20,15,10,5,0, 0,10,20,30,40,50,50,40,30,20,10,0, 0,0,0,0,0,0,0,0,0,0,0,0 ]))) vtk.tofile('example2') vtk.tofile('example2b','binary')

#!/usr/bin/env python import sys sys.path = ['..']+sys.path if sys.version[:3]=='1.5': from lib152 import * else: from lib import * #from pyvtk import * points = [[0,0,0],[1,0,0],[2,0,0],[0,1,0],[1,1,0],[2,1,0], [0,0,1],[1,0,1],[2,0,1],[0,1,1],[1,1,1],[2,1,1], [0,1,2],[1,1,2],[2,1,2],[0,1,3],[1,1,3],[2,1,3], [0,1,4],[1,1,4],[2,1,4],[0,1,5],[1,1,5],[2,1,5], [0,1,6],[1,1,6],[2,1,6] ] vectors = [[1,0,0],[1,1,0],[0,2,0],[1,0,0],[1,1,0],[0,2,0], [1,0,0],[1,1,0],[0,2,0],[1,0,0],[1,1,0],[0,2,0], [0,0,1],[0,0,1],[0,0,1],[0,0,1],[0,0,1],[0,0,1], [0,0,1],[0,0,1],[0,0,1] vtk = VtkData(\ UnstructuredGrid(points, hexahedron=[[0,1,4,3,6,7,10,9], [1,2,5,4,7,8,11,10]], tetra=[[6,10,9,12], [5,11,10,14]], polygon=[15,16,17,14,13,12], triangle_strip=[18,15,19,16,20,17], quad=[22,23,20,19], triangle=[[21,22,18], [22,19,18]], line=[26,25], vertex=[24] ), PointData(Vectors(vectors),Scalars(range(27))), 'Unstructured Grid Example' ) vtk.tofile('example3') vtk.tofile('example3b','binary')

下一节课内容: 第五讲 二维标量场可视化 网格序列法 网格无关法 区域填充法 曲面标量场可视化