Skip to main content

skyvista

3D gridded atmospheric data visualization in Python

skyvista provides scientifically accurate 3D visualization of gridded atmospheric science data (but likely applicable in many other disciplines). Skyvista's visualizations are primarily built on top of the pyvista library, and with the appropriate setup can be rendered directly in jupyter notebooks or IDEs, or written to disk. Pyvista is capable of creating interactive visualizations in pure HTML, making these visualizations conveniently portable. Skyvista also contains simplified functionality for creating animations of 3D data using pyvista, in addition to single visualizations.

Example visualization

Features

  • Gridded data visualization: Create sets of isosurfaces, volumes, vectors, or planes (for things like land/ocean surfaces or cross-sections) from xarray datasets
  • Multiple coordinate systems: Cartesian, geographic (lat/lon), spherical (radar range/azimuth/elevation), curvilinear, and unstructured grids with automatic detection
  • Trajectory visualization: Visualize Lagrangian trajectory data, with options to show trajectories as continuous arrows or as particles at their instantaneous positions
  • Animation support: Generate animations of time-evolving gridded atmospheric data
  • Camera control: Advanced camera positioning and following for dynamic views
  • Interactive HTML export: Export scenes to standalone interactive HTML files

Interactive example (download and open in browser)

Installation

First install skyvista, which will install pyvista as a dependency:

pip install skyvista

The Blender backend (physically based clouds, Scene.to_blender(), BlenderAnimation) needs the blender extra. It installs Blender itself as the bpy module, along with the Alembic and OpenVDB support and an ffmpeg for videos:

pip install "skyvista[blender]"

bpy has wheels only for Python 3.13, on Linux x86-64, Apple-silicon macOS and Windows. Elsewhere, set $SKYVISTA_BLENDER to a standalone Blender 5.1+ program. To run the example notebooks in examples/notebooks, install the notebooks extra instead, which adds JupyterLab and the model-output readers:

pip install "skyvista[notebooks]"

On a modern VTK (>= 9.3), rendering to disk on a headless machine works with no extra setup: skyvista auto-configures offscreen rendering (EGL on a GPU, OSMesa on CPU) when you import skyvista. To verify your environment, run the built-in doctor, which does a real offscreen render and prints an actionable fix for anything that's wrong:

python -m skyvista        # or:  import skyvista as sv; sv.doctor()

Live interactive plots inside Jupyter can still need a per-frontend nudge (and some setups need an OSMesa VTK build); see docs/pyvista_setup_tips.md for the details. You can also sanity-check PyVista directly with its sample bunny:

from pyvista import examples
dataset = examples.download_bunny()
dataset.plot(cpos='xy')

Quick Start

import skyvista as sv
import xarray as xr

storm_ds = xr.open_dataset("model_output.nc")

scene = sv.Scene()
scene.add_contour(storm_ds, "W", isosurfaces=[1, 3, 5, 10], cmap="Greens", opacity=0.8)
scene.add_contour(storm_ds, "RC", cmap="Blues", opacity=0.4)
scene.show()

For a full walkthrough of the API (convenience functions, factory functions, and VarSpec classes), see the API guide notebook.

For examples of working with different coordinate systems (geographic, radar/spherical, curvilinear), see the coordinate systems demo.

Data Format

Gridded data should be xarray Datasets with dimensions x, y, z, and optionally time for animations. Skyvista auto-detects the coordinate system from coordinate names or CF convention attributes. See the coordinate systems demo for details on supported formats.

License

MIT License

Citation

If you use skyvista in your research, please cite:

@software{skyvista,
  author = {Davis, Charles},
  title = {skyvista: 3D gridded atmospheric data visualization in Python},
  year = {2026},
  url = {https://github.com/cmdavis4/skyvista}
}

Metadata

Release files for skyvista 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skyvista 1.3.0
File Size Uploaded Provenance
skyvista-1.3.0.tar.gz 213.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for skyvista 1.3.0
File Interpreter ABI Platform
skyvista-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 399.9 kB

Release files / skyvista-1.3.0.tar.gz

Download URL skyvista-1.3.0.tar.gz
Size 213.0 kB
Tags Source
SHA-256 checksum
How to use checksums
87aa25543f79c7533cba5f35724d478ca9be8176642b438e5ff6313b2e065478
BLAKE2b-256 checksum
How to use checksums
61287d03156e1a80f9e5d2355adb0c93296d80873e83b1ef696795c5c23566eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / skyvista-1.3.0-py3-none-any.whl

Download URL skyvista-1.3.0-py3-none-any.whl
Size 186.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d127a3f2b10083f9f1fb8085b131513cff80f5351e32bc40c164aefdfc9bc099
BLAKE2b-256 checksum
How to use checksums
3e7122b24b7aab0d76b91ce0781c05d6c1cb6c6baccc09ed20a8f585dd990d6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Security for skyvista 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page