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()
horizon picking../../_images/gpr-line.gif

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)

Gallery generated by Sphinx-Gallery