PyVista3DViewer¶
Aliases:
petres.viewers.Viewer3D
- class petres.viewers.PyVista3DViewer[source]¶
Bases:
Base3DViewerRender and manage 3D geoscience scenes using PyVista.
This viewer configures a PyVista plotter with a scene theme and camera, and provides helpers to add domain objects such as corner-point grids, zones, and horizons.
- Parameters:
plotter (pyvista.Plotter or None, default=None) – Existing PyVista plotter to use. If
None, a new plotter is created.theme (PyVista3DViewerTheme or None, default=None) – Visual scene configuration. If
None, a default theme is used.camera (Camera3D or None, default=None) – Camera configuration. If
None, an isometric default camera setup is used.title (str, default="Petres 3D Viewer") – Optional title text shown in the viewer window.
Initialize viewer state with plotter, theme, and camera defaults.
- Raises:
AssertionError – If resolved
plotter,theme, orcamerahas an invalid type.
- theme: PyVista3DViewerTheme¶
- camera: Camera3D¶
- plotter: Plotter¶
- __init__(plotter=None, theme=None, camera=None, title='Petres 3D Viewer')[source]¶
Initialize viewer state with plotter, theme, and camera defaults.
- Raises:
AssertionError – If resolved
plotter,theme, orcamerahas an invalid type.
- set_plotter(plotter)[source]¶
Assign the underlying PyVista plotter.
- Parameters:
plotter (pyvista.Plotter) – Plotter instance used for all rendering operations.
- Raises:
AssertionError – If
plotteris not apyvista.Plotterinstance.
- set_theme(theme)[source]¶
Assign the active scene theme.
- Parameters:
theme (PyVista3DViewerTheme) – Theme containing background, axes, and title display settings.
- Raises:
AssertionError – If
themeis not aPyVista3DViewerThemeinstance.
- set_camera(camera)[source]¶
Assign the active camera configuration.
- Parameters:
camera (Camera3D) – Camera preset and relative view adjustments used for rendering.
- Raises:
AssertionError – If
camerais not aCamera3Dinstance.
- apply_theme(theme)[source]¶
Apply scene styling options to the active plotter.
- Parameters:
theme (PyVista3DViewerTheme) – Theme values controlling background color and axes visibility.
- show(*, title=None)[source]¶
Render the current scene and open the interactive viewer window.
- Parameters:
title (str or None, default=None) – Optional scene title text displayed at the configured theme position.
- add_grid(grid, *, show_inactive=False, color=None, scalars=None, cmap=None, **kwargs)[source]¶
Add a supported grid to the current 3D scene.
- Parameters:
grid (CornerPointGrid) – Grid object to visualize.
show_inactive (bool, default=False) – If
True, include inactive cells in the rendered geometry.color (Any, default=None) – Optional fixed color override for the grid mesh.
scalars (numpy.ndarray or None, default=None) – Optional scalar values for per-cell or per-point colormapping.
cmap (str or None, default=None) – Matplotlib-compatible colormap name used when
scalarsis provided.**kwargs (Any) – Additional keyword arguments forwarded to the grid layer renderer.
- Returns:
The current viewer instance for fluent chaining.
- Return type:
- Raises:
TypeError – If
gridis not a supported grid type.
- add_pillars(pillars, *, color='black', line_width=2.5, **kwargs)[source]¶
Add a pillar grid to the current 3D scene.
- Parameters:
pillars (PillarGrid) – Pillar grid model to render.
color (Any, default="black") – Color used for the pillar lines and direction arrows.
line_width (float, default=2.5) – Width used when rendering the pillar line.
**kwargs (Any) – Additional keyword arguments forwarded to the pillar layer renderer.
- Returns:
The current viewer instance for fluent chaining.
- Return type:
- add_wells(wells, *, label_font_size=15, label_color='red', line_color='red', line_width=2.0, **kwargs)[source]¶
- apply_camera(cam)[source]¶
Apply a camera preset and relative camera adjustments.
- Parameters:
cam (Camera3D) – Camera configuration containing a view preset and optional turn, tilt, roll, zoom, and depth orientation adjustments.
- Raises:
ValueError – If
cam.viewis not a recognized view preset.
- add_zones(zones, *, x=None, y=None, xlim=None, ylim=None, ni=None, nj=None, dx=None, dy=None, show_layers=True, cmap='gist_rainbow', **kwargs)[source]¶
Add multiple zones to the scene using a discrete colormap.
- Parameters:
zones (Sequence[Zone]) – Zone models to render.
x (numpy.ndarray or None, default=None) – X-vertex coordinates. If
None, computed from grid arguments.y (numpy.ndarray or None, default=None) – Y-vertex coordinates. If
None, computed from grid arguments.xlim (tuple[float, float] or None, default=None) – X-axis bounds used when generating vertices.
ylim (tuple[float, float] or None, default=None) – Y-axis bounds used when generating vertices.
ni (int or None, default=None) – Number of cells along X used for vertex generation.
nj (int or None, default=None) – Number of cells along Y used for vertex generation.
dx (float or None, default=None) – Cell size along X used for vertex generation.
dy (float or None, default=None) – Cell size along Y used for vertex generation.
show_layers (bool, default=True) – Whether to render individual layers within each zone.
cmap (str, default="gist_rainbow") – Colormap name used to assign a distinct color per zone.
**kwargs (Any) – Additional keyword arguments forwarded to zone rendering.
- Returns:
The current viewer instance for fluent chaining.
- Return type:
- add_zone(zone, *, x=None, y=None, xlim=None, ylim=None, ni=None, nj=None, dx=None, dy=None, color=None, show_layers=True, **kwargs)[source]¶
Add a single zone to the scene.
- Parameters:
zone (Zone) – Zone model to render.
x (numpy.ndarray or None, default=None) – X-vertex coordinates. If
None, computed from grid arguments.y (numpy.ndarray or None, default=None) – Y-vertex coordinates. If
None, computed from grid arguments.xlim (tuple[float, float] or None, default=None) – X-axis bounds used when generating vertices.
ylim (tuple[float, float] or None, default=None) – Y-axis bounds used when generating vertices.
ni (int or None, default=None) – Number of cells along X used for vertex generation.
nj (int or None, default=None) – Number of cells along Y used for vertex generation.
dx (float or None, default=None) – Cell size along X used for vertex generation.
dy (float or None, default=None) – Cell size along Y used for vertex generation.
color (Any or None, default=None) – Optional color override, converted to RGB when provided.
show_layers (bool, default=True) – Whether to render individual zone layers.
**kwargs (Any) – Additional keyword arguments forwarded to zone rendering.
- Returns:
The current viewer instance for fluent chaining.
- Return type:
- add_horizon(horizon, *, x=None, y=None, xlim=None, ylim=None, ni=None, nj=None, dx=None, dy=None, color=None, scalars=True, cmap=None, **kwargs)[source]¶
Add a single horizon surface to the scene.
- Parameters:
horizon (Horizon) – Horizon model used to compute a depth surface.
x (numpy.ndarray or None, default=None) – X-vertex coordinates. If
None, computed from grid arguments.y (numpy.ndarray or None, default=None) – Y-vertex coordinates. If
None, computed from grid arguments.xlim (tuple[float, float] or None, default=None) – X-axis bounds used when generating vertices.
ylim (tuple[float, float] or None, default=None) – Y-axis bounds used when generating vertices.
ni (int or None, default=None) – Number of cells along X used for vertex generation.
nj (int or None, default=None) – Number of cells along Y used for vertex generation.
dx (float or None, default=None) – Cell size along X used for vertex generation.
dy (float or None, default=None) – Cell size along Y used for vertex generation.
color (Any or None, default=None) – Optional fixed surface color.
scalars (bool, default=True) – If
True, scalar-based coloring is enabled for the surface.cmap (str or None, default=None) – Colormap name used when scalar coloring is enabled.
**kwargs (Any) – Additional keyword arguments forwarded to surface rendering.
- Returns:
The current viewer instance for fluent chaining.
- Return type:
- add_horizons(horizons, *, x=None, y=None, xlim=None, ylim=None, ni=None, nj=None, dx=None, dy=None, cmap='turbo', **kwargs)[source]¶
Add multiple horizons to the scene with distinct colors.
- Parameters:
horizons (Sequence[Horizon]) – Horizon models to render.
x (numpy.ndarray or None, default=None) – X-vertex coordinates. If
None, computed from grid arguments.y (numpy.ndarray or None, default=None) – Y-vertex coordinates. If
None, computed from grid arguments.xlim (tuple[float, float] or None, default=None) – X-axis bounds used when generating vertices.
ylim (tuple[float, float] or None, default=None) – Y-axis bounds used when generating vertices.
ni (int or None, default=None) – Number of cells along X used for vertex generation.
nj (int or None, default=None) – Number of cells along Y used for vertex generation.
dx (float or None, default=None) – Cell size along X used for vertex generation.
dy (float or None, default=None) – Cell size along Y used for vertex generation.
cmap (str, default="turbo") – Colormap name used to assign a distinct color per horizon.
**kwargs (Any) – Additional keyword arguments forwarded to horizon rendering.
- Returns:
The current viewer instance for fluent chaining.
- Return type: