上一节课内容回顾
-
Upload
cruz-moore -
Category
Documents
-
view
88 -
download
0
description
Transcript of 上一节课内容回顾
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾VTK A Tutorial 介绍 VTK 的基本内容
1 What is VTK
2 VTK 图形模型
3 VTK 可视化模型
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾1 VTK 结构
VTK 在 API 访问接口上包括两个主要部分
bull C ++实现的核心层
bull 自动生成的接口层包括 Tcl Java 和 Python
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾2 图形模型子系统
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾3 VTK 可视化管道
环境信息可视化 第四讲数据类型和数据操作
本节课内容41 可视化数据类型
42 科学数据管理
43 科学数据格式
44 图形图像数据格式
45 VTK 中的数据对象
46 VTK 的文件格式
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾1 VTK 结构
VTK 在 API 访问接口上包括两个主要部分
bull C ++实现的核心层
bull 自动生成的接口层包括 Tcl Java 和 Python
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾2 图形模型子系统
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾3 VTK 可视化管道
环境信息可视化 第四讲数据类型和数据操作
本节课内容41 可视化数据类型
42 科学数据管理
43 科学数据格式
44 图形图像数据格式
45 VTK 中的数据对象
46 VTK 的文件格式
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾2 图形模型子系统
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾3 VTK 可视化管道
环境信息可视化 第四讲数据类型和数据操作
本节课内容41 可视化数据类型
42 科学数据管理
43 科学数据格式
44 图形图像数据格式
45 VTK 中的数据对象
46 VTK 的文件格式
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
上一节课内容回顾3 VTK 可视化管道
环境信息可视化 第四讲数据类型和数据操作
本节课内容41 可视化数据类型
42 科学数据管理
43 科学数据格式
44 图形图像数据格式
45 VTK 中的数据对象
46 VTK 的文件格式
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
本节课内容41 可视化数据类型
42 科学数据管理
43 科学数据格式
44 图形图像数据格式
45 VTK 中的数据对象
46 VTK 的文件格式
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
41 可视化数据类型 可视化系统可看作完成多种数据映射操作的流水线
411 数据属性
bull数据源--相对于计算机系统 内部数据源--可视化系统内部产生的数据包括
保存在存储器中的数据 模型计算产生的数据
外部数据源--包括卫星数据实验数据等bull数据类型--数值型数据和图像型数据
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
bull数据量如何高效地处理生成和接受大量的数据现有科学计算数据具有下列特征
海量数据集数据随时间变化数据集由多个数据域组成数据集具有不同的成分和结构
bull数据的结构
数据系统的基本元素是位( bit )位之上有多级抽象表示(字节字结构记录等)
低层次上有一些基本的构造块(整数浮点数等)高层次上有数据和结构之类的对象
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
bull1048708 Dimensionality (number of independent variables)1048708 Parameters (dependent variables the data themselves)bull1048708 Data Type1048708 byte int float or real complex etc1048708 can mean object structures such as triangle strips or pointgeometry)bull1048708 Rank (the number of values associated with adependent variable)1048708 Rank 0 scalar1048708 Rank 1 vector1048708 Rank 2 tensorbull1048708 Structure1048708 mesh structure1048708 connection information or relations for data points)bull1048708 Aggregation (collections of dependent variables orstructures treated as a single entity)
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
Dataset Design Criteriabull1048708 Compact - compact storage for large databull1048708 Efficient - retrieve compute store as fast as possible (O(n) if possible)bull1048708 Mappable - into graphical primitives into visualization data structuresbull1048708 Minimal Coverage - a minimal number of data representations to balance efficiency against number of data typesbull1048708 Simple - simple data structures simple visualization algorithms
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
412 数据分类
数据集--单个记录文件或文件集合数据分类方法很多包括基于数据源数据格式和数据类型的分类方法
bull外部数据 内部数据bull原始数据 导出数据bull基本元素 逻辑集bull几何数据 特性数据bull记录数据
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
针对环境问题
bull 针对某一特征的数据- -属性数据如污染物浓度等
bull 针对某一空间位置上某一特征的数据--属性数据几何位置数据
bull 针对某一空间区域上某一特征的数据--属性数据几何位置数据空间拓扑数据
属性数据几何位置数据
空间拓扑数据
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
413 网格数据
bull笛卡儿网格bull规整网格bull矩形网格bull结构网格bull非结构网格bull曲线网格bull块结构网格bull混合结构网格bull散乱点
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
42 科学数据管理用于科学计算可视化的数据库管理系统应具有
bull提供读写的一般方法bull对数据进行有效组织bull用户可接受的响应时间用户能与数据进行交互bull把数据管理与单纯的数据访问分开bull数据完整性的维护bull安全性策略
421 数据描述和处理语言SQL 语句分为
数据描述语言 DDL 数据处理 DML模块与过程
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
422 数据存档
bull原始数据bull内部导出数据bull图像或图像数据bull元数据
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
43 科学数据格式431 HDF格式是美国 NCSA 开发的一种科学数据格式是多对象文件格式bull结构通用的文件结构具有如下功能 能直接从文件获取与数据有关的信息 允许对数据和相关信息进行混合存贮 对多种常用数据集的描述和格式进行标准化 通过定义新的标记( tag)或标记组合方法存储任何类型的数据
bull数据类型bull 8为图像数据集bull 24 位图像数据集bull 科学数据集( SDS )--矩形网格数据bull 注解bull VSets
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
432 CDF和 NetCDFCDF-- NASA 开发的科学数据模型的具体实现NetCDF--美国 Unidata 开发的科学数据格式
bull结构bull数据bull使用
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
44 图形图像数据格式441 图形文件 图像文件生成图形从原始数据生成图像和图形经过了一系列变换过程每个变换过程可能产生不同于输入数据的输出数据这些数据按照一定的结构进行组织形成了图形图像文件
图形图像数据具有如下特点性
bull数据量大
bull结构性
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
442 图形图像文件格式bull 位图 光栅图像格式 Targa PCX GIF TIFF EA IFF 85 X Bitmap Ximage Sun Rasterfile PICT IIF
bull 向量 对象文件格式 OFF PostScript HPGL NTF PHICS Archive CGM FITS DXF
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
443 数据格式转换工具bull对于特定的可视化系统往往只支持部分数据格式bull随着数据交换需求的增加迫切需要数据格式转换工具
数据格式转换工具很多代表性的有
bullPhotoShopGIMPmdash典型的图像处理软件
bullIFFCT --图像文件格式转换工具
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
45 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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
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 vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
VTK 中的拓扑单元类vtkCell
vtkCell3D vtkConvexPointSet vtkHexahedron vtkPyramid vtkTetra vtkVoxel vtkWedge
vtkEmptyCell vtkGenericCell vtkLine vtkPixel vtkPolygon vtkPolyLine vtkPolyVertex vtkQuad
vtkTriangle vtkTriangleStrip vtkVertex vtkNonLinearCell
vtkExplicitCell vtkQuadraticEdge vtkQuadraticHexahedr
on vtkQuadraticQuad vtkQuadraticTetra vtkQuadraticTriangle
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作VTK 中的数据对象类vtkDataObject
vtkPiecewiseFunctionvtkDataSet
vtkImageDatavtkStructuredPoints
vtkImageCanvasSource2DvtkPointSet
vtkPolyDatavtkStructuredGridvtkUnstructuredGrid
vtkRectilinearGridvtkUniformGrid
vtkCompositeDataSet vtkHierarchicalDataSet
vtkHierarchicalBoxDataSet vtkMultiBlockDataSet
vtkFieldDatavtkDataSetAttributes
vtkPointDatavtkCellData
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
VTK 中的数据对象关系图
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
46 环境科学与工程中数据的表示
( 1)离散点数据 如采样点数据( 2d3d)( 2)结构格网数据 如流体计算网格( 3)规则格网数据 如 DEM 数据( 4)多边形数据 如地形图数据流化床的结构数据
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作47 在 VTK 中的创建数据对象示例pcoords = vtkvtkFloatArray()pcoordsSetNumberOfComponents(3)pcoordsSetNumberOfTuples(4)
pcoordsSetTuple3(0 00 00 00)pcoordsSetTuple3(1 10 00 00)pcoordsSetTuple3(2 00 10 00)pcoordsSetTuple3(3 10 10 00)
points = vtkvtkPoints() 构造点集对象pointsSetData(pcoords)
strips = vtkvtkCellArray() 构造拓扑单元stripsInsertNextCell(4)stripsInsertCellPoint(0)stripsInsertCellPoint(1)stripsInsertCellPoint(2)stripsInsertCellPoint(3)
(000) (100)
(010) (110)
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作temperature = vtkvtkIntArray()temperatureSetName(ldquo 温度 )temperatureInsertNextValue(10)temperatureInsertNextValue(20)temperatureInsertNextValue(30)temperatureInsertNextValue(40)
concentration= vtkvtkDoubleArray()concentrationSetName(ldquo 浓度 )concentrationInsertNextValue(27)concentrationInsertNextValue(41)concentrationInsertNextValue(53)concentrationInsertNextValue(34)
polydata = vtkvtkPolyData() 构造多边形数据对象polydataSetPoints(points) 几何点polydataSetStrips(strips) 拓扑单元
polydataGetPointData()SetScalars(temperature) 设置点集属性数据polydataGetPointData() SetScalars(concentration)
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作48 VTK 的文件格式VTK 文件以 vtk为扩展名由五个基本部分组成
( 1)文件版本和标识部分占一行 vtk DataFile Version xx 如 vtk DataFile Version 20( 2)文件标题部分一行简要介绍文件内容 如 This is a dem file for test( 3)文件格式部分一行必须是 ASCII 或 BINARY 如 ASCII( 4 )数据的几何部分必须是 DATASET 开头后跟数据类型描述关键词 如 DATASET POLYDATA( 5)数据的属性部分必须是 POINT_DATA 或 CELL_DATA 开头后跟点或单元的数目 如 POINT_DATA 10
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
注意点 bull在 vtk文件中数据类型只能是如下几种bit unsigned_char char unsigned_short shortunsigned_int int unsigned_long long float or double
bull 数组下标是从 0开始的
bull 如果在文件中同时有几何部分和属性部分则几何部分必须出现在属性部分前面
bull 在属性部分的点或单元的数目必须和几何部分定义的数目一样多
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
vtk文件支持五种几何类型 structured points structured grid rectilinear grid unstructured grid and polygonal data
( 1) structured points支持 2D 和 3D 的结构点类型坐标隐含表示
DATASET STRUCTURED_POINTSDIMENSIONS nx ny nz gt= 1ORIGIN x y zSPACING sx sy sz gt0
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 2) structured grid支持 2D 和 3D 的结构格网类型坐标显式表示在 POINTS段中
DATASET STRUCTURED_GRIDDIMENSIONS nx ny nz gt= 1POINTS n dataType 定义构成结构格网的坐标点p0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 3) Rectilinear Grid支持 2D 和 3D 的正交格网类型坐标轴显式表示在 COORDINATES段中
DATASET RECTILINEAR_GRIDDIMENSIONS nx ny nz gt= 1X_COORDINATES nx dataTypex0 x1 x(nx-1)Y_COORDINATES ny dataTypey0 y1 y(ny-1)Z_COORDINATES nz dataTypez0 z1 z(nz-1)
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作( 4) Polygonal Data支持 2D 和 3D 的多边形类型一般由 POINTS VERTICES LINES POLYGONS TRIANGLE_STRIPS 几个部分组成 POINTS段定义多边形的坐标 VERTICES LINES POLYGONS TRIANGLE_STRIPS 是可选段定义拓扑单元DATASET POLYDATAPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
VERTICES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作LINES n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
POLYGONS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
TRIANGLE_STRIPS n sizenumPoints0 i0 j0 k0 numPoints1 i1 j1 k1 numPointsn-1 in-1 jn-1 kn-1
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 5) Unstructured Grid表示任意的数据类型
DATASET UNSTRUCTURED_GRIDPOINTS n dataTypep0x p0y p0zp1x p1y p1zp(n-1)x p(n-1)y p(n-1)z
CELLS n sizenumPoints0 i j k l numPoints1 i j k l numPoints2 i j k l numPointsn-1 i j k l
CELL_TYPES ntype0type1type2typen-1
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
vtk 文件中属性数据的表示bull 类型标量 矢量 法向量 纹理坐标 张量 和场数据bull 类别点属性和拓扑单元属性( 1)标量SCALARS dataName dataType numComp ( 1 1- 4)LOOKUP_TABLE tableName (ldquo defaultrdquo)s0s1sn-1
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 2) Lookup TableLOOKUP_TABLE tableName sizer0 g0 b0 a0r1 g1 b1 a1rsize-1 gsize-1 bsize-1 asize-1
( 3 ) VECTORVECTORS dataName dataTypev0x v0y v0zv1x v1y v1zv(n-1)x v(n-1)y v(n-1)z
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 4) NORMALSNORMALS dataName dataTypen0x n0y n0zn1x n1y n1zn(n-1)x n(n-1)y n(n-1)z
( 5) Texture CoordinatesTEXTURE_COORDINATES dataName dim dataTypet00 t01 t0(dim-1)t10 t11 t1(dim-1)t(n-1)0 t(n-1)1 t(n-1)(dim-1)
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 6 ) TensorsTENSORS dataName dataType
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
( 7 ) FIELDFIELD dataName numArraysarrayName0 numComponents numTuples dataTypef00 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 dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)arrayName(numArrays-1) numComponents numTuples dataTypef00 f01 f0(numComponents-1)f10 f11 f1(numComponents-1)f(numTuples-1)0 f(numTuples-1)1 f(numTuples-1)(numComponents-1)
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作实例 1 vtk DataFile Version 20Cube exampleASCIIDATASET POLYDATAPOINTS 8 float00 00 0010 00 0010 10 0000 10 0000 00 1010 00 1010 10 1000 10 10POLYGONS 6 304 0 1 2 34 4 5 6 74 0 1 5 44 2 3 7 64 0 4 7 34 1 2 6 5
CELL_DATA 6SCALARS cell_scalars int 1LOOKUP_TABLE default012345NORMALS cell_normals float0 0 -10 0 10 -1 00 1 0-1 0 01 0 0FIELD FieldData 2cellIds 1 6 int0 1 2 3 4 5
faceAttributes 2 6 float00 10 10 20 20 30 30 40 40 50 50 60
POINT_DATA 8SCALARS sample_scalars float 1LOOKUP_TABLE my_table0010203040506070LOOKUP_TABLE my_table 800 00 00 1010 00 00 1000 10 00 1010 10 00 1000 00 10 1010 00 10 1000 10 10 1010 10 10 10
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作实例 2 vtk DataFile Version 20Volume exampleASCIIDATASET STRUCTURED_POINTSDIMENSIONS 3 4 6ASPECT_RATIO 1 1 1ORIGIN 0 0 0POINT_DATA 72SCALARS volume_scalars char 1LOOKUP_TABLE default0 0 0 0 0 0 0 0 0 0 0 00 5 10 15 20 25 25 20 15 10 5 00 10 20 30 40 50 50 40 30 20 10 00 10 20 30 40 50 50 40 30 20 10 00 5 10 15 20 25 25 20 15 10 5 00 0 0 0 0 0 0 0 0 0 0 0
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作实例 3 vtk DataFile Version 20Unstructured Grid ExampleASCIIDATASET UNSTRUCTURED_GRIDPOINTS 27 float0 0 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 00 0 1 1 0 1 2 0 1 0 1 1 1 1 1 2 1 10 1 2 1 1 2 2 1 2 0 1 3 1 1 3 2 1 30 1 4 1 1 4 2 1 4 0 1 5 1 1 5 2 1 50 1 6 1 1 6 2 1 6CELLS 11 608 0 1 4 3 6 7 10 98 1 2 5 4 7 8 11 104 6 10 9 124 5 11 10 146 15 16 17 14 13 126 18 15 19 16 20 174 22 23 20 193 21 22 183 22 19 182 26 251 24
CELL_TYPES 11121210107695531POINT_DATA 27SCALARS scalars float 1LOOKUP_TABLE default00 10 20 30 40 5060 70 80 90 100 110120 130 140 150 160 170180 190 200 210 220 230240 250 260
VECTORS vectors float1 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 01 0 0 1 1 0 0 2 0 1 0 0 1 1 0 0 2 00 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作class VtkData(pyvtkcommonCommon) | VtkData | ======= | | 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(ltDataSet instancegt [ltheader stringgtltData instancesgt]) | vtofile(filename format = ascii) - save VTK data to file | | DataSet | ======= | | StructuredPoints(lt3-sequence of dimensionsgt | [lt3-sequence of origingt [ lt3-sequence of spacinggt]]) | StructuredGrid(lt3-sequence of dimensionsgt | ltsequence of 3-sequences of pointsgt) |
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作 | UnstructuredGrid(ltsequence of 3-sequences of pointsgt | [ltcellgt = ltsequence of (sequences of) integersgt]) | cell - vertex | poly_vertex | line | poly_line | triangle | | triangle_strip | polygon | pixel | quad | tetra | | voxel | hexahedron | wedge | pyramid | RectilinearGrid([x = ltsequence of x-coordinatesgt] | [y = ltsequence of y-coordinatesgt] | [z = ltsequence of z-coordinatesgt]) | PolyData(ltsequence of 3-sequences of pointsgt | [vertices = ltsequence of (sequences of) integersgt] | [lines = ltsequence of (sequences of) integersgt] | [polygons = ltsequence of (sequences of) integersgt] | [triangle_strips = ltsequence of (sequences of) integersgt]) | | Data | ==== | | PointData | CellData ([ltDataSetAttr instancesgt]) - construct Data instanc | | DataSetAttr | =========== | | DataSetAttr - Scalars | ColorScalars | LookupTable | Vectors | | Normals | TextureCoordinates | Tensors | Field
| Scalars(ltsequence of scalarsgt [name[ lookup_table]])
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作 | ColorScalars(ltsequence of scalar sequencesgt [name]) | LookupTable(ltsequence of 4-sequencesgt [name]) | Vectors(ltsequence of 3-sequencesgt [name]) | Normals(ltsequence of 3-sequencesgt [name]) | TextureCoordinates(ltsequence of (12 or 3)-sequencesgt [name]) | Tensors(ltsequence of (3x3)-sequencesgt [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) | | ----------------------------------------------------------------------
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspathif sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
structure = PolyData(points=[[000][100][110][010] [001][101][111][011]] polygons=[[0123][4567][0154] [2376][0473][1265]])pointdata = PointData( Scalars([01234567] name=sample_scalars lookup_table=my_table) LookupTable([[0001][1001][0101][1101] [0011][1011][0111][1111]] name=my_table))
celldata = CellData( Scalars([012345] name=cell_scalars) Normals([[00-1][001][0-10] [010][-100][100]] name=cell_normals) Field(FieldData cellIds=[[0][1][2][3][4][5]] faceAttributes=[[01][12][23][34][45][56]]))
vtk = VtkData(structurepointdatacelldata)vtktofile(example1ascii)vtktofile(example1bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
vtk = VtkData(StructuredPoints([346]) PointData(Scalars([000000000000 05101520252520151050 0102030405050403020100 0102030405050403020100 05101520252520151050 000000000000 ])))
vtktofile(example2)vtktofile(example2bbinary)
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化
环境信息可视化 第四讲数据类型和数据操作 usrbinenv python
import syssyspath = []+syspath
if sysversion[3]==15 from lib152 import else from lib import
from pyvtk import
points = [[000][100][200][010][110][210] [001][101][201][011][111][211] [012][112][212][013][113][213] [014][114][214][015][115][215] [016][116][216] ]vectors = [[100][110][020][100][110][020] [100][110][020][100][110][020] [001][001][001][001][001][001] [001][001][001][001][001][001] [001][001][001] ]
vtk = VtkData( UnstructuredGrid(points hexahedron=[[014367109] [1254781110]] tetra=[[610912] [5111014]] polygon=[151617141312] triangle_strip=[181519162017] quad=[22232019] triangle=[[212218] [221918]] line=[2625] vertex=[24] ) PointData(Vectors(vectors)Scalars(range(27))) Unstructured Grid Example )vtktofile(example3)vtktofile(example3bbinary)
环境信息可视化 第四讲数据类型和数据操作
下一节课内容第五讲 二维标量场可视化
bull 网格序列法bull 网格无关法bull 区域填充法bull 曲面标量场可视化