Affiliate disclosure
Book titles on this page link to Amazon. As an Amazon Associate, DataField.Dev earns from qualifying purchases — at no additional cost to you.
Chapter 26 — Further Reading: Visualization Output
The chapter taught the smallest complete path from a Fortran array to a picture. These resources take each step further — the format specification you should keep open in a tab, the two big viewers, the plotting tools, and the one topic (color) where a careless default actively misleads readers.
The format specification
- "VTK File Formats" (Kitware documentation). The authoritative description of both the legacy
.vtkformat and the XML formats (.vti,.vtr,.vts,.vtu, and their parallel.p*variants). Keep it open when you write a writer; the legacy structured-points and unstructured-grid sections are short and worth reading in full once. This is the primary source behind §26.1–26.2. - Schroeder, Martin & Lorensen, The Visualization Toolkit (Kitware). The book behind VTK. You do not need it to write files, but its early chapters explain the data model — points, cells, attributes, dataset types — which is exactly the mental model that makes "which format?" an easy question.
The viewers
- Ayachit, The ParaView Guide (Kitware). The official ParaView manual. Read the "Loading Data" and "Animation" chapters to go beyond Apply-and-color: filters (contour, slice, warp-by-scalar, calculator), the animation/time controls, and saving a figure or movie. Free as a PDF from the ParaView site.
- VisIt User Manual (Lawrence Livermore National Laboratory). The counterpart for VisIt. If your lab standardizes on VisIt, its "Getting Data Into VisIt" and Pseudocolor-plot sections map one-to-one onto the ParaView workflow in §26.3.
The lightweight plotting tools
- matplotlib documentation — the
imshow,pcolormesh, andcontourpages, and the "Choosing Colormaps" guide. The reference for §26.5. The colormaps guide in particular explains perceptual uniformity and whyviridis/inferno/magma/plasmaare the safe defaults — read it once and you will never reach forjetagain. - gnuplot official documentation (the
splot,pm3d, andset palettesections). Everything behind §26.4's three-line heat map, plus contour lines, surface plots, and scriptable batch output — still an excellent, dependency-free way to plot a Fortran code's ASCII output.
Reading and writing VTK from Python
- PyVista and meshio (Python packages). When Python owns your I/O, these read and write VTK (and much
else) as first-class objects —
pyvistafor interactive rendering and analysis,meshiofor format conversion. Use them for post-processing; keep the in-loop writing in Fortran (§26.2's argument).
The one thing people get wrong: color
- Crameri, Shephard & Heron, "The misuse of colour in science communication," Nature Communications
(2020). The clearest published case that rainbow/
jetcolormaps distort data and disadvantage colorblind readers, with before/after examples. Short, persuasive, and the reason §26.5 defaults to a perceptually uniform map. - Moreland, "Diverging Color Maps for Scientific Visualization." The origin of ParaView's default cool-to-warm diverging map; a practical account of designing a colormap that represents magnitude honestly. Read it if you ever need a diverging map (data above/below a reference, like temperature anomaly).
Where the archival formats live
- Chapter 25 (this book) and the NetCDF / HDF5 user guides. VTK is for seeing data; NetCDF and HDF5 are for storing it at scale. For a large or long-running simulation, write the archival data with those and emit VTK (or read it into ParaView through their readers) for the frames you actually look at.
Suggested order
- Skim the "VTK File Formats" legacy section — you have already written one; now read the spec that governs it.
- Read the ParaView Guide chapters on loading data and animation, and reproduce §26.3's time series with your own solver's output.
- Read matplotlib's "Choosing Colormaps" guide, then redo your §26.5 figure with a deliberate colormap choice.
- Read Crameri et al. (2020) once — it will change your defaults permanently.
- Reach for PyVista/meshio only when a Python pipeline needs to read VTK back; keep writing it from Fortran.