Note
Go to the end to download the full example code
Picking Horizons
Pick a horizon along a 2.5D cross section of GPR imagery.
import pooch
import pyvista as pv
url = "https://raw.githubusercontent.com/pyvista/vtk-data/master/Data/gpr-line.vtu"
file_path = pooch.retrieve(url=url, known_hash=None)
mesh = pv.read(file_path)
p = pv.Plotter()
p.add_mesh(mesh)
p.enable_horizon_picking()
p.camera_position = [
(-212.30873550953538, 359.730172722682, 59.10289856114311),
(9.6039882161056, 8.329846888337428, -0.5391548951008538),
(0.08754214189159452, -0.1127058489834577, 0.9897644997664596),
]
p.show()
Then you can access the picked surface via p.picked_horizon
See enable_horizon_picking for more details
help(p.enable_horizon_picking)
Help on method enable_horizon_picking in module pyvista.plotting.picking:
enable_horizon_picking(callback=None, normal=(0.0, 0.0, 1.0), width=None, show_message=True, font_size=18, color='pink', point_size=10, line_width=5, show_path=True, opacity=0.75, show_horizon=True, **kwargs) method of pyvista.plotting.plotter.Plotter instance
Enable horizon picking.
Helper for the ``enable_path_picking`` method to also show a
ribbon surface along the picked path. Ribbon is saved under
``.picked_horizon``.
Parameters
----------
callback : callable, optional
When given, calls this callable after a pick is made. The
entire picked path is passed as the only parameter to this
callable.
normal : sequence[float], default: (0.0, 0.0, 1.0)
The normal to the horizon surface's projection plane.
width : float, optional
The width of the horizon surface. Default behaviour will
dynamically change the surface width depending on its
length.
show_message : bool | str, default: True
Show the message about how to use the horizon picking
tool. If this is a string, that will be the message shown.
font_size : int, default: 18
Sets the font size of the message.
color : ColorLike, default: "pink"
The color of the horizon surface if shown.
point_size : int, default: 10
Size of picked points if ``show_horizon`` is ``True``.
line_width : float, default: 5.0
Thickness of path representation if ``show_horizon`` is
``True``.
show_path : bool, default: True
Show the picked path that the horizon is built from
interactively.
opacity : float, default: 0.75
The opacity of the horizon surface if shown.
show_horizon : bool, default: True
Show the picked horizon surface interactively.
**kwargs : dict, optional
All remaining keyword arguments are used to control how
the picked path is interactively displayed.
Total running time of the script: (0 minutes 5.417 seconds)