Vtk模型是一种以文本方式表示的3D模型文件,其能够表示点面信息滚悄,而且能够以人类易读易懂的方式以文本的形式存储下来。在科学研究中,这种文件格式使用得非常多,我们这里详细的讲解一下,这种文件格式。
vtk是3D模型的一种格式,现在版本已经到4.0了。你可以在网上找到这种格式的详细解释,当然最好去google搜索。
打开bunny.vtk文件,我们以它和搭来解释vtk文件的格式,其中#是注释的开始
View Raw Code ?
# 这里表示使用的是vtk的3.0版本。虽然4.0版本已经出来了,不过目前广泛使用的仍然是3.0
# vtkDataFileVersion3.0
# 这一行是输出vtk文件的软件写的文字,无论什么都可以。
vtk output
#ASCII,表示这份vtk使用的标准ASCII码字符集
ASCII
# “DATASETPOLYDATA”表示多边形面集,面是由一个个点组成的
DATASETPOLYDATA
# 这里表示这个模型由35947个点组成,每个坐标的分量是一个浮点型
POINTS35947float
# 下面是35947个点的数据
-0.0378297 0.12794 0.00447467 -0.0447794 0.128887 0.00190497 -0.0680095 0.151244 0.0371953
-0.00228741 0.13015 0.0232201 -0.0226054 0.126675 0.00715587 -0.0251078 0.125921 0.00624226
-0.0371209 0.127449 0.0017956 0.033213 0.112692 0.0276861 0.0380425 0.109755 0.0161689
-0.0255083 0.112568 0.0366767 -0.0245306 0.112636 0.0373469 0.0274031 0.12156 0.0212208
-0.0628961 0.158419 -0.0175871 0.0400813 0.104202 0.0221684 0.0451532 0.0931968 0.0111604
..........................................
..........................................
POLYGONS 69451 277804
3 21216 21215 20399
3 9186 9280 14838
3 16020 13433 5187
3 16021 16020 5187
3 20919 20920 21003
3 23418 15239 23127
3 30553 27378 30502
..................
....................
CELL_DATA 69451
POINT_DATA 35947
你可以在 http://wenku.baidu.com/view/a67cdad049649b6648d747fc.htm 这个网站找到vtk 4.0版本的解释。下面对几个重要的段大棚渣落进行一下解释。
1、# vtk DataFile Version 3.0表示这个vtk文件的版本是3.0。最新版本是4.0,不过改变不大。
2、vtk output表示该文件是名字,一般写成vtk output就可以了,基本上,你没有必要去改变它。
3、ASCII表示该文件的格式,是ascii版本,该位置也可以写binary,那么这个文件就是二进制格式的了。
4、DATASET POLYDATA中的DATASET是关键字表示数据集的意思,POLYDATA表示数据的类型,可以取STRUCTED_POINTS、STRUCTURED_GRID、UNSTRUCTURED_GRID、POLYDATA、FIELD等。这里取的是POLYDATA,表示三角形或者四边形数据。
5、 POINTS 35947 float 表示这个模型由35947个点组成,每个点的分量,其数据类型是浮点型。这一行后面就是35947*3个float型数字了。每三个数字表示一个点。
6、 POLYGONS 69451 277804,POLYGONS是关键字,69451表示模型有69451个多边形组成,后面行的3 21216 21215 20399中的3表示每个多边形由三个顶点组成,如果等于4,那么每个多边形有4个顶点组成。277804表示整个POLYGONS占据的数组的长度,长度计算公式是69451*4 = 277804,乘数4是3 21216 21215 20399这组元素的长度(一共有4个元素),也就每一行元素的个数,这主要是用来计算存储空间的。
7、 接下来后面是69451行数据,每一行是一个多边形面。每个面由3个顶点组成,如3 21216 21215 20399这一行,后面的21216 21215 20399这三个数字,表示在上面的POINTS 35947 float段的顶点索引。
8、 CELL_DATA 69451 表示面的个数,和上面定义的面数目必须一致。
9、 POINT_DATA 35947表示点的个数,和“POINTS 35947 float”定义的也必须相同。 Ok,vtk格式就这么多精髓了,虽然有些关键字这里我们并没有讲到,但是已经足够了,在以后遇到如果不明白,可以质询我们,也可以查查网上的文档,用一下google。
你去谷歌"vtk file format pdf"下载一个pdf文档,里面是对vtk数据格式的说明,按照这个说明写个歼者C Code把数据输入进一个*.vtk的文件,然后在paraview里面导入这个文件就好了。我不知道怎么在百度知道里面上传液棚文件,所以附上这个pdf文档氏埋薯的截图以供参考。
假设你已经有了某个速度场的数据,数据格式可以被tecplot识别,比如netcdf,hdf5或者vtu格式。鼠标点击tecplot的 File -> Load Data 然后选择你的数据并选择相应的格式即可。我这里演示的是加载vtu格式文件(关于vtu格式请参考 File Format for VTK.pdf 或 网页 ),如下图所示(需注意的地方启碰已用红色框标改哗注)
点击[Open]按钮加载数据之后,可以显示数据中的物理场分布,如下图所示
计算流线的第一步是选中左侧栏的Streamtracers复选框,并在d出的小对话框中选择X轴方向的速度U和Y轴方向V(在你的速度场数据中是有的,我这里是vx和vz),如下图所示
然后第二步就是[OK]按钮之后,鼠标点击左侧栏Streamtrances和Details按钮中间的这个带箭头图标的按钮,然后你的鼠标指针就会变成一个小十字。用鼠标在右边的数据可视化区域中随便点击你想提取流线的地方,就会生成过此点的流线,如下图所示:
上面的步骤计算生成的流线只是在tecplot的绘图区显示了,但是如果不想用tecplot绘图,我想把这些流线数据保存为文件,然后用python画图。可以按照以下步骤 *** 作。
点击tecplot顶部的菜单栏: Data -> Extract -> Extract Streamtraces Over Time , 点击完这个 *** 作之后并没有什么对话框显示,表面上看没有任何反应 。 不要慌!!! 这个 *** 作已经在软件内部完成了并且记录了。接下来看看如何保存。
鼠标点击菜单 *** 作: File -> Write Data ,会d出如下图所示的对话框,选择你喜欢的文件名和文件格式,我这里选择的是ASCII码(明码)文件,如果你是tecplot高级用户或数据量巨大则可以选择二进制文件。
点击Save之后又会d出一个对话框,如下图所示。这里Zone(s)就会看到多了一个Streamtraces,这就是上一步点击extract data时生成的(表面上看,软件没有反应),次对话框d出后,Zone(s)下面的数据是全选中的,如果你不需要RestartFile1可以用鼠标点击你想要保存的数据,多选可以结合shift键实现!选中之后点OK就保存了。
保存的这个StreamLines.dat文件大致长这样:
这个而文件里面就记录了这些流线的坐标值和坐标点上对应的物理场值,变量总共有:X,Y,Z,T,Vx,Vz,P,Perm,Perm_log。共有7221个点,7217个element,这里的element是一个线段,其连接顺序见数据后面一段。
前面是按顺序列出的所有变量的值,后面核旁行部分是链接顺序。所以文件结构很简单,一看就能猜到他的组织结构。
读取流线数据很简单,找规律用python读取,然后想怎么绘图就怎么绘图了。
如果你不想费劲自己写程序,想获取读取文件的程序请到 九天学者-学术资源库 中留言获取!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)