About PVA

PVA (PyVisual Application) is a desktop application for exploring three-dimensional simulation output on spherical grids.

It is a node-graph front end over pyvisual, a thin layer on PyVista for data in spherical coordinates (radius, colatitude, longitude). Instead of writing a script, you build a graph: readers feed slices and filters, tracers follow magnetic field lines, and plot nodes send the results to a 3-D viewport. Change a parameter and only the affected part of the graph recomputes.

The application's Help menu has two entries: PyVisual Help opens this site's home page, and Report an Issue… opens the feedback tracker. File ▸ Browse Templates… opens the Templates page.

What it reads and draws

  • Model output from MAS and POT3D, plus generic HDF4 and HDF5 files, tables and geometry files.
  • Spacecraft ephemerides (through SunPy and JPL Horizons) and in situ measurements (through hapiclient and CDAWeb).
  • Slices, isosurfaces, clipped and filtered meshes, vector fields and glyphs, volume patches.
  • Field lines traced with the MAS tracer (mapflpy), including tracing across domains.
  • Animations driven by parameters, rendered in the application or headless from the command line, and 3-D scenes exported as glTF.
The Inter-Domain Trace template: traced field lines in the viewport and the graph on the canvas
The Inter-Domain Trace template: traced field lines in the viewport and the graph on the canvas

Who makes it

PVA is developed by Predictive Science Inc. © 2026 Predictive Science Inc.. It is released under the Apache 2.0 license. This site documents version 1.12.0.

PSI Packages

PackageVersionRole
psi-pyvisual [cite] 1.0.3 The pyvisual library: 3-D visualization of spherical-coordinate model output, built on PyVista.
psi-io [cite] 2.2.1 Reading and writing PSI's HDF4 and HDF5 data files, with interpolation helpers.
mapflpy [cite] 1.2.1 Python interface to the MAS field-line tracer, used by the Tracer nodes.
psi-data-utils [cite] 1.0.0 Downloads and caches the sample data sets used by the stock templates and the tutorial.

Build Packages

PackageVersionRole
PySide6 [cite] 6.11.1 Qt for Python: the application's windows, canvas and panes.
PyVista [cite] 0.48.4 The 3-D plotting layer over VTK.
pyvistaqt 0.11.4 Embeds PyVista plotters in Qt windows.
VTK [cite] 9.6.2 The visualization toolkit that renders every viewport.
NumPy [cite] 2.5.2 Array computation behind the function nodes.
SciPy [cite] 1.18.0 Interpolation and numerical routines.
Astropy [cite] 8.0.0 Units, quantities and table reading.
SunPy [cite] 8.0.0 Spacecraft ephemerides through JPL Horizons.
hapiclient [cite] 0.2.6 In situ spacecraft measurements from CDAWeb through the HAPI protocol.
pandas [cite] 3.0.3 Tabular data handling.
h5py [cite] 3.16.0 HDF5 file access.
pyhdf [cite] 0.11.6 HDF4 file access.
Matplotlib [cite] 3.11.0 Colormaps.
superqt [cite] 0.8.2 Extra Qt widgets such as range sliders.
qtawesome [cite] 1.4.2 The icon fonts used for node and menu icons.
cmap [cite] 0.7.2 Colormap catalog.
pooch [cite] 1.9.0 Data file fetching and caching.
PyYAML [cite] 6.0.3 Settings and session files.
psutil [cite] 7.2.2 Memory and CPU checks for animation rendering.
FFmpeg [cite] 8.1.2 Encodes animation frames into movies (LGPL 2.1 or later).
OpenH264 [cite] 2.6.0 The H.264 encoder (libopenh264) that FFmpeg uses by default. OpenH264 Video Codec provided by Cisco Systems, Inc.
imageio-ffmpeg 0.6.0 Fallback FFmpeg lookup.
PlasmaPy [cite] Method reference for the Null Points node's trilinear null finder (plasmapy.analysis.nullpoint); not a runtime dependency.

Citations

If you use PVA, please also cite the work behind the packages and models you rely on. Entries follow AGU style, alphabetical by first author.

Acknowledgment text

The data services ask for the following wording in publications that use their data.