Skip to main content

PyVista-based 3D visualization for atmospheric data

Project description

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

From here, pyvista configuration may be complicated depending on your setup. We recommend following the pyvista installation documentation and ensuring that you can successfully create an interactive bunny visualization, following the documentation's example:

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skyvista-1.1.0.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skyvista-1.1.0-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

Details for the file skyvista-1.1.0.tar.gz.

File metadata

  • Download URL: skyvista-1.1.0.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for skyvista-1.1.0.tar.gz
Algorithm Hash digest
SHA256 12dd3d658c9b5c3e2d135b437423b6445cc5cca4f920afd51100e057f44eccae
MD5 b9cca3db6a6f20e064ee8eff2c77d366
BLAKE2b-256 7acb56844729cbbce12a52128eecbab234153c2aeeafecac996381533fd29bfa

See more details on using hashes here.

File details

Details for the file skyvista-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: skyvista-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for skyvista-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1bd522f4f3e93affb25a8ddd85e5bf046c8580f82dac7c0f66bd013f3f87d05
MD5 5558d0a111bcec396a7d6f3b5bb566dc
BLAKE2b-256 fb03bae4ab699d5d922c73d24dbb4b7529ec8f2fd4fbe7b84bbbb1f3cfb7c534

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page