With ReadVTK.jl you can read in data from VTK XML files in Julia. It aims to complement the excellent package WriteVTK.jl. ReadVTK is part of the JuliaVTK Framework.
Note: ReadVTK was mainly motivated by wanting to write proper tests for Trixi2Vtk.jl. A lot of useful features are still missing (see below), and community contributions to improve this package are welcome!
First, load the package with
using ReadVTK
Open a VTK file by creating a VTKFile
object and passing the filename to the
constructor:
vtk = VTKFile(get_example_file("celldata_appended_binary_compressed.vtu"))
To retrieve information about the cell data, use
cell_data = get_cell_data(vtk)
The return object of type VTKCellData
allows access to the individual
VTKDataArray
s using a dictionary-like syntax:
element_ids = cell_data["element_ids"]
Finally, the actual data can be obtained by executing
data = get_data(element_ids)
Full example including REPL output:
julia> using ReadVTK
julia> vtk = VTKFile(get_example_file("celldata_appended_binary_compressed.vtu"))
VTKFile("celldata_appended_binary_compressed.vtu", <XMLDocument>, "UnstructuredGrid", "1.0.0", "LittleEndian", "vtkZLibDataCompressor", <appended_data>, 4434, 3085)
julia> cell_data = get_cell_data(vtk)
VTKData()
julia> element_ids = cell_data["element_ids"]
VTKDataArray("element_ids")
julia> data = get_data(element_ids)
3085-element reinterpret(Int64, ::Vector{UInt8}):
1
2
3
⋮
3083
3084
3085
Further example VTK files can be found in the
ReadVTK_examples
repository.
UnstructuredGrid
, StructuredGrid
, RectilinearGrid
,ImageData
, PUnstructuredGrid
,PStructuredGrid
PRectilinearGrid
,PImageData
, or PolyData
ImageData
,PImageData
files: get origin, spacing, and extent informationRectilinearGrid
,PRectiLinearGrid
files: get 1D coordinate vectorsStructuredGrid
,PStructuredGrid
files: get coordinate arraysPolyData
files containing vortices, lines, and/or polygonsPVD
filesUnstructuredGrid
type tested)raw
header_type
is hardcoded to UInt64
PolyData
files other than vortices, lines, and/or polygonsHelpful resources for working with (i.e., reading and writing) VTK XML files:
We use JuliaFormatter.jl to keep a consistent code formatting. If you have installed JuliaFormatter.jl, just run
using JuliaFormatter; format(".")
in the top-level directory of ReadVTK.jl to update the formatting.
ReadVTK is maintained by the Trixi authors. Its principal developers are Michael Schlottke-Lakemper (RWTH Aachen University, Germany) and Hendrik Ranocha (Johannes Gutenberg University Mainz, Germany).
Further contributions to ReadVTK have been made by the following people:
ReadVTK is licensed under the MIT license (see LICENSE.md). Since ReadVTK is an open-source project, we are very happy to accept contributions from the community. Please refer to CONTRIBUTING.md for more details. To get in touch with the developers, join us on Trixi's Slack workspace or create an issue.
This package would not exist without the nice work of Juan Ignacio Polanco and his cleanly written and well-documented package WriteVTK.jl.