VTK XML 文件格式

     文件来源: 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文件, 形式如下;

     

       ...

     


     其中, type 表示该文件类型; version表示文件版本号(major.minor);byte_order表示字节码存储顺序(bigendian,littleendian), compressor, 有些数据支持压缩。

   

     串行xml文件格式:

     上述vtkfile之间嵌套的内容,称为数据集单元,为上述五类数据类型之一。每个数据集单元又包含若干piece单元。每个piece描述自己的几何属性(节点,单元),不同数据集类型的几何属性不同,但是任何数据集类型的piece都包含 pointdata 和 celldata,用来指明该piece中的节点和单元。


    举例1: 结构化网格, 其中节点由points单元显示描述,单元由内容隐式描述。

   

...

...

...

                 

       


  举例2: 非结构化网格, 各piece的节点,单元都需要显示表示。

     

 

...

...

....

               ...

 


数据集合(的属性值)由其节点,单元表示,如下

...

          ...


vtk允许使用任意数目的 DataArray 来描述与之关联数据集的节点,单元。 DataArray 的名称包括:

    Scalars, Vectors, Normals, Tensors, TCoords


vtk也允许安如下方式定义/描述数据集的节点,单元:

points, 显式定义各个节点的坐标。 

....


coordinates,显式定义坐标,并为每个方向的坐标值给出一个DataArray
 


verts, lines, strips, ploys: 显式定义个节点的连接关系,单元类型也可由此连接关系隐式推导了。此类描述需要两个DataArray。第一个定义节点连接关系,所有cell里面的节点全部连接起来,第二个DataArray用来定义两个cell之间的offset(偏量)

cells, 显式定义节点连接和单元类型。包括三个DataArray。第一个定义节点连接关系,包含所有节点;第二个定义cell之间的偏量,第三个定义每个cell的类型。


上述所有由DataArray定义的数据,几何,其中具体内容如下:

各属性值如下:

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 type="UnstructuredGrid"version="0.1"byte_order="LittleEndi   an">

  3

  4  NumberOfPoints="3"NumberOfCells="1">

  5   Scalars="Pressure"Vectors="Velocity">

  6         type="Float32"Name="Pressures"NumberOfComponents    ="3"format="ascii">


 10        

 11 

 12         type="Float32"Name="Density"format="ascii">

 13                 ...

 14        

 15         

 16         type="Float32"Name="Velocity"NumberOfComponents=   "2" format="ascii">

 17                 ...

 18        

 19    

 20   

 21    

 22   

 23       type="Float32"NumberOfComponents="3"format="ascii"   >             

 24               0.01 0.01 0.02

 25   

 26    

 27   

 28         type="Int32"Name="connectivity"NumberOfComponent    s="1"format="ascii">

 29         0 1 2

 30        

 31         

 32         type="Int32"Name="offsets"NumberOfComponents="1"    format="ascii">

 33         3

 34        

35         

 36         type="Int32"Name="types"NumberOfComponents="1"f    ormat="ascii">

 37         5

 38        

 39   

 40 

 41

 47

 48

 49     

你可能感兴趣的:(VTK)