VTK XML 文件格式
来源:互联网 发布:淘宝国际物流订单运费 编辑:程序博客网 时间:2024/06/13 10:47
文件来源: http://www.vtk.org/VTK/img/file-formats.pdf
vtk 提供 xml 数据格式, 比前述数据格式复杂,故也支持更多特征,主要是方便流管理和并行i/o,也有些特征,比如支持文件压缩,二进制解码,任意访问点,big/little 字节顺序,数据分块,支持非vtk扩展名等。xml不仅提供上述特征,也提供针对具体应用问题的特征标签支持。
vtk xml 数据文件包括两类:并行格式 和串行格式。
xml格式包括两类: 结构化,非结构化。
结构化格式,即数据集是单元的拓扑规则排序,比如图像的像素,体素,结构网格中使用的四面体,六面体。vtk中结构化数据集类型包括: vtkImageData, vtkRectilinearGrid, vtkStructuredGrid
非结构化格式:数据集不能由单元规则拓扑表示。数据集子块用pieces描述。包括:vtkPolydata, vtkUnstructuredGrid
常见数据类型和文件类型:
ImageData(.vti) -> vtkImageData(结构化)
PolyData(.vtp) -> vtkPolyData(非结构化)
RectilinearGrid(.vtr) -> vtkRectilinearGrid(结构化)
StructuredGrid(.vts) -> vtkStructuredGrid(结构化)
UnstructuredGrid(.vtu)-> vtkUnstructuredGrid(非结构化)
上述类型加P- 前缀,即对应类型的并行类型。
所有 vtk xml 文件都是合法的xml文件, 形式如下;
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
...
</VTKFile>
其中, type 表示该文件类型; version表示文件版本号(major.minor);byte_order表示字节码存储顺序(bigendian,littleendian), compressor, 有些数据支持压缩。
串行xml文件格式:
上述vtkfile之间嵌套的内容,称为数据集单元,为上述五类数据类型之一。每个数据集单元又包含若干piece单元。每个piece描述自己的几何属性(节点,单元),不同数据集类型的几何属性不同,但是任何数据集类型的piece都包含 pointdata 和 celldata,用来指明该piece中的节点和单元。
举例1: 结构化网格, 其中节点由points单元显示描述,单元由内容隐式描述。
<VTKFile type="StructuredGrid" ...>
<StructuredGrid WholeExtent =" x1 x2 y1 y2 z1 z2">
<Piece Extent = "x1 x2 y1 y2 z1 z2">
<PointData> ... </PointData>
<CellData> ... </CellData>
<Points> ... </Points>
</Piece>
</StructuredGrid>
</VTKFile>
举例2: 非结构化网格, 各piece的节点,单元都需要显示表示。
<VTKFile type="UnstructuredGrid" ...>
<UnstructuredGrid>
<Piece NumberOfPoints=# NumberOfCells=#>
<PointData> ... </PointData>
<CellData> ... </CellData>
<Points> .... </Points>
<Cells> ... </Cells>
</Piece>
</UnstructuredGrid>
</VTKFile>
数据集合(的属性值)由其节点,单元表示,如下
<PointData Scalars ="Pressure" Vectors="Velocity">
<DataArray Name="Velocity" Type=# Format=$> ... </DataArray>
<DataArray Name="Pressure" Type=# Format=$> ... </DataArray>
</PointData>
vtk允许使用任意数目的 DataArray 来描述与之关联数据集的节点,单元。 DataArray 的名称包括:
Scalars, Vectors, Normals, Tensors, TCoords
vtk也允许安如下方式定义/描述数据集的节点,单元:
points, 显式定义各个节点的坐标。
<Points>
<DataArray NumberOfComponents = "3" ...>
....
</DataArray>
</Points>
coordinates,显式定义坐标,并为每个方向的坐标值给出一个DataArray
<Coordinates>
<DataArray .. x_coordinate>
<DataArray .. y_coordinate>
<DataArray .. z_coordinate>
</Coordinates>
verts, lines, strips, ploys: 显式定义个节点的连接关系,单元类型也可由此连接关系隐式推导了。此类描述需要两个DataArray。第一个定义节点连接关系,所有cell里面的节点全部连接起来,第二个DataArray用来定义两个cell之间的offset(偏量)
<Verts>
<DataArray type="Int32" Name="connectivity" ..>
<DataArray type="Int32" Name="offsets" ...>
</Verts>
cells, 显式定义节点连接和单元类型。包括三个DataArray。第一个定义节点连接关系,包含所有节点;第二个定义cell之间的偏量,第三个定义每个cell的类型。
<Cells>
<DataArray type="Int32" Name="connectivity" ... >
<DataArray type="Int32" Name="offsets" ...>
<DataArray type="UInt8" Name="types" ..>
</Cells>
上述所有由DataArray定义的数据,几何,其中具体内容如下:
<DataArray type="Float32" Name="vectors" NumberOfComponents="3" format="appended" Offset="0" >
<DataArray type="Float32" Name="scalars" format="binary">
<DataArray type="Int32" Name="offsets" format="ascii" >
各属性值如下:
type, array中元素的数据类型, 如 Int8, UInt8, Int16, UInt16, Int32 .. Float32, Float64
name, array的名称
format, 数据存储格式,如 ascii binary appended
offset, 当format=appened, offset值就是追加数据距上一次数据尾巴的偏量
最后举例cfd后处理vtk数据格式:
1 <?xml version="1.0"?>
2 <VTKFile type="UnstructuredGrid"version="0.1"byte_order="LittleEndi an">
3 <UnstructuredGrid>
4 <PieceNumberOfPoints="3"NumberOfCells="1">
5 <PointDataScalars="Pressure"Vectors="Velocity">
6 <DataArray type="Float32"Name="Pressures"NumberOfComponents ="3"format="ascii">
10 </DataArray>
11
12 <DataArray type="Float32"Name="Density"format="ascii">
13 ...
14 </DataArray>
15
16 <DataArray type="Float32"Name="Velocity"NumberOfComponents= "2" format="ascii">
17 ...
18 </DataArray>
19
20 </PointData>
21
22 <Points>
23 <DataArraytype="Float32"NumberOfComponents="3"format="ascii" >
24 0.01 0.01 0.02
25 </Point>
26
27 <Cells>
28 <DataArray type="Int32"Name="connectivity"NumberOfComponent s="1"format="ascii">
29 0 1 2
30 </DataArray>
31
32 <DataArray type="Int32"Name="offsets"NumberOfComponents="1" format="ascii">
33 3
34 </DataArray>
35
36 <DataArray type="Int32"Name="types"NumberOfComponents="1"f ormat="ascii">
37 5
38 </DataArray>
39 </Cells>
40
41 <!--<CellData Scalars="Material">
42 <DataArray type="Int32" Name="Material" NumberOfComponents="1 " format="ascii">
43 1
44 </DataArray>
45 </CellData>
46 -->
47 </Piece>
48 </UnstructuredGrid>
49 </VTKFile>
- VTK XML 文件格式
- XML文件格式
- XML文件格式
- xml文件格式
- XML文件格式
- XML文件格式
- XML文件格式
- VTK能干什么?VTK大部分功能的细节简介,VTK能打开的文件格式
- xml文件格式如下
- xml 文件格式,以及dtd。。。
- xml文件格式如下
- xml文件格式如下
- XML文件格式简介
- VTK
- VTK
- vtk
- vtk
- vtk
- 旅游地产肯定会步入发展黄金时期
- dataserver 源码分析(三) 读写数据
- QQ微信营销软件防封操作秘籍
- 不再是缘
- String.subString内存泄露
- VTK XML 文件格式
- Live555接收h264使用ffmpeg解码为YUV420 .
- 为cocos2d-x3.2版本增加protobuffer2.5.0支持
- 实用嵌入式C Linux程序设计
- GUI Design Studio(资料整理)
- http 错误代码表
- 数据库建表
- 基于JAX-WS用wsdl生成webservice服务端代码
- STM32串口介绍