Usage Reference for pyvisfile.vtk
#
Constants#
Vector formats#
- pyvisfile.vtk.VF_LIST_OF_COMPONENTS#
[[x0, y0, z0], [x1, y1, z1]]
- pyvisfile.vtk.VF_LIST_OF_VECTORS#
[[x0, x1], [y0, y1], [z0, z1]]
Element types#
- pyvisfile.vtk.VTK_VERTEX#
- pyvisfile.vtk.VTK_POLY_VERTEX#
- pyvisfile.vtk.VTK_LINE#
- pyvisfile.vtk.VTK_POLY_LINE#
- pyvisfile.vtk.VTK_TRIANGLE#
- pyvisfile.vtk.VTK_TRIANGLE_STRIP#
- pyvisfile.vtk.VTK_POLYGON#
- pyvisfile.vtk.VTK_PIXEL#
- pyvisfile.vtk.VTK_QUAD#
- pyvisfile.vtk.VTK_TETRA#
- pyvisfile.vtk.VTK_VOXEL#
- pyvisfile.vtk.VTK_HEXAHEDRON#
- pyvisfile.vtk.VTK_WEDGE#
- pyvisfile.vtk.VTK_PYRAMID#
- pyvisfile.vtk.VTK_LAGRANGE_CURVE#
- pyvisfile.vtk.VTK_LAGRANGE_TRIANGLE#
- pyvisfile.vtk.VTK_LAGRANGE_QUADRILATERAL#
- pyvisfile.vtk.VTK_LAGRANGE_TETRAHEDRON#
- pyvisfile.vtk.VTK_LAGRANGE_HEXAHEDRON#
- pyvisfile.vtk.VTK_LAGRANGE_WEDGE#
Building blocks#
- class pyvisfile.vtk.DataArray(name, container, vector_padding=3, vector_format=0, components=None)[source]#
XML elements#
XML generators#
- class pyvisfile.vtk.InlineXMLGenerator(compressor=None, vtk_file_version=None)[source]#
- __init__(compressor=None, vtk_file_version=None)[source]#
- Parameters:
vtk_file_version –
a string
"x.y"
with the desired VTK XML file format version. Relevant versions are as follows:"0.1"
is the original version."1.0"
added support for 64-bit indices and offsets, as described here."2.0"
added support for ghost array data, as described here."2.1"
: added support for writing additional information attached to aDataArray
using information keys."2.2"
: changed the node numbering of the hexahedron, as described here.
- __call__(vtkobj)[source]#
Return an
XMLElement
.
- class pyvisfile.vtk.AppendedDataXMLGenerator(compressor=None, vtk_file_version=None)[source]#
- __call__(vtkobj)[source]#
Return an
XMLElement
.
- class pyvisfile.vtk.ParallelXMLGenerator(pathnames)[source]#
- __call__(vtkobj)[source]#
Return an
XMLElement
.
Convenience functions#
Examples#
Writing a structured mesh#
# contributed by Luke Olson
import numpy as np
n = 50
x, y = np.meshgrid(np.linspace(-1, 1, n),
np.linspace(-1, 1, n))
u = np.exp(-50 * (x**2 + y**2))
from pyvisfile.vtk import write_structured_grid
mesh = np.rollaxis(np.dstack((x, y)), 2)
write_structured_grid("test.vts", mesh,
point_data=[("u", u[np.newaxis, :, :])])
(You can find this example as
examples/vtk-structured-2d-plain.py
in the PyVisfile
source distribution.)
Writing an unstructured mesh#
import numpy as np
from pyvisfile.vtk import (
UnstructuredGrid, DataArray,
AppendedDataXMLGenerator,
VTK_VERTEX, VF_LIST_OF_VECTORS, VF_LIST_OF_COMPONENTS)
n = 5000
points = np.random.randn(n, 3)
data = [
("p", np.random.randn(n)),
("vel", np.random.randn(3, n)),
]
file_name = "points.vtu"
compressor = None
grid = UnstructuredGrid(
(n, DataArray("points", points, vector_format=VF_LIST_OF_VECTORS)),
cells=np.arange(n, dtype=np.uint32),
cell_types=np.asarray([VTK_VERTEX] * n, dtype=np.uint8))
for name, field in data:
grid.add_pointdata(DataArray(name, field,
vector_format=VF_LIST_OF_COMPONENTS))
from os.path import exists
if exists(file_name):
raise RuntimeError("output file '%s' already exists"
% file_name)
outf = open(file_name, "w")
AppendedDataXMLGenerator(compressor)(grid).write(outf)
outf.close()
(You can find this example as
examples/vtk-unstructured-points.py
in the PyVisfile
source distribution.)