vtkwrite : Exports various 2D/3D data to ParaView in VTK file format

版本 2.3.0.0 (5.5 KB) 作者: CY Y
Exports 2D/3D image volume, vector field, surface, lines, polygons, etc. to ParaView
11.3K 次下载
更新时间 2016/10/3

Paraview is a powerful open-source software for visualization of large 3D dataset. It offers more options, details and much better performance than built-in Matlab 3D visualization modules. This function is an integration of several previous submissions regarding export of 3D data into VTK format. The function can save multiple vector and scalar field of the same size into a single VTK-formatted file to be viewed in ParaView. It can also export line or polygon objects. To maximize compatibility between different operating system, numerical data is by default saved in ascii format with precision of 3 digits behind decimal point. User can specify precision , e.g. vtkwrite('execute', 'structured_points', 'mri', D, 'precision, 5), instead of vtkwrite('execute', 'structured_points', 'mri', D). User can also choose to save numerical data in 'float' data type ( this option is not available for POLYDATA dataset type) by adding 'binary' to the command, e.g. vtkwrite('execute', 'structured_points', 'mri', D, binary).
Here are some example usages. Just type in the following codes.
Example 1 : export 3D array (typical of an image volume )

load mri
D = squeeze(D);
vtkwrite('mri.vtk', 'structured_points', 'mri', D)

If you've already setup system path to include the folder containing the ParaView binary, you can invoke ParaView directly by:

vtkwrite('execute', 'structured_points', 'mri', D)

In this case, a file named 'matlab_export.vtk' is saved and passed on to ParaView.

Example 2 : export 3D vector and scalar field

load wind
[cu,cv,cw] = curl(x, y, z, u, v, w);
div = divergence(x, y, z, u, v, w);
vtkwrite('wind.vtk', 'structured_grid', x, y, z, ...
'vectors', 'vector_field', u, v, w, 'vectors', 'vorticity', cu, cv, cw, 'scalars', 'divergence', div);

Usage is very similar for unstructured 3D data. Just change 'structured_grid' to 'unstructured_grid'. For example :

vtkwrite('random_vector.vtk', 'unstructured_grid',x,y,z, 'vectors','random_vector',u,v,w,)

Example 3 : export 3D line

x = 1:100;
y = sin(x);
z = sqrt(x);
vtkwrite('execute','polydata','lines',x,y,z);
optionally, user can specify precision of data output(default is 3). for example:

vtkwrite('line.vtk','polydata','lines',x,y,z,'precision',5);
Example 4 : export triangular data

[x,y,z] = peaks(100);
z = .4*z;
tri = delaunay(x,y);
vtkwrite('peaks.vtk','polydata','triangle',x,y,z,tri);

Example 5 : export tetrahedral data

d = [-1 1];
[x, y, z] = meshgrid(d, d, d);
DT = delaunayTriangulation(x(:), y(:), z(:));
vtkwrite('execute', 'polydata','tetrahedron', x, y, z, DT.ConnectivityList);

The usage of vector and scalar field input is the same as built-in quiver3 and scatter3 function, where x,y,z specifies the coordinates of the grid points and u,v,w the vector components. For multiple data array entry, they must have the same number of grid points. x,y,z only need to be specified once, followed by combination of [keyword, title, data]. You can add however many data arrays as you want. In the example above, you'll end up with a single VTK file with three data arrays of the same number of grid points. In the sample screenshot, the color of the arrow represents the magnitude of divergence.

In Paraview, press 'ctrl+o' to open file. Then on properties page immediately below pipeline browser, click 'Apply'. For line and polygon data, you should already see the correct representation of data. For 3D vector field, you have to further click on 'glyph' in the common toolbar, then choose the glyph object in the pipeline browser and click 'Apply'.

See file for more details on usage.

引用格式

CY Y (2024). vtkwrite : Exports various 2D/3D data to ParaView in VTK file format (https://github.com/joe-of-all-trades/vtkwrite), GitHub. 检索来源 .

MATLAB 版本兼容性
创建方式 R2016a
兼容任何版本
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

无法下载基于 GitHub 默认分支的版本

版本 已发布 发行说明
2.3.0.0

Added support for STRUCTURED_POINTS dataset, option to save in binary or ascii format. Added example.
Updated description
Edited tags

2.2.1.0

Revert to an earlier version.
Fix a small bug in previous version regarding triangular and tetrahedron datatypes.
Updated description.
linked to github repo

1.14.0.0

corrected typo in description

1.13.0.0

Added support for unstructured datatype. 'Execute' feature now also works in Unix and Macs OS.

1.12.0.0

Updated file description.

1.11.0.0

Adding option to export tetrahedron (3D triangulation) data

1.10.0.0

Update title

1.9.0.0

Corrected in mistake in line 97 where sidx was originally vidx.

1.8.0.0

corrected a mistake made in previous update (argument parsing for 'structured_grid' datatype)

1.7.0.0

Added option to call ParaView and load data automatically

1.6.0.0

Added option for user-specified precision for 'polydata' datatype and improved documentation.

1.5.0.0

yet another mistake...If you find it not working with the examples, please download it again. thanks

1.4.0.0

correct a mistake in the file

1.3.0.0

Addition of POLYDATA options.

1.2.0.0

added comments in the file

1.1.0.0

corrected typos

1.0.0.0

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库