Files
geMoldInsight/venv/lib/python3.11/site-packages/pyvista/examples/downloads.py
T
2026-02-12 23:27:48 +08:00

8762 lines
242 KiB
Python

"""Downloadable datasets collected from various sources.
Once downloaded, these datasets are stored locally allowing for the
rapid reuse of these datasets.
Files are all hosted in https://github.com/pyvista/vtk-data/ and are downloaded
using the ``download_file`` function. If you add a file to the example data
repository, you should add a ``download-<dataset>`` method here which will
rendered on this page.
See the :ref:`dataset_gallery` for detailed information about the datasets,
including file and dataset metadata.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_saddle_surface()
>>> mesh.plot()
"""
from __future__ import annotations
import functools
import importlib
import importlib.util
import logging
import os
from pathlib import Path
from pathlib import PureWindowsPath
import pickle
import shutil
import sys
from typing import cast
import warnings
import numpy as np
import pooch
from pooch import Unzip
from pooch.utils import get_logger
import pyvista
from pyvista._deprecate_positional_args import _deprecate_positional_args
from pyvista.core import _vtk_core as _vtk
from pyvista.core.errors import PyVistaDeprecationWarning
from pyvista.core.errors import VTKVersionError
from pyvista.core.utilities.fileio import get_ext
from pyvista.core.utilities.fileio import read
from pyvista.core.utilities.fileio import read_texture
from pyvista.examples._dataset_loader import _download_dataset
from pyvista.examples._dataset_loader import _DownloadableFile
from pyvista.examples._dataset_loader import _load_and_merge
from pyvista.examples._dataset_loader import _load_as_cubemap
from pyvista.examples._dataset_loader import _load_as_multiblock
from pyvista.examples._dataset_loader import _MultiFileDownloadableDatasetLoader
from pyvista.examples._dataset_loader import _SingleFileDownloadableDatasetLoader
# disable pooch verbose logging
POOCH_LOGGER = get_logger()
POOCH_LOGGER.setLevel(logging.CRITICAL)
CACHE_VERSION = 3
# If available, a local vtk-data instance will be used for examples
if 'PYVISTA_VTK_DATA' in os.environ: # pragma: no cover
_path = os.environ['PYVISTA_VTK_DATA']
if Path(_path).name != 'Data':
# append 'Data' if user does not provide it
_path = str(Path(_path) / 'Data')
# pooch assumes this is a URL so we have to take care of this
if not _path.endswith('/'):
_path = _path + '/'
SOURCE = _path
_FILE_CACHE = True
else:
SOURCE = 'https://github.com/pyvista/vtk-data/raw/master/Data/'
_FILE_CACHE = False
# allow user to override the local path
default_user_data_path = str(pooch.os_cache(f'pyvista_{CACHE_VERSION}'))
if 'PYVISTA_USERDATA_PATH' in os.environ: # pragma: no cover
if not (path := Path(os.environ['PYVISTA_USERDATA_PATH'])).is_dir():
warnings.warn(f'Ignoring invalid PYVISTA_USERDATA_PATH:\n{path}')
USER_DATA_PATH = default_user_data_path
else:
USER_DATA_PATH = str(Path(os.environ['PYVISTA_USERDATA_PATH']))
else:
# use default pooch path
USER_DATA_PATH = default_user_data_path
# provide helpful message if pooch path is inaccessible
if not Path(USER_DATA_PATH).is_dir(): # pragma: no cover
try:
Path(USER_DATA_PATH).mkdir(exist_ok=True, parents=True)
if not os.access(USER_DATA_PATH, os.W_OK):
raise OSError
except (PermissionError, OSError):
# Warn, don't raise just in case there's an environment issue.
warnings.warn(
f'Unable to access {USER_DATA_PATH}. Manually specify the PyVista'
' examples cache with the PYVISTA_USERDATA_PATH environment variable.',
)
# Note that our fetcher doesn't have a registry (or we have an empty registry)
# with hashes because we don't want to have to add in all of them individually
# to the registry since we're not (at the moment) concerned about hashes.
FETCHER = pooch.create(
path=USER_DATA_PATH,
base_url=SOURCE,
registry={},
retry_if_failed=3,
)
def file_from_files(target_path, fnames):
"""Return the full path of a single file within a list of files.
Parameters
----------
target_path : str
Path of the file to match the end of. If you need to match a file
relative to the root directory of the archive, start the path with
``"unzip"``. Path must be a posix-like path.
fnames : list
List of filenames.
Returns
-------
str
Entry in ``fnames`` matching ``filename``.
"""
found_fnames = []
for fname in fnames:
# always convert windows paths
posix_fname = PureWindowsPath(fname).as_posix() if os.name == 'nt' else fname
# ignore mac hidden directories
if '/__MACOSX/' in posix_fname: # pragma: no cover
continue
if posix_fname.endswith(target_path):
found_fnames.append(posix_fname)
if len(found_fnames) == 1:
return found_fnames[0]
if len(found_fnames) > 1:
files_str = '\n'.join(found_fnames)
msg = f'Ambiguous "{target_path}". Multiple matches found:\n{files_str}'
raise RuntimeError(msg)
files_str = '\n'.join(fnames)
msg = f'Missing "{target_path}" from archive. Archive contains:\n{files_str}'
raise FileNotFoundError(msg)
def _file_copier(input_file, output_file, *_, **__):
"""Copy a file from a local directory to the output path."""
if not Path(input_file).is_file():
msg = f"'{input_file}' not found within PYVISTA_VTK_DATA '{SOURCE}'"
raise FileNotFoundError(msg)
shutil.copy(input_file, output_file)
def download_file(filename):
"""Download a single file from the PyVista vtk-data repository.
You can add an example file at `pyvista/vtk_data
<https://github.com/pyvista/vtk-data>`_.
Parameters
----------
filename : str
Filename relative to the ``Data`` directory.
Returns
-------
str | list
A single path if the file is not an archive. A ``list`` of paths if the
file is an archive.
Examples
--------
Download the ``'puppy.jpg'`` image.
>>> from pyvista import examples
>>> path = examples.download_file('puppy.jpg') # doctest:+SKIP
>>> path # doctest:+SKIP
'/home/user/.cache/pyvista_3/puppy.jpg'
"""
try: # should the file already exist within fetcher's registry
return _download_file(filename)
except ValueError: # otherwise simply add the file to the registry
FETCHER.registry[filename] = None
return _download_file(filename)
def _download_file(filename):
"""Download a file using pooch."""
return FETCHER.fetch(
filename,
processor=Unzip() if filename.endswith('.zip') else None,
downloader=_file_copier if _FILE_CACHE else None,
)
def _download_archive(filename, target_file=None):
"""Download an archive.
Return the path to a single file when set.
Parameters
----------
filename : str
Relative path to the archive file. The entire archive will be
downloaded and unarchived.
target_file : str, optional
Target file to return within the archive.
Returns
-------
list | str
List of files when ``target_file`` is ``None``. Otherwise, a single path.
"""
fnames = download_file(filename)
if target_file is not None:
return file_from_files(target_file, fnames)
return fnames
def _download_archive_file_or_folder(filename, target_file=None):
"""Download an archive.
This function is similar to _download_archive, but also allows
setting `target_file` as a folder. The target folder path must be
fully specified relative to the root path of the archive.
Set ``target_file=''`` (empty string) to download the entire
archive and return the directory path to the entire extracted
archive.
"""
try:
# Return file(s)
return _download_archive(filename, target_file=target_file)
except (FileNotFoundError, RuntimeError):
pass
# Return folder, or re-raise error by calling function again
folder = str(Path(USER_DATA_PATH) / (filename + '.unzip') / target_file)
return (
folder if Path(folder).is_dir() else _download_archive(filename, target_file=target_file)
)
def delete_downloads():
"""Delete all downloaded examples to free space or update the files.
Examples
--------
Delete all local downloads.
>>> from pyvista import examples
>>> examples.delete_downloads() # doctest:+SKIP
"""
if Path(USER_DATA_PATH).is_dir():
shutil.rmtree(USER_DATA_PATH)
Path(USER_DATA_PATH).mkdir()
def _download_and_read(filename, *, texture=False, file_format=None, load=True):
"""Download and read a file.
Parameters
----------
filename : str
Path to the filename. This cannot be a zip file.
texture : bool, default: False
``True`` when file being read is a texture.
file_format : str, optional
Override the file format with a different extension.
load : bool, default: True
Read the file. When ``False``, return the path to the
file.
Returns
-------
pyvista.DataSet | str
Dataset or path to the file depending on the ``load`` parameter.
"""
if get_ext(filename) == '.zip': # pragma: no cover
msg = 'Cannot download and read an archive file'
raise ValueError(msg)
saved_file = download_file(filename)
if not load:
return saved_file
if texture:
return read_texture(saved_file)
return read(saved_file, file_format=file_format)
@_deprecate_positional_args
def download_masonry_texture(load=True): # noqa: FBT002
"""Download masonry texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
Create plot the masonry testure on a surface.
>>> import pyvista as pv
>>> from pyvista import examples
>>> texture = examples.download_masonry_texture()
>>> surf = pv.Cylinder()
>>> surf.plot(texture=texture)
.. seealso::
:ref:`Masonry Texture Dataset <masonry_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`texture_example`
Example using this dataset.
"""
return _download_dataset(_dataset_masonry_texture, load=load)
_dataset_masonry_texture = _SingleFileDownloadableDatasetLoader(
'masonry.bmp',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_usa_texture(load=True): # noqa: FBT002
"""Download USA texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_usa_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Usa Texture Dataset <usa_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Usa Dataset <usa_dataset>`
"""
return _download_dataset(_dataset_usa_texture, load=load)
_dataset_usa_texture = _SingleFileDownloadableDatasetLoader(
'usa_image.jpg',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_puppy_texture(load=True): # noqa: FBT002
"""Download puppy texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_puppy_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Puppy Texture Dataset <puppy_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Puppy Dataset <puppy_dataset>`
:ref:`texture_example`
Example which uses this dataset.
"""
return _download_dataset(_dataset_puppy_texture, load=load)
_dataset_puppy_texture = _SingleFileDownloadableDatasetLoader('puppy.jpg', read_func=read_texture) # type: ignore[arg-type]
@_deprecate_positional_args
def download_puppy(load=True): # noqa: FBT002
"""Download puppy dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_puppy()
>>> dataset.plot(cpos='xy', rgba=True)
.. seealso::
:ref:`Puppy Dataset <puppy_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Puppy Texture Dataset <puppy_texture_dataset>`
:ref:`read_image_example`
"""
return _download_dataset(_dataset_puppy, load=load)
_dataset_puppy = _SingleFileDownloadableDatasetLoader('puppy.jpg')
@_deprecate_positional_args
def download_usa(load=True): # noqa: FBT002
"""Download usa dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_usa()
>>> dataset.plot(style='wireframe', cpos='xy')
.. seealso::
:ref:`Usa Dataset <usa_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Usa Texture Dataset <usa_texture_dataset>`
"""
return _download_dataset(_dataset_usa, load=load)
_dataset_usa = _SingleFileDownloadableDatasetLoader('usa.vtk')
@_deprecate_positional_args
def download_st_helens(load=True): # noqa: FBT002
"""Download Saint Helens dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_st_helens()
>>> dataset.plot(cmap='gist_earth')
.. seealso::
:ref:`St Helens Dataset <st_helens_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`colormap_example`
* :ref:`lighting_mesh_example`
* :ref:`opacity_example`
* :ref:`orbit_example`
* :ref:`plot_over_line_example`
* :ref:`plotter_lighting_example`
* :ref:`themes_example`
"""
return _download_dataset(_dataset_st_helens, load=load)
_dataset_st_helens = _SingleFileDownloadableDatasetLoader('SainteHelens.dem')
@_deprecate_positional_args
def download_bunny(load=True): # noqa: FBT002
"""Download bunny dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_bunny()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Bunny Dataset <bunny_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Bunny Coarse Dataset <bunny_coarse_dataset>`
This dataset is used in the following examples:
* :ref:`read_file_example`
* :ref:`clip_with_surface_example`
* :ref:`extract_edges_example`
* :ref:`subdivide_example`
* :ref:`silhouette_example`
* :ref:`light_types_example`
"""
return _download_dataset(_dataset_bunny, load=load)
_dataset_bunny = _SingleFileDownloadableDatasetLoader('bunny.ply')
@_deprecate_positional_args
def download_bunny_coarse(load=True): # noqa: FBT002
"""Download coarse bunny dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_bunny_coarse()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Bunny Coarse Dataset <bunny_coarse_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Bunny Dataset <bunny_dataset>`
This dataset is used in the following examples:
* :ref:`read_file_example`
* :ref:`clip_with_surface_example`
* :ref:`subdivide_example`
"""
return _download_dataset(_dataset_bunny_coarse, load=load)
def _bunny_coarse_load_func(mesh):
mesh.verts = np.array([], dtype=np.int32)
return mesh
_dataset_bunny_coarse = _SingleFileDownloadableDatasetLoader(
'Bunny.vtp',
load_func=_bunny_coarse_load_func,
)
@_deprecate_positional_args
def download_cow(load=True): # noqa: FBT002
"""Download cow dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cow()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Cow Dataset <cow_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cow Head Dataset <cow_head_dataset>`
This dataset is used in the following examples:
* :ref:`extract_edges_example`
* :ref:`mesh_quality_example`
* :ref:`rotate_example`
* :ref:`linked_views_example`
* :ref:`light_actors_example`
"""
return _download_dataset(_dataset_cow, load=load)
_dataset_cow = _SingleFileDownloadableDatasetLoader('cow.vtp')
@_deprecate_positional_args
def download_cow_head(load=True): # noqa: FBT002
"""Download cow head dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cow_head()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Cow Head Dataset <cow_head_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cow Dataset <cow_dataset>`
"""
return _download_dataset(_dataset_cow_head, load=load)
_dataset_cow_head = _SingleFileDownloadableDatasetLoader('cowHead.vtp')
@_deprecate_positional_args
def download_faults(load=True): # noqa: FBT002
"""Download faults dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_faults()
>>> dataset.plot(line_width=4)
.. seealso::
:ref:`Faults Dataset <faults_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_faults, load=load)
_dataset_faults = _SingleFileDownloadableDatasetLoader('faults.vtk')
@_deprecate_positional_args
def download_tensors(load=True): # noqa: FBT002
"""Download tensors dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_tensors()
>>> dataset.plot()
.. seealso::
:ref:`Tensors Dataset <tensors_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_tensors, load=load)
_dataset_tensors = _SingleFileDownloadableDatasetLoader('tensors.vtk')
@_deprecate_positional_args
def download_head(load=True): # noqa: FBT002
"""Download head dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_head()
>>> pl = pv.Plotter()
>>> _ = pl.add_volume(dataset, cmap='cool', opacity='sigmoid_6')
>>> pl.camera_position = [
... (-228.0, -418.0, -158.0),
... (94.0, 122.0, 82.0),
... (-0.2, -0.3, 0.9),
... ]
>>> pl.show()
.. seealso::
:ref:`Head Dataset <head_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Head 2 Dataset <head_2_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
:ref:`volume_rendering_example`
Example using this dataset.
"""
return _download_dataset(_dataset_head, load=load)
def _head_files_func():
# Multiple files needed for read, but only one gets loaded
head_raw = _DownloadableFile('HeadMRVolume.raw')
head_mhd = _SingleFileDownloadableDatasetLoader('HeadMRVolume.mhd')
return head_mhd, head_raw
_dataset_head = _MultiFileDownloadableDatasetLoader(_head_files_func)
@_deprecate_positional_args
def download_head_2(load=True): # noqa: FBT002
"""Download head dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_head_2()
>>> pl = pv.Plotter()
>>> _ = pl.add_volume(dataset, cmap='cool', opacity='sigmoid_6')
>>> pl.show()
.. seealso::
:ref:`Head 2 Dataset <head_2_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Head Dataset <head_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
"""
return _download_dataset(_dataset_head_2, load=load)
_dataset_head_2 = _SingleFileDownloadableDatasetLoader('head.vti')
@_deprecate_positional_args
def download_bolt_nut(load=True): # noqa: FBT002
"""Download bolt nut dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock or tuple
DataSet or tuple of filenames depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_bolt_nut()
>>> pl = pv.Plotter()
>>> _ = pl.add_volume(
... dataset,
... cmap='coolwarm',
... opacity='sigmoid_5',
... show_scalar_bar=False,
... )
>>> pl.camera_position = [
... (194.6, -141.8, 182.0),
... (34.5, 61.0, 32.5),
... (-0.229, 0.45, 0.86),
... ]
>>> pl.show()
.. seealso::
:ref:`Bolt Nut Dataset <bolt_nut_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`volume_rendering_example`
Example which uses this dataset.
"""
return _download_dataset(_dataset_bolt_nut, load=load)
def _bolt_nut_files_func():
# Multiple mesh files are loaded for this example
bolt = _SingleFileDownloadableDatasetLoader('bolt.slc')
nut = _SingleFileDownloadableDatasetLoader('nut.slc')
return bolt, nut
_dataset_bolt_nut = _MultiFileDownloadableDatasetLoader(
_bolt_nut_files_func,
load_func=_load_as_multiblock,
)
@_deprecate_positional_args
def download_clown(load=True): # noqa: FBT002
"""Download clown dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_clown()
>>> dataset.plot()
.. seealso::
:ref:`Clown Dataset <clown_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_clown, load=load)
_dataset_clown = _SingleFileDownloadableDatasetLoader('clown.facet')
@_deprecate_positional_args
def download_topo_global(load=True): # noqa: FBT002
"""Download topo dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_topo_global()
>>> dataset.plot(cmap='gist_earth')
.. seealso::
:ref:`Topo Global Dataset <topo_global_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`compute_normals_example`
* :ref:`background_image_example`
"""
return _download_dataset(_dataset_topo_global, load=load)
_dataset_topo_global = _SingleFileDownloadableDatasetLoader('EarthModels/ETOPO_10min_Ice.vtp')
@_deprecate_positional_args
def download_topo_land(load=True): # noqa: FBT002
"""Download topo land dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_topo_land()
>>> dataset.plot(clim=[-2000, 3000], cmap='gist_earth', show_scalar_bar=False)
.. seealso::
:ref:`Topo Land Dataset <topo_land_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`geodesic_example`
* :ref:`background_image_example`
"""
return _download_dataset(_dataset_topo_land, load=load)
_dataset_topo_land = _SingleFileDownloadableDatasetLoader(
'EarthModels/ETOPO_10min_Ice_only-land.vtp',
)
@_deprecate_positional_args
def download_coastlines(load=True): # noqa: FBT002
"""Download coastlines dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_coastlines()
>>> dataset.plot()
.. seealso::
:ref:`Coastlines Dataset <coastlines_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_coastlines, load=load)
_dataset_coastlines = _SingleFileDownloadableDatasetLoader('EarthModels/Coastlines_Los_Alamos.vtp')
@_deprecate_positional_args
def download_knee(load=True): # noqa: FBT002
"""Download knee dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_knee()
>>> dataset.plot(cpos='xy', show_scalar_bar=False)
.. seealso::
:ref:`Knee Dataset <knee_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Knee Full Dataset <knee_full_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
This dataset is used in the following examples:
* :ref:`opacity_example`
* :ref:`volume_rendering_example`
* :ref:`slider_bar_widget_example`
"""
return _download_dataset(_dataset_knee, load=load)
_dataset_knee = _SingleFileDownloadableDatasetLoader('DICOM_KNEE.dcm')
@_deprecate_positional_args
def download_knee_full(load=True): # noqa: FBT002
"""Download full knee dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_knee_full()
>>> cpos = [
... (-381.74, -46.02, 216.54),
... (74.8305, 89.2905, 100.0),
... (0.23, 0.072, 0.97),
... ]
>>> dataset.plot(volume=True, cmap='bone', cpos=cpos, show_scalar_bar=False)
.. seealso::
:ref:`Knee Full Dataset <knee_full_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Knee Dataset <knee_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
This dataset is used in the following examples:
* :ref:`volume_rendering_example`
* :ref:`slider_bar_widget_example`
"""
return _download_dataset(_dataset_knee_full, load=load)
_dataset_knee_full = _SingleFileDownloadableDatasetLoader('vw_knee.slc')
@_deprecate_positional_args
def download_lidar(load=True): # noqa: FBT002
"""Download lidar dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_lidar()
>>> dataset.plot(cmap='gist_earth')
.. seealso::
:ref:`Lidar Dataset <lidar_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`create_point_cloud_example`
* :ref:`edl_example`
"""
return _download_dataset(_dataset_lidar, load=load)
_dataset_lidar = _SingleFileDownloadableDatasetLoader('kafadar-lidar-interp.vtp')
@_deprecate_positional_args
def download_exodus(load=True): # noqa: FBT002
"""Sample ExodusII data file.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_exodus()
>>> dataset.plot()
.. seealso::
:ref:`Exodus Dataset <exodus_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_exodus, load=load)
_dataset_exodus = _SingleFileDownloadableDatasetLoader('mesh_fs8.exo')
@_deprecate_positional_args
def download_nefertiti(load=True): # noqa: FBT002
"""Download mesh of Queen Nefertiti.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_nefertiti()
>>> dataset.plot(cpos='xz')
.. seealso::
:ref:`Nefertiti Dataset <nefertiti_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`compute_normals_example`
* :ref:`extract_edges_example`
* :ref:`show_edges_example`
* :ref:`edl_example`
* :ref:`pbr_example`
* :ref:`box_widget_example`
"""
return _download_dataset(_dataset_nefertiti, load=load)
_dataset_nefertiti = _SingleFileDownloadableDatasetLoader(
'nefertiti.ply.zip',
target_file='nefertiti.ply',
)
@_deprecate_positional_args
def download_blood_vessels(load=True): # noqa: FBT002
"""Download data representing the bifurcation of blood vessels.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_blood_vessels()
>>> dataset.plot()
.. seealso::
:ref:`Blood Vessels Dataset <blood_vessels_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`read_parallel_example`
* :ref:`streamlines_example`
* :ref:`integrate_data_example`
"""
return _download_dataset(_dataset_blood_vessels, load=load)
def _blood_vessels_load_func(obj):
obj.set_active_vectors('velocity')
return obj
_dataset_blood_vessels = _SingleFileDownloadableDatasetLoader(
'pvtu_blood_vessels/blood_vessels.zip',
target_file='T0000000500.pvtu',
load_func=_blood_vessels_load_func,
)
@_deprecate_positional_args
def download_iron_protein(load=True): # noqa: FBT002
"""Download iron protein dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_iron_protein()
>>> dataset.plot(volume=True, cmap='blues')
.. seealso::
:ref:`Iron Protein Dataset <iron_protein_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_iron_protein, load=load)
_dataset_iron_protein = _SingleFileDownloadableDatasetLoader('ironProt.vtk')
@_deprecate_positional_args
def download_tetrahedron(load=True): # noqa: FBT002
"""Download tetrahedron dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Shrink and plot the dataset to show it is composed of several
tetrahedrons.
>>> from pyvista import examples
>>> dataset = examples.download_tetrahedron()
>>> dataset.shrink(0.85).plot()
.. seealso::
:ref:`Tetrahedron Dataset <tetrahedron_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_tetrahedron, load=load)
_dataset_tetrahedron = _SingleFileDownloadableDatasetLoader('Tetrahedron.vtu')
@_deprecate_positional_args
def download_saddle_surface(load=True): # noqa: FBT002
"""Download saddle surface dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_saddle_surface()
>>> dataset.plot()
.. seealso::
:ref:`Saddle Surface Dataset <saddle_surface_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`interpolate_example`
Example using this dataset.
"""
return _download_dataset(_dataset_saddle_surface, load=load)
_dataset_saddle_surface = _SingleFileDownloadableDatasetLoader('InterpolatingOnSTL_final.stl')
@_deprecate_positional_args
def download_sparse_points(load=True): # noqa: FBT002
"""Download sparse points data.
Used with :func:`download_saddle_surface`.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_sparse_points()
>>> dataset.plot(scalars='val', render_points_as_spheres=True, point_size=50)
.. seealso::
:ref:`Sparse Points Dataset <sparse_points_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`interpolate_example`
Example using this dataset.
"""
return _download_dataset(_dataset_sparse_points, load=load)
def _sparse_points_reader(saved_file):
points_reader = _vtk.vtkDelimitedTextReader()
points_reader.SetFileName(saved_file)
points_reader.DetectNumericColumnsOn()
points_reader.SetFieldDelimiterCharacters('\t')
points_reader.SetHaveHeaders(True)
table_points = _vtk.vtkTableToPolyData()
table_points.SetInputConnection(points_reader.GetOutputPort())
table_points.SetXColumn('x')
table_points.SetYColumn('y')
table_points.SetZColumn('z')
table_points.Update()
return pyvista.wrap(table_points.GetOutput())
_dataset_sparse_points = _SingleFileDownloadableDatasetLoader(
'sparsePoints.txt',
read_func=_sparse_points_reader,
)
@_deprecate_positional_args
def download_foot_bones(load=True): # noqa: FBT002
"""Download foot bones dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_foot_bones()
>>> dataset.plot()
.. seealso::
:ref:`Foot Bones Dataset <foot_bones_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`voxelize_example`
Example using this dataset.
"""
return _download_dataset(_dataset_foot_bones, load=load)
_dataset_foot_bones = _SingleFileDownloadableDatasetLoader('fsu/footbones.ply')
@_deprecate_positional_args
def download_guitar(load=True): # noqa: FBT002
"""Download guitar dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_guitar()
>>> dataset.plot()
.. seealso::
:ref:`Guitar Dataset <guitar_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Trumpet Dataset <trumpet_dataset>`
"""
return _download_dataset(_dataset_guitar, load=load)
_dataset_guitar = _SingleFileDownloadableDatasetLoader('fsu/stratocaster.ply')
@_deprecate_positional_args
def download_quadratic_pyramid(load=True): # noqa: FBT002
"""Download quadratic pyramid dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Shrink and plot the dataset to show it is composed of several
pyramids.
>>> from pyvista import examples
>>> dataset = examples.download_quadratic_pyramid()
>>> dataset.shrink(0.4).plot()
.. seealso::
:ref:`Quadratic Pyramid Dataset <quadratic_pyramid_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_quadratic_pyramid, load=load)
_dataset_quadratic_pyramid = _SingleFileDownloadableDatasetLoader('QuadraticPyramid.vtu')
@_deprecate_positional_args
def download_bird(load=True): # noqa: FBT002
"""Download bird dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_bird()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Bird Dataset <bird_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Bird Texture Dataset <bird_texture_dataset>`
"""
return _download_dataset(_dataset_bird, load=load)
_dataset_bird = _SingleFileDownloadableDatasetLoader('Pileated.jpg')
@_deprecate_positional_args
def download_bird_texture(load=True): # noqa: FBT002
"""Download bird texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_bird_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Bird Texture Dataset <bird_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Bird Dataset <bird_dataset>`
"""
return _download_dataset(_dataset_bird_texture, load=load)
_dataset_bird_texture = _SingleFileDownloadableDatasetLoader(
'Pileated.jpg',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_office(load=True): # noqa: FBT002
"""Download office dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.StructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_office()
>>> dataset.contour().plot()
.. seealso::
:ref:`Office Dataset <office_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`clip_with_plane_box_example`
Example using this dataset.
"""
return _download_dataset(_dataset_office, load=load)
_dataset_office = _SingleFileDownloadableDatasetLoader('office.binary.vtk')
@_deprecate_positional_args
def download_horse_points(load=True): # noqa: FBT002
"""Download horse points dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_horse_points()
>>> dataset.plot(point_size=1)
.. seealso::
:ref:`Horse Points Dataset <horse_points_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Horse Dataset <horse_dataset>`
"""
return _download_dataset(_dataset_horse_points, load=load)
_dataset_horse_points = _SingleFileDownloadableDatasetLoader('horsePoints.vtp')
@_deprecate_positional_args
def download_horse(load=True): # noqa: FBT002
"""Download horse dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_horse()
>>> dataset.plot(smooth_shading=True)
.. seealso::
:ref:`Horse Dataset <horse_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Horse Points Dataset <horse_points_dataset>`
:ref:`mesh_lighting_example`
Example using this dataset.
"""
return _download_dataset(_dataset_horse, load=load)
_dataset_horse = _SingleFileDownloadableDatasetLoader('horse.vtp')
@_deprecate_positional_args
def download_cake_easy(load=True): # noqa: FBT002
"""Download cake dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cake_easy()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Cake Easy Dataset <cake_easy_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cake Easy Texture Dataset <cake_easy_texture_dataset>`
"""
return _download_dataset(_dataset_cake_easy, load=load)
_dataset_cake_easy = _SingleFileDownloadableDatasetLoader('cake_easy.jpg')
@_deprecate_positional_args
def download_cake_easy_texture(load=True): # noqa: FBT002
"""Download cake texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cake_easy_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Cake Easy Texture Dataset <cake_easy_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cake Easy Dataset <cake_easy_dataset>`
"""
return _download_dataset(_dataset_cake_easy_texture, load=load)
_dataset_cake_easy_texture = _SingleFileDownloadableDatasetLoader(
'cake_easy.jpg',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_rectilinear_grid(load=True): # noqa: FBT002
"""Download rectilinear grid dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.RectilinearGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Compute the threshold of this dataset.
>>> from pyvista import examples
>>> dataset = examples.download_rectilinear_grid()
>>> dataset.threshold(0.0001).plot()
.. seealso::
:ref:`Rectilinear Grid Dataset <rectilinear_grid_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_rectilinear_grid, load=load)
_dataset_rectilinear_grid = _SingleFileDownloadableDatasetLoader('RectilinearGrid.vtr')
@_deprecate_positional_args
def download_gourds(zoom=False, load=True): # noqa: FBT002
"""Download gourds dataset.
Parameters
----------
zoom : bool, default: False
When ``True``, return the zoomed picture of the gourds.
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_gourds()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Gourds Dataset <gourds_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Gourds Pnm Dataset <gourds_pnm_dataset>`
:ref:`Gourds Texture Dataset <gourds_texture_dataset>`
:ref:`gaussian_smoothing_example`
Example using this dataset.
"""
example = __gourds2 if zoom else _dataset_gourds
return _download_dataset(example, load=load)
# Two loadable files, but only one example
# Name variables such that non-zoomed version is the 'representative' example
# Use '__' on the zoomed version to label it as private
_dataset_gourds = _SingleFileDownloadableDatasetLoader('Gourds.png')
__gourds2 = _SingleFileDownloadableDatasetLoader('Gourds2.jpg')
@_deprecate_positional_args
def download_gourds_texture(zoom=False, load=True): # noqa: FBT002
"""Download gourds texture.
Parameters
----------
zoom : bool, default: False
When ``True``, return the zoomed picture of the gourds.
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.DataSet | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_gourds_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Gourds Texture Dataset <gourds_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Gourds Dataset <gourds_dataset>`
:ref:`Gourds Pnm Dataset <gourds_pnm_dataset>`
"""
example = __gourds2_texture if zoom else _dataset_gourds_texture
return _download_dataset(example, load=load)
# Two loadable files, but only one example
# Name variables such that non-zoomed version is the 'representative' example
# Use '__' on the zoomed version to label it as private
_dataset_gourds_texture = _SingleFileDownloadableDatasetLoader(
'Gourds.png',
read_func=read_texture, # type: ignore[arg-type]
)
__gourds2_texture = _SingleFileDownloadableDatasetLoader('Gourds2.jpg', read_func=read_texture) # type: ignore[arg-type]
@_deprecate_positional_args
def download_gourds_pnm(load=True): # noqa: FBT002
"""Download gourds dataset from pnm file.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_gourds_pnm()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Gourds Pnm Dataset <gourds_pnm_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Gourds Dataset <gourds_dataset>`
:ref:`Gourds Texture Dataset <gourds_texture_dataset>`
"""
return _download_dataset(_dataset_gourds_pnm, load=load)
_dataset_gourds_pnm = _SingleFileDownloadableDatasetLoader('Gourds.pnm')
@_deprecate_positional_args
def download_unstructured_grid(load=True): # noqa: FBT002
"""Download unstructured grid dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_unstructured_grid()
>>> dataset.plot(show_edges=True)
.. seealso::
:ref:`Unstructured Grid Dataset <unstructured_grid_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_unstructured_grid, load=load)
_dataset_unstructured_grid = _SingleFileDownloadableDatasetLoader('uGridEx.vtk')
@_deprecate_positional_args
def download_letter_k(load=True): # noqa: FBT002
"""Download letter k dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_letter_k()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Letter K Dataset <letter_k_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Letter A Dataset <letter_a_dataset>`
"""
return _download_dataset(_dataset_letter_k, load=load)
_dataset_letter_k = _SingleFileDownloadableDatasetLoader('k.vtk')
@_deprecate_positional_args
def download_letter_a(load=True): # noqa: FBT002
"""Download letter a dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_letter_a()
>>> dataset.plot(cpos='xy', show_edges=True)
.. seealso::
:ref:`Letter A Dataset <letter_a_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Letter K Dataset <letter_k_dataset>`
:ref:`cell_centers_example`
Example using this dataset.
"""
return _download_dataset(_dataset_letter_a, load=load)
_dataset_letter_a = _SingleFileDownloadableDatasetLoader('a_grid.vtk')
@_deprecate_positional_args
def download_poly_line(load=True): # noqa: FBT002
"""Download polyline dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_poly_line()
>>> dataset.plot(line_width=5)
.. seealso::
:ref:`Poly Line Dataset <poly_line_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_poly_line, load=load)
_dataset_poly_line = _SingleFileDownloadableDatasetLoader('polyline.vtk')
@_deprecate_positional_args
def download_cad_model(load=True): # noqa: FBT002
"""Download cad dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cad_model()
>>> dataset.plot()
.. seealso::
:ref:`Cad Model Dataset <cad_model_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`read_file_example`
Example using this dataset.
"""
return _download_dataset(_dataset_cad_model, load=load)
_dataset_cad_model = _SingleFileDownloadableDatasetLoader('42400-IDGH.stl')
@_deprecate_positional_args
def download_frog(load=True): # noqa: FBT002
"""Download frog dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [8.4287e02, -5.7418e02, -4.4085e02],
... [2.4950e02, 2.3450e02, 1.0125e02],
... [-3.2000e-01, 3.5000e-01, -8.8000e-01],
... ]
>>> dataset = examples.download_frog()
>>> dataset.plot(volume=True, cpos=cpos)
.. seealso::
:ref:`Frog Dataset <frog_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Frog Tissues Dataset <frog_tissues_dataset>`
Segmentation labels associated with this dataset.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
:ref:`volume_rendering_example`
Example using this dataset.
"""
return _download_dataset(_dataset_frog, load=load)
def _frog_files_func():
# Multiple files needed for read, but only one gets loaded
frog_zraw = _DownloadableFile('froggy/frog.zraw')
frog_mhd = _SingleFileDownloadableDatasetLoader('froggy/frog.mhd')
return frog_mhd, frog_zraw
_dataset_frog = _MultiFileDownloadableDatasetLoader(_frog_files_func)
@_deprecate_positional_args
def download_chest(load=True): # noqa: FBT002
"""Download chest dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_chest()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Chest Dataset <chest_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
:ref:`volume_rendering_example`
Example using this dataset.
"""
return _download_dataset(_dataset_chest, load=load)
_dataset_chest = _SingleFileDownloadableDatasetLoader('MetaIO/ChestCT-SHORT.mha')
@_deprecate_positional_args
def download_brain_atlas_with_sides(load=True): # noqa: FBT002
"""Download an image of an averaged brain with a right-left label.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_brain_atlas_with_sides()
>>> dataset.slice(normal='z').plot(cpos='xy')
.. seealso::
:ref:`Brain Atlas With Sides Dataset <brain_atlas_with_sides_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Brain Dataset <brain_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
"""
return _download_dataset(_dataset_brain_atlas_with_sides, load=load)
_dataset_brain_atlas_with_sides = _SingleFileDownloadableDatasetLoader('avg152T1_RL_nifti.nii.gz')
@_deprecate_positional_args
def download_prostate(load=True): # noqa: FBT002
"""Download prostate dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_prostate()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Prostate Dataset <prostate_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
"""
return _download_dataset(_dataset_prostate, load=load)
_dataset_prostate = _SingleFileDownloadableDatasetLoader('prostate.img')
@_deprecate_positional_args
def download_filled_contours(load=True): # noqa: FBT002
"""Download filled contours dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_filled_contours()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Filled Contours Dataset <filled_contours_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_filled_contours, load=load)
_dataset_filled_contours = _SingleFileDownloadableDatasetLoader('filledContours.vtp')
@_deprecate_positional_args
def download_doorman(load=True): # noqa: FBT002
"""Download doorman dataset.
.. versionchanged:: 0.44.0
Add support for downloading the texture images.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_doorman()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Doorman Dataset <doorman_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`read_file_example`
Example using this dataset.
"""
return _download_dataset(_dataset_doorman, load=load)
def _doorman_files_func():
# Multiple files needed for read, but only one gets loaded
doorman_obj = _SingleFileDownloadableDatasetLoader('doorman/doorman.obj')
doorman_mtl = _DownloadableFile('doorman/doorman.mtl')
t_doorMan_d = _DownloadableFile('doorman/t_doorMan_d.png')
t_doorMan_n = _DownloadableFile('doorman/t_doorMan_n.png')
t_doorMan_s = _DownloadableFile('doorman/t_doorMan_s.png')
t_doorMan_teeth_d = _DownloadableFile('doorman/t_doorMan_teeth_d.png')
t_doorMan_teeth_n = _DownloadableFile('doorman/t_doorMan_teeth_n.png')
t_eye_d = _DownloadableFile('doorman/t_eye_d.png')
t_eye_n = _DownloadableFile('doorman/t_eye_n.png')
return (
doorman_obj,
doorman_mtl,
t_doorMan_d,
t_doorMan_n,
t_doorMan_s,
t_doorMan_teeth_d,
t_doorMan_teeth_n,
t_eye_d,
t_eye_n,
)
_dataset_doorman = _MultiFileDownloadableDatasetLoader(
files_func=_doorman_files_func,
)
@_deprecate_positional_args
def download_mug(load=True): # noqa: FBT002
"""Download mug dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_mug()
>>> dataset.plot()
.. seealso::
:ref:`Mug Dataset <mug_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_mug, load=load)
_dataset_mug = _SingleFileDownloadableDatasetLoader('mug.e')
@_deprecate_positional_args
def download_oblique_cone(load=True): # noqa: FBT002
"""Download oblique cone dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_oblique_cone()
>>> dataset.plot()
.. seealso::
:ref:`Oblique Cone Dataset <oblique_cone_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_oblique_cone, load=load)
_dataset_oblique_cone = _SingleFileDownloadableDatasetLoader('ObliqueCone.vtp')
@_deprecate_positional_args
def download_emoji(load=True): # noqa: FBT002
"""Download emoji dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_emoji()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Emoji Dataset <emoji_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Emoji Texture Dataset <emoji_texture_dataset>`
"""
return _download_dataset(_dataset_emoji, load=load)
_dataset_emoji = _SingleFileDownloadableDatasetLoader('emote.jpg')
@_deprecate_positional_args
def download_emoji_texture(load=True): # noqa: FBT002
"""Download emoji texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_emoji_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Emoji Texture Dataset <emoji_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Emoji Dataset <emoji_dataset>`
"""
return _download_dataset(_dataset_emoji_texture, load=load)
_dataset_emoji_texture = _SingleFileDownloadableDatasetLoader('emote.jpg', read_func=read_texture) # type: ignore[arg-type]
@_deprecate_positional_args
def download_teapot(load=True): # noqa: FBT002
"""Download teapot dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_teapot()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Teapot Dataset <teapot_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`read_file_example`
* :ref:`cell_centers_example`
"""
return _download_dataset(_dataset_teapot, load=load)
_dataset_teapot = _SingleFileDownloadableDatasetLoader('teapot.g')
@_deprecate_positional_args
def download_brain(load=True): # noqa: FBT002
"""Download brain dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_brain()
>>> dataset.plot(volume=True)
.. seealso::
:ref:`Brain Dataset <brain_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Brain Atlas With Sides Dataset <brain_atlas_with_sides_dataset>`
:ref:`medical_dataset_gallery`
Browse other medical datasets.
This dataset is used in the following examples:
* :ref:`gaussian_smoothing_example`
* :ref:`slice_example`
* :ref:`depth_peeling_example`
* :ref:`moving_isovalue_example`
* :ref:`plane_widget_example`
"""
return _download_dataset(_dataset_brain, load=load)
_dataset_brain = _SingleFileDownloadableDatasetLoader('brain.vtk')
@_deprecate_positional_args
def download_structured_grid(load=True): # noqa: FBT002
"""Download structured grid dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.StructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_structured_grid()
>>> dataset.plot(show_edges=True)
.. seealso::
:ref:`Structured Grid Dataset <structured_grid_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Structured Grid Two Dataset <structured_grid_two_dataset>`
"""
return _download_dataset(_dataset_structured_grid, load=load)
_dataset_structured_grid = _SingleFileDownloadableDatasetLoader('StructuredGrid.vts')
@_deprecate_positional_args
def download_structured_grid_two(load=True): # noqa: FBT002
"""Download structured grid two dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.StructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_structured_grid_two()
>>> dataset.plot(show_edges=True)
.. seealso::
:ref:`Structured Grid Two Dataset <structured_grid_two_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Structured Grid Dataset <structured_grid_dataset>`
"""
return _download_dataset(_dataset_structured_grid_two, load=load)
_dataset_structured_grid_two = _SingleFileDownloadableDatasetLoader('SampleStructGrid.vtk')
@_deprecate_positional_args
def download_trumpet(load=True): # noqa: FBT002
"""Download trumpet dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_trumpet()
>>> dataset.plot()
.. seealso::
:ref:`Trumpet Dataset <trumpet_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Guitar Dataset <guitar_dataset>`
"""
return _download_dataset(_dataset_trumpet, load=load)
_dataset_trumpet = _SingleFileDownloadableDatasetLoader('trumpet.obj')
@_deprecate_positional_args
def download_face(load=True): # noqa: FBT002
"""Download face dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_face()
>>> dataset.plot()
.. seealso::
:ref:`Face Dataset <face_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Face2 Dataset <face2_dataset>`
:ref:`decimate_example`
Example using this dataset.
"""
# TODO: there is a texture with this
return _download_dataset(_dataset_face, load=load)
_dataset_face = _SingleFileDownloadableDatasetLoader('fran_cut.vtk')
@_deprecate_positional_args
def download_sky_box_nz(load=True): # noqa: FBT002
"""Download skybox-nz dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_sky_box_nz()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Sky Box Nz Dataset <sky_box_nz_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Sky Box Nz Texture Dataset <sky_box_nz_texture_dataset>`
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
"""
return _download_dataset(_dataset_sky_box_nz, load=load)
_dataset_sky_box_nz = _SingleFileDownloadableDatasetLoader('skybox-nz.jpg')
@_deprecate_positional_args
def download_sky_box_nz_texture(load=True): # noqa: FBT002
"""Download skybox-nz texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_sky_box_nz_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Sky Box Nz Texture Dataset <sky_box_nz_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Sky Box Nz Dataset <sky_box_nz_dataset>`
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
"""
return _download_dataset(_dataset_sky_box_nz_texture, load=load)
_dataset_sky_box_nz_texture = _SingleFileDownloadableDatasetLoader(
'skybox-nz.jpg',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_disc_quads(load=True): # noqa: FBT002
"""Download disc quads dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_disc_quads()
>>> dataset.plot(show_edges=True)
.. seealso::
:ref:`Disc Quads Dataset <disc_quads_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_disc_quads, load=load)
_dataset_disc_quads = _SingleFileDownloadableDatasetLoader('Disc_BiQuadraticQuads_0_0.vtu')
@_deprecate_positional_args
def download_honolulu(load=True): # noqa: FBT002
"""Download honolulu dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_honolulu()
>>> dataset.plot(
... scalars=dataset.points[:, 2],
... show_scalar_bar=False,
... cmap='gist_earth',
... clim=[-50, 800],
... )
.. seealso::
:ref:`Honolulu Dataset <honolulu_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_honolulu, load=load)
_dataset_honolulu = _SingleFileDownloadableDatasetLoader('honolulu.vtk')
@_deprecate_positional_args
def download_motor(load=True): # noqa: FBT002
"""Download motor dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_motor()
>>> dataset.plot()
.. seealso::
:ref:`Motor Dataset <motor_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_motor, load=load)
_dataset_motor = _SingleFileDownloadableDatasetLoader('motor.g')
@_deprecate_positional_args
def download_tri_quadratic_hexahedron(load=True): # noqa: FBT002
"""Download tri quadratic hexahedron dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_tri_quadratic_hexahedron()
>>> dataset.plot()
Show non-linear subdivision.
>>> surf = dataset.extract_surface(nonlinear_subdivision=5)
>>> surf.plot(smooth_shading=True)
.. seealso::
:ref:`Tri Quadratic Hexahedron Dataset <tri_quadratic_hexahedron_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_tri_quadratic_hexahedron, load=load)
def _tri_quadratic_hexahedron_load_func(dataset):
dataset.clear_data()
return dataset
_dataset_tri_quadratic_hexahedron = _SingleFileDownloadableDatasetLoader(
'TriQuadraticHexahedron.vtu',
load_func=_tri_quadratic_hexahedron_load_func,
)
@_deprecate_positional_args
def download_human(load=True): # noqa: FBT002
"""Download human dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_human()
>>> dataset.plot(scalars='Color', rgb=True)
.. seealso::
:ref:`Human Dataset <human_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_human, load=load)
_dataset_human = _SingleFileDownloadableDatasetLoader('Human.vtp')
@_deprecate_positional_args
def download_vtk(load=True): # noqa: FBT002
"""Download vtk dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_vtk()
>>> dataset.plot(cpos='xy', line_width=5)
.. seealso::
:ref:`Vtk Dataset <vtk_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Vtk Logo Dataset <vtk_logo_dataset>`
"""
return _download_dataset(_dataset_vtk, load=load)
_dataset_vtk = _SingleFileDownloadableDatasetLoader('vtk.vtp')
@_deprecate_positional_args
def download_spider(load=True): # noqa: FBT002
"""Download spider dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_spider()
>>> dataset.plot()
.. seealso::
:ref:`Spider Dataset <spider_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_spider, load=load)
_dataset_spider = _SingleFileDownloadableDatasetLoader('spider.ply')
@_deprecate_positional_args
def download_carotid(load=True): # noqa: FBT002
"""Download carotid dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [220.96, -24.38, -69.96],
... [135.86, 106.55, 17.72],
... [-0.25, 0.42, -0.87],
... ]
>>> dataset = examples.download_carotid()
>>> dataset.plot(volume=True, cpos=cpos)
.. seealso::
:ref:`Carotid Dataset <carotid_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
This dataset is used in the following examples:
* :ref:`glyph_example`
* :ref:`gradients_example`
* :ref:`streamlines_example`
* :ref:`plane_widget_example`
"""
return _download_dataset(_dataset_carotid, load=load)
def _carotid_load_func(mesh):
mesh.set_active_scalars('scalars')
mesh.set_active_vectors('vectors')
return mesh
_dataset_carotid = _SingleFileDownloadableDatasetLoader(
'carotid.vtk', load_func=_carotid_load_func
)
@_deprecate_positional_args
def download_blow(load=True): # noqa: FBT002
"""Download blow dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [71.96, 86.1, 28.45],
... [3.5, 12.0, 1.0],
... [-0.18, -0.19, 0.96],
... ]
>>> dataset = examples.download_blow()
>>> dataset.plot(
... scalars='displacement1',
... component=1,
... cpos=cpos,
... show_scalar_bar=False,
... smooth_shading=True,
... )
.. seealso::
:ref:`Blow Dataset <blow_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_blow, load=load)
_dataset_blow = _SingleFileDownloadableDatasetLoader('blow.vtk')
@_deprecate_positional_args
def download_shark(load=True): # noqa: FBT002
"""Download shark dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [-2.3195e02, -3.3930e01, 1.2981e02],
... [-8.7100e00, 1.9000e-01, -1.1740e01],
... [-1.4000e-01, 9.9000e-01, 2.0000e-02],
... ]
>>> dataset = examples.download_shark()
>>> dataset.plot(cpos=cpos, smooth_shading=True)
.. seealso::
:ref:`Shark Dataset <shark_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Great White Shark Dataset <great_white_shark_dataset>`
Similar dataset.
:ref:`Grey Nurse Shark Dataset <grey_nurse_shark_dataset>`
Similar dataset.
"""
return _download_dataset(_dataset_shark, load=load)
_dataset_shark = _SingleFileDownloadableDatasetLoader('shark.ply')
@_deprecate_positional_args
def download_great_white_shark(load=True): # noqa: FBT002
"""Download great white shark dataset.
.. versionadded:: 0.45
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [(9.0, 1.0, 21.0), (-1.0, 2.0, -2.0), (0.0, 1.0, 0.0)]
>>> dataset = examples.download_great_white_shark()
>>> dataset.plot(cpos=cpos, smooth_shading=True)
.. seealso::
:ref:`Great White Shark Dataset <great_white_shark_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Shark Dataset <shark_dataset>`
Similar dataset.
:ref:`Grey Nurse Shark Dataset <grey_nurse_shark_dataset>`
Similar dataset.
"""
return _download_dataset(_dataset_great_white_shark, load=load)
_dataset_great_white_shark = _SingleFileDownloadableDatasetLoader(
'great_white_shark/greatWhite.stl'
)
@_deprecate_positional_args
def download_grey_nurse_shark(load=True): # noqa: FBT002
"""Download grey nurse shark dataset.
.. versionadded:: 0.45
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [-200, -100, -16.0],
... [-20.0, 20.0, -2.00],
... [0.00, 0.00, 1.00],
... ]
>>> dataset = examples.download_grey_nurse_shark()
>>> dataset.plot(cpos=cpos, smooth_shading=True)
.. seealso::
:ref:`Grey Nurse Shark Dataset <grey_nurse_shark_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Shark Dataset <shark_dataset>`
Similar dataset.
:ref:`Great White Shark Dataset <great_white_shark_dataset>`
Similar dataset.
"""
return _download_dataset(_dataset_grey_nurse_shark, load=load)
_dataset_grey_nurse_shark = _SingleFileDownloadableDatasetLoader(
'grey_nurse_shark/Grey_Nurse_Shark.stl'
)
@_deprecate_positional_args
def download_dragon(load=True): # noqa: FBT002
"""Download dragon dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_dragon()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Dragon Dataset <dragon_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`floors_example`
* :ref:`orbit_example`
* :ref:`silhouette_example`
* :ref:`shadows_example`
"""
return _download_dataset(_dataset_dragon, load=load)
_dataset_dragon = _SingleFileDownloadableDatasetLoader('dragon.ply')
@_deprecate_positional_args
def download_armadillo(load=True): # noqa: FBT002
"""Download armadillo dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Plot the armadillo dataset. Use a custom camera position.
>>> from pyvista import examples
>>> cpos = [
... (161.5, 82.1, -330.2),
... (-4.3, 24.5, -1.6),
... (-0.1, 1, 0.12),
... ]
>>> dataset = examples.download_armadillo()
>>> dataset.plot(cpos=cpos)
.. seealso::
:ref:`Armadillo Dataset <armadillo_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_armadillo, load=load)
_dataset_armadillo = _SingleFileDownloadableDatasetLoader('Armadillo.ply')
@_deprecate_positional_args
def download_gears(load=True): # noqa: FBT002
"""Download gears dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download the dataset, split the bodies, and color each one.
>>> import numpy as np
>>> from pyvista import examples
>>> dataset = examples.download_gears()
>>> bodies = dataset.split_bodies()
>>> for i, body in enumerate(bodies):
... bid = np.empty(body.n_points)
... bid[:] = i
... body.point_data['Body ID'] = bid
>>> bodies.plot(cmap='jet')
.. seealso::
:ref:`Gears Dataset <gears_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_gears, load=load)
_dataset_gears = _SingleFileDownloadableDatasetLoader('gears.stl')
@_deprecate_positional_args
def download_torso(load=True): # noqa: FBT002
"""Download torso dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_torso()
>>> dataset.plot(cpos='xz')
.. seealso::
:ref:`Torso Dataset <torso_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_torso, load=load)
_dataset_torso = _SingleFileDownloadableDatasetLoader('Torso.vtp')
@_deprecate_positional_args
def download_kitchen(split=False, load=True): # noqa: FBT002
"""Download structured grid of kitchen with velocity field.
Use the ``split`` argument to extract all of the furniture in the
kitchen.
Parameters
----------
split : bool, default: False
Optionally split the furniture and return a
:class:`pyvista.MultiBlock`.
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.StructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_kitchen()
>>> point_a = (0.08, 2.50, 0.71)
>>> point_b = (0.08, 4.50, 0.71)
>>> line = pv.Line(point_a, point_b, resolution=39)
>>> streamlines = dataset.streamlines_from_source(line, max_length=200)
>>> streamlines.plot(show_grid=True)
.. seealso::
:ref:`Kitchen Dataset <kitchen_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`plot_over_line_example`
* :ref:`line_widget_example`
"""
if load and split:
return _download_dataset(__kitchen_split, load=load)
else:
return _download_dataset(_dataset_kitchen, load=load)
def _kitchen_split_load_func(mesh):
extents = {
'door': (27, 27, 14, 18, 0, 11),
'window1': (0, 0, 9, 18, 6, 12),
'window2': (5, 12, 23, 23, 6, 12),
'klower1': (17, 17, 0, 11, 0, 6),
'klower2': (19, 19, 0, 11, 0, 6),
'klower3': (17, 19, 0, 0, 0, 6),
'klower4': (17, 19, 11, 11, 0, 6),
'klower5': (17, 19, 0, 11, 0, 0),
'klower6': (17, 19, 0, 7, 6, 6),
'klower7': (17, 19, 9, 11, 6, 6),
'hood1': (17, 17, 0, 11, 11, 16),
'hood2': (19, 19, 0, 11, 11, 16),
'hood3': (17, 19, 0, 0, 11, 16),
'hood4': (17, 19, 11, 11, 11, 16),
'hood5': (17, 19, 0, 11, 16, 16),
'cookingPlate': (17, 19, 7, 9, 6, 6),
'furniture': (17, 19, 7, 9, 11, 11),
}
kitchen = pyvista.MultiBlock()
for key, extent in extents.items():
alg = _vtk.vtkStructuredGridGeometryFilter()
alg.SetInputDataObject(mesh)
alg.SetExtent(extent) # type: ignore[call-overload]
alg.Update()
result = pyvista.core.filters._get_output(alg)
kitchen[key] = result
return kitchen
_dataset_kitchen = _SingleFileDownloadableDatasetLoader('kitchen.vtk')
__kitchen_split = _SingleFileDownloadableDatasetLoader(
'kitchen.vtk',
load_func=_kitchen_split_load_func,
)
@_deprecate_positional_args
def download_tetra_dc_mesh(load=True): # noqa: FBT002
"""Download two meshes defining an electrical inverse problem.
This contains a high resolution forward modeled mesh and a coarse
inverse modeled mesh.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock
DataSet containing the high resolution forward modeled mesh
and a coarse inverse modeled mesh.
Examples
--------
>>> from pyvista import examples
>>> fine, coarse = examples.download_tetra_dc_mesh()
>>> coarse.plot()
.. seealso::
:ref:`Tetra Dc Mesh Dataset <tetra_dc_mesh_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_tetra_dc_mesh, load=load)
def _tetra_dc_mesh_files_func():
def _fwd_load_func(mesh):
mesh.set_active_scalars('Resistivity(log10)-fwd')
return mesh
def _inv_load_func(mesh):
mesh.set_active_scalars('Resistivity(log10)')
return mesh
fwd = _SingleFileDownloadableDatasetLoader(
'dc-inversion.zip',
target_file='mesh-forward.vtu',
load_func=_fwd_load_func,
)
inv = _SingleFileDownloadableDatasetLoader(
'dc-inversion.zip',
target_file='mesh-inverse.vtu',
load_func=_inv_load_func,
)
return fwd, inv
_dataset_tetra_dc_mesh = _MultiFileDownloadableDatasetLoader(
_tetra_dc_mesh_files_func,
load_func=functools.partial(_load_as_multiblock, names=['forward', 'inverse']),
)
@_deprecate_positional_args
def download_model_with_variance(load=True): # noqa: FBT002
"""Download model with variance dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_model_with_variance()
>>> dataset.plot()
.. seealso::
:ref:`Model With Variance Dataset <model_with_variance_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`opacity_example`
Example using this dataset.
"""
return _download_dataset(_dataset_model_with_variance, load=load)
_dataset_model_with_variance = _SingleFileDownloadableDatasetLoader('model_with_variance.vtu')
@_deprecate_positional_args
def download_thermal_probes(load=True): # noqa: FBT002
"""Download thermal probes dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_thermal_probes()
>>> dataset.plot(render_points_as_spheres=True, point_size=5, cpos='xy')
.. seealso::
:ref:`Thermal Probes Dataset <thermal_probes_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`interpolate_example`
Example using this dataset.
"""
return _download_dataset(_dataset_thermal_probes, load=load)
_dataset_thermal_probes = _SingleFileDownloadableDatasetLoader('probes.vtp')
@_deprecate_positional_args
def download_carburetor(load=True): # noqa: FBT002
"""Download scan of a carburetor.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_carburetor()
>>> dataset.plot()
.. seealso::
:ref:`Carburetor Dataset <carburetor_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_carburetor, load=load)
_dataset_carburetor = _SingleFileDownloadableDatasetLoader('carburetor.ply')
@_deprecate_positional_args
def download_turbine_blade(load=True): # noqa: FBT002
"""Download scan of a turbine blade.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_turbine_blade()
>>> dataset.plot()
.. seealso::
:ref:`Turbine Blade Dataset <turbine_blade_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_turbine_blade, load=load)
_dataset_turbine_blade = _SingleFileDownloadableDatasetLoader('turbineblade.ply')
@_deprecate_positional_args
def download_pine_roots(load=True): # noqa: FBT002
"""Download pine roots dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_pine_roots()
>>> dataset.plot()
.. seealso::
:ref:`Pine Roots Dataset <pine_roots_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`connectivity_example`
Example using this dataset.
"""
return _download_dataset(_dataset_pine_roots, load=load)
_dataset_pine_roots = _SingleFileDownloadableDatasetLoader('pine_root.tri')
@_deprecate_positional_args
def download_crater_topo(load=True): # noqa: FBT002
"""Download crater dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_crater_topo()
>>> dataset.plot(cmap='gist_earth', cpos='xy')
.. seealso::
:ref:`Crater Topo Dataset <crater_topo_dataset>`
See this dataset in the Dataset Gallery for more info.
This dataset is used in the following examples:
* :ref:`terrain_following_mesh_example`
* :ref:`topo_map_example`
"""
return _download_dataset(_dataset_crater_topo, load=load)
_dataset_crater_topo = _SingleFileDownloadableDatasetLoader('Ruapehu_mag_dem_15m_NZTM.vtk')
@_deprecate_positional_args
def download_crater_imagery(load=True): # noqa: FBT002
"""Download crater texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [66.0, 73.0, -382.6],
... [66.0, 73.0, 0.0],
... [-0.0, -1.0, 0.0],
... ]
>>> texture = examples.download_crater_imagery()
>>> texture.plot(cpos=cpos)
.. seealso::
:ref:`Crater Imagery Dataset <crater_imagery_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`topo_map_example`
Example using this dataset.
"""
return _download_dataset(_dataset_crater_imagery, load=load)
_dataset_crater_imagery = _SingleFileDownloadableDatasetLoader(
'BJ34_GeoTifv1-04_crater_clip.tif',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_dolfin(load=True): # noqa: FBT002
"""Download dolfin mesh.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_dolfin()
>>> dataset.plot(cpos='xy', show_edges=True)
.. seealso::
:ref:`Dolfin Dataset <dolfin_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`read_dolfin_example`
"""
return _download_dataset(_dataset_dolfin, load=load)
_dataset_dolfin = _SingleFileDownloadableDatasetLoader(
'dolfin_fine.xml',
read_func=functools.partial(read, file_format='dolfin-xml'), # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_damavand_volcano(load=True): # noqa: FBT002
"""Download damavand volcano model.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
Load the dataset.
>>> from pyvista import examples
>>> dataset = examples.download_damavand_volcano()
Use :meth:`~pyvista.ImageDataFilters.resample` to downsample it before plotting.
>>> dataset = dataset.resample(0.5)
>>> dataset.dimensions
(140, 116, 85)
Plot it.
>>> cpos = [
... [4.66316700e04, 4.32796241e06, -3.82467050e05],
... [5.52532740e05, 3.98017300e06, -2.47450000e04],
... [4.10000000e-01, -2.90000000e-01, -8.60000000e-01],
... ]
>>> dataset.plot(cpos=cpos, cmap='reds', show_scalar_bar=False, volume=True)
.. seealso::
:ref:`Damavand Volcano Dataset <damavand_volcano_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`volume_rendering_example`
Example using this dataset.
"""
return _download_dataset(_dataset_damavand_volcano, load=load)
def _damavand_volcano_load_func(volume):
volume.rename_array('None', 'data')
return volume
_dataset_damavand_volcano = _SingleFileDownloadableDatasetLoader(
'damavand-volcano.vtk',
load_func=_damavand_volcano_load_func,
)
@_deprecate_positional_args
def download_delaunay_example(load=True): # noqa: FBT002
"""Download a pointset for the Delaunay example.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_delaunay_example()
>>> dataset.plot(show_edges=True)
.. seealso::
:ref:`Delaunay Example Dataset <delaunay_example_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_delaunay_example, load=load)
_dataset_delaunay_example = _SingleFileDownloadableDatasetLoader('250.vtk')
@_deprecate_positional_args
def download_embryo(load=True): # noqa: FBT002
"""Download a volume of an embryo.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_embryo()
>>> dataset.plot(volume=True)
.. seealso::
:ref:`Embryo Dataset <embryo_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
This dataset is used in the following examples:
* :ref:`contouring_example`
* :ref:`resampling_example`
* :ref:`slice_orthogonal_example`
"""
return _download_dataset(_dataset_embryo, load=load)
def _embryo_load_func(dataset):
# cleanup artifact
mask = dataset['SLCImage'] == 255
dataset['SLCImage'][mask] = 0
return dataset
_dataset_embryo = _SingleFileDownloadableDatasetLoader('embryo.slc', load_func=_embryo_load_func)
@_deprecate_positional_args
def download_antarctica_velocity(load=True): # noqa: FBT002
"""Download the antarctica velocity simulation results.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_antarctica_velocity()
>>> dataset.plot(cpos='xy', clim=[1e-3, 1e4], cmap='Blues', log_scale=True)
.. seealso::
:ref:`Antarctica Velocity Dataset <antarctica_velocity_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`antarctica_example`
Example using this dataset.
"""
return _download_dataset(_dataset_antarctica_velocity, load=load)
_dataset_antarctica_velocity = _SingleFileDownloadableDatasetLoader('antarctica_velocity.vtp')
@_deprecate_positional_args
def download_room_surface_mesh(load=True): # noqa: FBT002
"""Download the room surface mesh.
This mesh is for demonstrating the difference that depth peeling can
provide when rendering translucent geometries.
This mesh is courtesy of `Sam Potter <https://github.com/sampotter>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_room_surface_mesh()
>>> dataset.plot()
.. seealso::
:ref:`Room Surface Mesh Dataset <room_surface_mesh_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`depth_peeling_example`
Example using this dataset.
"""
return _download_dataset(_dataset_room_surface_mesh, load=load)
_dataset_room_surface_mesh = _SingleFileDownloadableDatasetLoader('room_surface_mesh.obj')
@_deprecate_positional_args
def download_beach(load=True): # noqa: FBT002
"""Download the beach NRRD image.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_beach()
>>> dataset.plot(rgba=True, cpos='xy')
.. seealso::
:ref:`Beach Dataset <beach_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_beach, load=load)
_dataset_beach = _SingleFileDownloadableDatasetLoader('beach.nrrd')
@_deprecate_positional_args
def download_rgba_texture(load=True): # noqa: FBT002
"""Download a texture with an alpha channel.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_rgba_texture()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Rgba Texture Dataset <rgba_texture_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`texture_example`
Example using this dataset.
"""
return _download_dataset(_dataset_rgba_texture, load=load)
_dataset_rgba_texture = _SingleFileDownloadableDatasetLoader(
'alphachannel.png',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_vtk_logo(load=True): # noqa: FBT002
"""Download a texture of the VTK logo.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_vtk_logo()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Vtk Logo Dataset <vtk_logo_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Vtk Dataset <vtk_dataset>`
"""
return _download_dataset(_dataset_vtk_logo, load=load)
_dataset_vtk_logo = _SingleFileDownloadableDatasetLoader('vtk.png', read_func=read_texture) # type: ignore[arg-type]
@_deprecate_positional_args
def download_sky_box_cube_map(load=True): # noqa: FBT002
"""Download a skybox cube map texture.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture
Texture containing a skybox.
Examples
--------
>>> from pyvista import examples
>>> import pyvista as pv
>>> pl = pv.Plotter()
>>> dataset = examples.download_sky_box_cube_map()
>>> _ = pl.add_actor(dataset.to_skybox())
>>> pl.set_environment_texture(dataset)
>>> pl.show()
.. seealso::
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cubemap Space 4k Dataset <cubemap_space_4k_dataset>`
:ref:`Cubemap Space 16k Dataset <cubemap_space_16k_dataset>`
:ref:`Cubemap Park Dataset <cubemap_park_dataset>`
:ref:`pbr_example`
Example using this dataset.
"""
return _download_dataset(_dataset_sky_box_cube_map, load=load)
def _sky_box_cube_map_files_func():
posx = _DownloadableFile(
'skybox2-posx.jpg',
)
negx = _DownloadableFile('skybox2-negx.jpg')
posy = _DownloadableFile('skybox2-posy.jpg')
negy = _DownloadableFile('skybox2-negy.jpg')
posz = _DownloadableFile('skybox2-posz.jpg')
negz = _DownloadableFile('skybox2-negz.jpg')
return posx, negx, posy, negy, posz, negz
_dataset_sky_box_cube_map = _MultiFileDownloadableDatasetLoader(
files_func=_sky_box_cube_map_files_func,
load_func=_load_as_cubemap,
)
@_deprecate_positional_args
def download_cubemap_park(load=True): # noqa: FBT002
"""Download a cubemap of a park.
Downloaded from http://www.humus.name/index.php?page=Textures
by David Eck, and converted to a smaller 512x512 size for use
with WebGL in his free, on-line textbook at
http://math.hws.edu/graphicsbook
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture
Texture containing a skybox.
Examples
--------
>>> from pyvista import examples
>>> import pyvista as pv
>>> pl = pv.Plotter(lighting=None)
>>> dataset = examples.download_cubemap_park()
>>> _ = pl.add_actor(dataset.to_skybox())
>>> pl.set_environment_texture(dataset, is_srgb=True)
>>> pl.camera_position = 'xy'
>>> pl.camera.zoom(0.4)
>>> _ = pl.add_mesh(pv.Sphere(), pbr=True, roughness=0.1, metallic=0.5)
>>> pl.show()
.. seealso::
:ref:`Cubemap Park Dataset <cubemap_park_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cubemap Space 4k Dataset <cubemap_space_4k_dataset>`
:ref:`Cubemap Space 16k Dataset <cubemap_space_16k_dataset>`
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
"""
return _download_dataset(_dataset_cubemap_park, load=load)
_dataset_cubemap_park = _SingleFileDownloadableDatasetLoader(
'cubemap_park/cubemap_park.zip',
target_file='',
read_func=_load_as_cubemap, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_cubemap_space_4k(load=True): # noqa: FBT002
"""Download the 4k space cubemap.
This cubemap was generated by downloading the 4k image from: `Deep Star
Maps 2020 <https://svs.gsfc.nasa.gov/4851>`_ and converting it using
https://jaxry.github.io/panorama-to-cubemap/
See `vtk-data/cubemap_space
<https://github.com/pyvista/vtk-data/tree/master/Data/cubemap_space#readme>`_
for more details.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture
Texture containing a skybox.
Examples
--------
Display the cubemap as both an environment texture and an actor.
>>> import pyvista as pv
>>> from pyvista import examples
>>> cubemap = examples.download_cubemap_space_4k()
>>> pl = pv.Plotter(lighting=None)
>>> _ = pl.add_actor(cubemap.to_skybox())
>>> pl.set_environment_texture(cubemap, is_srgb=True)
>>> pl.camera.zoom(0.4)
>>> _ = pl.add_mesh(pv.Sphere(), pbr=True, roughness=0.24, metallic=1.0)
>>> pl.show()
.. seealso::
:ref:`Cubemap Space 4k Dataset <cubemap_space_4k_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cubemap Space 16k Dataset <cubemap_space_16k_dataset>`
:ref:`Cubemap Park Dataset <cubemap_park_dataset>`
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
"""
return _download_dataset(_dataset_cubemap_space_4k, load=load)
_dataset_cubemap_space_4k = _SingleFileDownloadableDatasetLoader(
'cubemap_space/4k.zip',
target_file='',
read_func=_load_as_cubemap, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_cubemap_space_16k(load=True): # noqa: FBT002
"""Download the 16k space cubemap.
This cubemap was generated by downloading the 16k image from: `Deep Star
Maps 2020 <https://svs.gsfc.nasa.gov/4851>`_ and converting it using
https://jaxry.github.io/panorama-to-cubemap/
See `vtk-data/cubemap_space
<https://github.com/pyvista/vtk-data/tree/master/Data/cubemap_space#readme>`_ for
more details.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture
Texture containing a skybox.
Notes
-----
This is a 38MB file and may take a while to download.
Examples
--------
Display the cubemap as both an environment texture and an actor. Note that
here we're displaying the 4k as the 16k is a bit too expensive to display
in the documentation.
>>> import pyvista as pv
>>> from pyvista import examples
>>> cubemap = examples.download_cubemap_space_4k()
>>> pl = pv.Plotter(lighting=None)
>>> _ = pl.add_actor(cubemap.to_skybox())
>>> pl.set_environment_texture(cubemap, is_srgb=True)
>>> pl.camera.zoom(0.4)
>>> _ = pl.add_mesh(pv.Sphere(), pbr=True, roughness=0.24, metallic=1.0)
>>> pl.show()
.. seealso::
:ref:`Cubemap Space 16k Dataset <cubemap_space_16k_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cubemap Space 4k Dataset <cubemap_space_4k_dataset>`
:ref:`Cubemap Park Dataset <cubemap_park_dataset>`
:ref:`Sky Box Cube Map Dataset <sky_box_cube_map_dataset>`
"""
return _download_dataset(_dataset_cubemap_space_16k, load=load)
_dataset_cubemap_space_16k = _SingleFileDownloadableDatasetLoader(
'cubemap_space/16k.zip',
target_file='',
read_func=_load_as_cubemap, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_backward_facing_step(load=True): # noqa: FBT002
"""Download an ensight gold case of a fluid simulation.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_backward_facing_step()
>>> dataset.plot()
.. seealso::
:ref:`Backward Facing Step Dataset <backward_facing_step_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_backward_facing_step, load=load)
_dataset_backward_facing_step = _SingleFileDownloadableDatasetLoader(
'EnSight.zip',
target_file='foam_case_0_0_0_0.case',
)
@_deprecate_positional_args
def download_gpr_data_array(load=True): # noqa: FBT002
"""Download GPR example data array.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
numpy.ndarray | str
Array or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_gpr_data_array() # doctest:+SKIP
>>> dataset # doctest:+SKIP
array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]])
.. seealso::
:ref:`Gpr Data Array Dataset <gpr_data_array_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Gpr Path Dataset <gpr_path_dataset>`
:ref:`create_draped_surface_example`
Example using this dataset.
"""
return _download_dataset(_dataset_gpr_data_array, load=load)
_dataset_gpr_data_array = _SingleFileDownloadableDatasetLoader(
'gpr-example/data.npy',
read_func=np.load,
)
@_deprecate_positional_args
def download_gpr_path(load=True): # noqa: FBT002
"""Download GPR example path.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_gpr_path()
>>> dataset.plot()
.. seealso::
:ref:`Gpr Path Dataset <gpr_path_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Gpr Data Array Dataset <gpr_data_array_dataset>`
:ref:`create_draped_surface_example`
Example using this dataset.
"""
return _download_dataset(_dataset_gpr_path, load=load)
_dataset_gpr_path = _SingleFileDownloadableDatasetLoader(
'gpr-example/path.txt',
read_func=functools.partial(np.loadtxt, skiprows=1), # type: ignore[arg-type]
load_func=pyvista.PolyData, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_woman(load=True): # noqa: FBT002
"""Download scan of a woman.
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_woman()
>>> cpos = [
... (-2600.0, 1970.6, 1836.9),
... (48.5, -20.3, 843.9),
... (0.23, -0.168, 0.958),
... ]
>>> dataset.plot(cpos=cpos)
.. seealso::
:ref:`Woman Dataset <woman_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_woman, load=load)
_dataset_woman = _SingleFileDownloadableDatasetLoader('woman.stl')
@_deprecate_positional_args
def download_lobster(load=True): # noqa: FBT002
"""Download scan of a lobster.
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_lobster()
>>> dataset.plot()
.. seealso::
:ref:`Lobster Dataset <lobster_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_lobster, load=load)
_dataset_lobster = _SingleFileDownloadableDatasetLoader('lobster.ply')
@_deprecate_positional_args
def download_face2(load=True): # noqa: FBT002
"""Download scan of a man's face.
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_face2()
>>> dataset.plot()
.. seealso::
:ref:`Face2 Dataset <face2_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Face Dataset <face_dataset>`
"""
return _download_dataset(_dataset_face2, load=load)
_dataset_face2 = _SingleFileDownloadableDatasetLoader('man_face.stl')
@_deprecate_positional_args
def download_urn(load=True): # noqa: FBT002
"""Download scan of a burial urn.
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> cpos = [
... [-7.123e02, 5.715e02, 8.601e02],
... [4.700e00, 2.705e02, -1.010e01],
... [2.000e-01, 1.000e00, -2.000e-01],
... ]
>>> dataset = examples.download_urn()
>>> dataset.plot(cpos=cpos)
.. seealso::
:ref:`Urn Dataset <urn_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_urn, load=load)
_dataset_urn = _SingleFileDownloadableDatasetLoader('urn.stl')
@_deprecate_positional_args
def download_pepper(load=True): # noqa: FBT002
"""Download scan of a pepper (capsicum).
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_pepper()
>>> dataset.plot()
.. seealso::
:ref:`Pepper Dataset <pepper_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_pepper, load=load)
_dataset_pepper = _SingleFileDownloadableDatasetLoader('pepper.ply')
@_deprecate_positional_args
def download_drill(load=True): # noqa: FBT002
"""Download scan of a power drill.
Originally obtained from Laser Design.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_drill()
>>> dataset.plot()
.. seealso::
:ref:`Drill Dataset <drill_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
# Silence warning: unexpected data at end of line in OBJ file
with pyvista.vtk_verbosity('off'):
return _download_dataset(_dataset_drill, load=load)
_dataset_drill = _SingleFileDownloadableDatasetLoader('drill.obj')
@_deprecate_positional_args
def download_action_figure(load=True, *, high_resolution=False): # noqa: FBT002
"""Download scan of an action figure.
Originally obtained from Laser Design.
.. versionchanged:: 0.45
A decimated version of this dataset with 31 thousand cells is now returned.
Previously, a high-resolution version with 630 thousand cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 95% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Show the action figure example. This also demonstrates how to use
physically based rendering and lighting to make a good looking
plot.
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_action_figure()
>>> _ = dataset.clean(inplace=True)
>>> pl = pv.Plotter(lighting=None)
>>> pl.add_light(pv.Light(position=(30, 10, 10)))
>>> _ = pl.add_mesh(
... dataset,
... color='w',
... smooth_shading=True,
... pbr=True,
... metallic=0.3,
... roughness=0.5,
... )
>>> pl.camera_position = [
... (32.3, 116.3, 220.6),
... (-0.05, 3.8, 33.8),
... (-0.017, 0.86, -0.51),
... ]
>>> pl.show()
.. seealso::
:ref:`Action Figure Dataset <action_figure_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_action_figure_high_res, load=load)
return _download_dataset(_dataset_action_figure, load=load)
_dataset_action_figure = _SingleFileDownloadableDatasetLoader('tigerfighter_decimated.obj')
__dataset_action_figure_high_res = _SingleFileDownloadableDatasetLoader('tigerfighter.obj')
@_deprecate_positional_args
def download_notch_stress(load=True): # noqa: FBT002
"""Download the FEA stress result from a notched beam.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_notch_stress()
>>> dataset.plot(cmap='bwr')
.. seealso::
:ref:`Notch Stress Dataset <notch_stress_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Notch Displacement Dataset <notch_displacement_dataset>`
:ref:`Aero Bracket Dataset <aero_bracket_dataset>`
:ref:`Fea Bracket Dataset <fea_bracket_dataset>`
:ref:`Fea Hertzian Contact Cylinder Dataset <fea_hertzian_contact_cylinder_dataset>`
"""
return _download_dataset(_dataset_notch_stress, load=load)
_dataset_notch_stress = _SingleFileDownloadableDatasetLoader('notch_stress.vtk')
@_deprecate_positional_args
def download_notch_displacement(load=True): # noqa: FBT002
"""Download the FEA displacement result from a notched beam.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_notch_displacement()
>>> dataset.plot(cmap='bwr')
.. seealso::
:ref:`Notch Displacement Dataset <notch_displacement_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Notch Stress Dataset <notch_stress_dataset>`
:ref:`Aero Bracket Dataset <aero_bracket_dataset>`
:ref:`Fea Bracket Dataset <fea_bracket_dataset>`
:ref:`Fea Hertzian Contact Cylinder Dataset <fea_hertzian_contact_cylinder_dataset>`
"""
return _download_dataset(_dataset_notch_displacement, load=load)
_dataset_notch_displacement = _SingleFileDownloadableDatasetLoader('notch_disp.vtu')
@_deprecate_positional_args
def download_louis_louvre(load=True): # noqa: FBT002
"""Download the Louis XIV de France statue at the Louvre, Paris.
Statue found in the Napoléon Courtyard of Louvre Palace. It is a
copy in plomb of the original statue in Versailles, made by
Bernini and Girardon.
Originally downloaded from `sketchfab <https://sketchfab.com/3d-models/louis-xiv-de-france-louvre-paris-a0cc0e7eee384c99838dff2857b8158c>`_
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Plot the Louis XIV statue with custom lighting and camera angle.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_louis_louvre()
>>> pl = pv.Plotter(lighting=None)
>>> _ = pl.add_mesh(dataset, smooth_shading=True)
>>> pl.add_light(pv.Light(position=(10, -10, 10)))
>>> pl.camera_position = [
... [-6.71, -14.55, 15.17],
... [1.44, 2.54, 9.84],
... [0.16, 0.22, 0.96],
... ]
>>> pl.show()
.. seealso::
:ref:`Louis Louvre Dataset <louis_louvre_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`pbr_example`
Example using this dataset.
"""
return _download_dataset(_dataset_louis_louvre, load=load)
_dataset_louis_louvre = _SingleFileDownloadableDatasetLoader('louis.ply')
@_deprecate_positional_args
def download_cylinder_crossflow(load=True): # noqa: FBT002
"""Download CFD result for cylinder in cross flow at Re=35.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cylinder_crossflow()
>>> dataset.plot(cpos='xy', cmap='blues', rng=[-200, 500])
.. seealso::
:ref:`Cylinder Crossflow Dataset <cylinder_crossflow_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`streamlines_2D_example`
Example using this dataset.
"""
return _download_dataset(_dataset_cylinder_crossflow, load=load)
def _cylinder_crossflow_files_func():
case = _SingleFileDownloadableDatasetLoader('EnSight/CylinderCrossflow/cylinder_Re35.case')
geo = _DownloadableFile('EnSight/CylinderCrossflow/cylinder_Re35.geo')
scl1 = _DownloadableFile('EnSight/CylinderCrossflow/cylinder_Re35.scl1')
scl2 = _DownloadableFile('EnSight/CylinderCrossflow/cylinder_Re35.scl2')
vel = _DownloadableFile('EnSight/CylinderCrossflow/cylinder_Re35.vel')
return case, geo, scl1, scl2, vel
_dataset_cylinder_crossflow = _MultiFileDownloadableDatasetLoader(
files_func=_cylinder_crossflow_files_func,
)
@_deprecate_positional_args
def download_naca(load=True): # noqa: FBT002
"""Download NACA airfoil dataset in EnSight format.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
Plot the density of the air surrounding the NACA airfoil using the
``"jet"`` color map.
>>> from pyvista import examples
>>> cpos = [[-0.22, 0.0, 2.52], [0.43, 0.0, 0.0], [0.0, 1.0, 0.0]]
>>> dataset = examples.download_naca()
>>> dataset.plot(cpos=cpos, cmap='jet')
.. seealso::
:ref:`Naca Dataset <naca_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`reader_example`
Example using this dataset.
"""
return _download_dataset(_dataset_naca, load=load)
def _naca_files_func():
case = _SingleFileDownloadableDatasetLoader('EnSight/naca.bin.case')
dens1 = _DownloadableFile('EnSight/naca.gold.bin.DENS_1')
dens3 = _DownloadableFile('EnSight/naca.gold.bin.DENS_3')
geo = _DownloadableFile('EnSight/naca.gold.bin.geo')
return case, dens1, dens3, geo
_dataset_naca = _MultiFileDownloadableDatasetLoader(files_func=_naca_files_func)
@_deprecate_positional_args
def download_lshape(load=True): # noqa: FBT002
"""Download LShape dataset in EnSight format.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
Load and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_lshape()['all']
>>> warped = mesh.warp_by_vector(factor=30)
>>> warped.plot(scalars='displacement')
.. seealso::
:ref:`Lshape Dataset <lshape_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_lshape, load=load)
def _lshape_files_func():
def read_func(filename):
reader = pyvista.get_reader(filename)
reader.set_active_time_set(1)
reader.set_active_time_value(1.0)
return reader.read()
case = _SingleFileDownloadableDatasetLoader('EnSight/LShape.case', read_func=read_func)
geo = _DownloadableFile('EnSight/LShape_geometry.geo')
var = _DownloadableFile('EnSight/LShape_displacement.var')
return case, geo, var
_dataset_lshape = _MultiFileDownloadableDatasetLoader(files_func=_lshape_files_func)
@_deprecate_positional_args
def download_wavy(load=True): # noqa: FBT002
"""Download PVD file of a 2D wave.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_wavy()
>>> dataset.plot()
.. seealso::
:ref:`Wavy Dataset <wavy_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`reader_example`
Example using this dataset.
"""
return _download_dataset(_dataset_wavy, load=load)
_dataset_wavy = _SingleFileDownloadableDatasetLoader('PVD/wavy.zip', target_file='unzip/wavy.pvd')
@_deprecate_positional_args
def download_single_sphere_animation(load=True): # noqa: FBT002
"""Download PVD file for single sphere.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import os
>>> from tempfile import mkdtemp
>>> import pyvista as pv
>>> from pyvista import examples
>>> filename = examples.download_single_sphere_animation(load=False)
>>> reader = pv.PVDReader(filename)
Write the gif to a temporary directory. Normally you would write to a local
path.
>>> gif_filename = os.path.join(mkdtemp(), 'single_sphere.gif')
Generate the animation.
>>> plotter = pv.Plotter()
>>> plotter.open_gif(gif_filename)
>>> for time_value in reader.time_values:
... reader.set_active_time_value(time_value)
... mesh = reader.read()
... _ = plotter.add_mesh(mesh, smooth_shading=True)
... _ = plotter.add_text(f'Time: {time_value:.0f}', color='black')
... plotter.write_frame()
... plotter.clear()
... plotter.enable_lightkit()
>>> plotter.close()
.. seealso::
:ref:`Single Sphere Animation Dataset <single_sphere_animation_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Dual Sphere Animation Dataset <dual_sphere_animation_dataset>`
"""
return _download_dataset(_dataset_single_sphere_animation, load=load)
_dataset_single_sphere_animation = _SingleFileDownloadableDatasetLoader(
'PVD/paraview/singleSphereAnimation.zip',
target_file='singleSphereAnimation.pvd',
)
@_deprecate_positional_args
def download_dual_sphere_animation(load=True): # noqa: FBT002
"""Download PVD file for double sphere.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import os
>>> from tempfile import mkdtemp
>>> import pyvista as pv
>>> from pyvista import examples
>>> filename = examples.download_dual_sphere_animation(load=False)
>>> reader = pv.PVDReader(filename)
Write the gif to a temporary directory. Normally you would write to a local
path.
>>> gif_filename = os.path.join(mkdtemp(), 'dual_sphere.gif')
Generate the animation.
>>> plotter = pv.Plotter()
>>> plotter.open_gif(gif_filename)
>>> for time_value in reader.time_values:
... reader.set_active_time_value(time_value)
... mesh = reader.read()
... _ = plotter.add_mesh(mesh, smooth_shading=True)
... _ = plotter.add_text(f'Time: {time_value:.0f}', color='black')
... plotter.write_frame()
... plotter.clear()
... plotter.enable_lightkit()
>>> plotter.close()
.. seealso::
:ref:`Dual Sphere Animation Dataset <dual_sphere_animation_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Single Sphere Animation Dataset <single_sphere_animation_dataset>`
"""
return _download_dataset(_dataset_dual_sphere_animation, load=load)
_dataset_dual_sphere_animation = _SingleFileDownloadableDatasetLoader(
'PVD/paraview/dualSphereAnimation.zip',
target_file='dualSphereAnimation.pvd',
)
@_deprecate_positional_args
def download_osmnx_graph(load=True): # noqa: FBT002
"""Load a simple street map from Open Street Map.
Generated from:
.. code-block:: python
>>> import osmnx as ox # doctest:+SKIP
>>> address = 'Holzgerlingen DE' # doctest:+SKIP
>>> graph = ox.graph_from_address(
... address, dist=500, network_type='drive'
... ) # doctest:+SKIP
>>> pickle.dump(graph, open('osmnx_graph.p', 'wb')) # doctest:+SKIP
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
networkx.classes.multidigraph.MultiDiGraph
An osmnx graph of the streets of Holzgerlingen, Germany.
Examples
--------
>>> from pyvista import examples
>>> graph = examples.download_osmnx_graph() # doctest:+SKIP
.. seealso::
:ref:`Osmnx Graph Dataset <osmnx_graph_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
# Deprecated on v0.44.0, estimated removal on v0.47.0
warnings.warn(
'`download_osmnx_graph` is deprecated and will be removed in v0.47.0. Please use https://github.com/pyvista/pyvista-osmnx.',
PyVistaDeprecationWarning,
)
if pyvista._version.version_info >= (0, 47):
msg = 'Remove this deprecated function'
raise RuntimeError(msg)
if not importlib.util.find_spec('osmnx'):
msg = 'Install `osmnx` to use this example'
raise ImportError(msg)
return _download_dataset(_dataset_osmnx_graph, load=load)
def _osmnx_graph_read_func(filename):
return pickle.load(Path(filename).open('rb'))
_dataset_osmnx_graph = _SingleFileDownloadableDatasetLoader(
'osmnx_graph.p',
read_func=_osmnx_graph_read_func,
)
@_deprecate_positional_args
def download_cavity(load=True): # noqa: FBT002
"""Download cavity OpenFOAM example.
Retrieved from
`Kitware VTK Data <https://data.kitware.com/#collection/55f17f758d777f6ddc7895b7/folder/5afd932e8d777f15ebe1b183>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cavity() # doctest:+SKIP
.. seealso::
:ref:`Cavity Dataset <cavity_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`openfoam_example`
Full example using this dataset.
"""
return _download_dataset(_dataset_cavity, load=load)
_dataset_cavity = _SingleFileDownloadableDatasetLoader(
'OpenFOAM.zip',
target_file='cavity/case.foam',
)
@_deprecate_positional_args
def download_openfoam_tubes(load=True): # noqa: FBT002
"""Download tubes OpenFOAM example.
Data generated from public SimScale examples at `SimScale Project Library -
Turbo <https://www.simscale.com/projects/ayarnoz/turbo/>`_.
Licensing for this dataset is granted to freely and without restriction
reproduce, distribute, publish according to the `SimScale Terms and
Conditions <https://www.simscale.com/terms-and-conditions/>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
Plot the outline of the dataset along with a cross section of the flow velocity.
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_openfoam_tubes()
>>> air = dataset[0]
>>> y_slice = air.slice('y')
>>> pl = pv.Plotter()
>>> _ = pl.add_mesh(
... y_slice,
... scalars='U',
... lighting=False,
... scalar_bar_args={'title': 'Flow Velocity'},
... )
>>> _ = pl.add_mesh(air, color='w', opacity=0.25)
>>> pl.enable_anti_aliasing()
>>> pl.show()
.. seealso::
:ref:`Openfoam Tubes Dataset <openfoam_tubes_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`openfoam_tubes_example`
Full example using this dataset.
"""
return _download_dataset(_dataset_openfoam_tubes, load=load)
def _openfoam_tubes_read_func(filename):
reader = pyvista.OpenFOAMReader(filename)
reader.set_active_time_value(1000)
return reader.read()
_dataset_openfoam_tubes = _SingleFileDownloadableDatasetLoader(
'fvm/turbo_incompressible/Turbo-Incompressible_3-Run_1-SOLUTION_FIELDS.zip',
target_file='case.foam',
read_func=_openfoam_tubes_read_func,
)
@_deprecate_positional_args
def download_lucy(load=True): # noqa: FBT002
"""Download the lucy angel mesh.
Original downloaded from the `The Stanford 3D Scanning Repository
<http://graphics.stanford.edu/data/3Dscanrep/>`_ and decimated to
approximately 100k triangle.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Plot the Lucy Angel dataset with custom lighting.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_lucy()
Create a light at the "flame".
>>> flame_light = pv.Light(
... color=[0.886, 0.345, 0.133],
... position=[550, 140, 950],
... intensity=1.5,
... positional=True,
... cone_angle=90,
... attenuation_values=(0.001, 0.005, 0),
... )
Create a scene light.
>>> scene_light = pv.Light(intensity=0.2)
>>> pl = pv.Plotter(lighting=None)
>>> _ = pl.add_mesh(dataset, smooth_shading=True)
>>> pl.add_light(flame_light)
>>> pl.add_light(scene_light)
>>> pl.background_color = 'k'
>>> pl.show()
.. seealso::
:ref:`Lucy Dataset <lucy_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`jupyter_plotting`
Example using this dataset.
"""
return _download_dataset(_dataset_lucy, load=load)
_dataset_lucy = _SingleFileDownloadableDatasetLoader('lucy.ply')
@_deprecate_positional_args
def download_pump_bracket(load=True): # noqa: FBT002
"""Download the pump bracket example dataset.
Data generated from public SimScale examples at `SimScale Project Library -
Turbo <https://www.simscale.com/projects/STR/bracket/>`_.
Licensing for this dataset is granted freely and without restriction to
reproduce, distribute, and publish according to the `SimScale Terms and
Conditions <https://www.simscale.com/terms-and-conditions/>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Load the dataset.
>>> import pyvista as pv
>>> from pyvista import examples
>>> dataset = examples.download_pump_bracket()
>>> dataset
UnstructuredGrid (...)
N Cells: 124806
N Points: 250487
X Bounds: -5.000e-01, 5.000e-01
Y Bounds: -4.000e-01, 0.000e+00
Z Bounds: -2.500e-02, 2.500e-02
N Arrays: 10
Plot the displacement of the 4th mode shape as scalars.
>>> cpos = [
... (0.744, -0.502, -0.830),
... (0.0520, -0.160, 0.0743),
... (-0.180, -0.958, 0.224),
... ]
>>> dataset.plot(
... scalars='disp_3',
... cpos=cpos,
... show_scalar_bar=False,
... ambient=0.2,
... anti_aliasing='fxaa',
... )
.. seealso::
:ref:`Pump Bracket Dataset <pump_bracket_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`pump_bracket_example`
Full example using this dataset.
"""
return _download_dataset(_dataset_pump_bracket, load=load)
_dataset_pump_bracket = _SingleFileDownloadableDatasetLoader(
'fea/pump_bracket/pump_bracket.zip',
target_file='pump_bracket.vtk',
)
@_deprecate_positional_args
def download_electronics_cooling(load=True): # noqa: FBT002
"""Download the electronics cooling example datasets.
Data generated from public SimScale examples at `SimScale Project Library -
Turbo <https://www.simscale.com/projects/ayarnoz/turbo/>`_.
Licensing for this dataset is granted to freely and without restriction
reproduce, distribute, publish according to the `SimScale Terms and
Conditions <https://www.simscale.com/terms-and-conditions/>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
tuple[PolyData, UnstructuredGrid] | list[str]
DataSets or filenames depending on ``load``.
Examples
--------
Load the datasets and plot the air velocity through the electronics.
>>> import pyvista as pv
>>> from pyvista import examples
>>> structure, air = examples.download_electronics_cooling()
Show the type and bounds of the datasets.
>>> structure, air
(PolyData (...)
N Cells: 344270
N Points: 187992
N Strips: 0
X Bounds: -3.000e-03, 1.530e-01
Y Bounds: -3.000e-03, 2.030e-01
Z Bounds: -9.000e-03, 4.200e-02
N Arrays: 4, UnstructuredGrid (...)
N Cells: 1749992
N Points: 610176
X Bounds: -1.388e-18, 1.500e-01
Y Bounds: -3.000e-03, 2.030e-01
Z Bounds: -6.000e-03, 4.400e-02
N Arrays: 10)
>>> z_slice = air.clip('z', value=-0.005)
>>> pl = pv.Plotter()
>>> pl.enable_ssao(radius=0.01)
>>> _ = pl.add_mesh(
... z_slice,
... scalars='U',
... lighting=False,
... scalar_bar_args={'title': 'Velocity'},
... )
>>> _ = pl.add_mesh(
... structure,
... color='w',
... smooth_shading=True,
... split_sharp_edges=True,
... )
>>> pl.camera_position = 'xy'
>>> pl.camera.roll = 90
>>> pl.enable_anti_aliasing('fxaa')
>>> pl.show()
.. seealso::
:ref:`Electronics Cooling Dataset <electronics_cooling_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`openfoam_cooling_example`
Full example using this dataset.
"""
return _download_dataset(_dataset_electronics_cooling, load=load)
def _electronics_cooling_files_func():
_structure = _SingleFileDownloadableDatasetLoader(
'fvm/cooling_electronics/datasets.zip',
target_file='structure.vtp',
)
_air = _SingleFileDownloadableDatasetLoader(
'fvm/cooling_electronics/datasets.zip',
target_file='air.vtu',
)
return _structure, _air
_dataset_electronics_cooling = _MultiFileDownloadableDatasetLoader(
_electronics_cooling_files_func,
load_func=_load_as_multiblock,
)
@_deprecate_positional_args
def download_can(partial=False, load=True): # noqa: FBT002
"""Download the can dataset mesh.
File obtained from `Kitware <https://www.kitware.com/>`_. Used
for testing hdf files.
Parameters
----------
partial : bool, default: False
Load part of the dataset.
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str | list[str]
The example ParaView can DataSet or file path(s).
Examples
--------
Plot the can dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_can() # doctest:+SKIP
>>> dataset.plot(scalars='VEL', smooth_shading=True) # doctest:+SKIP
.. seealso::
:ref:`Can Dataset <can_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Can Crushed Hdf Dataset <can_crushed_hdf_dataset>`
:ref:`Can Crushed Vtu Dataset <can_crushed_vtu_dataset>`
"""
if pyvista.vtk_version_info > (9, 1, 0):
msg = (
'This example file is deprecated for VTK v9.2.0 and newer. '
'Use `download_can_crushed_hdf` instead.'
)
raise VTKVersionError(msg)
if partial:
return _download_dataset(__can_partial, load=load)
else:
return _download_dataset(_dataset_can, load=load)
def _dataset_can_files_func():
if pyvista.vtk_version_info > (9, 1, 0):
msg = (
'This example file is deprecated for VTK v9.2.0 and newer. '
'Use `download_can_crushed_hdf` instead.'
)
raise VTKVersionError(msg)
can_0 = _SingleFileDownloadableDatasetLoader('hdf/can_0.hdf')
can_1 = _SingleFileDownloadableDatasetLoader('hdf/can_1.hdf')
can_2 = _SingleFileDownloadableDatasetLoader('hdf/can_2.hdf')
return can_0, can_1, can_2
_dataset_can = _MultiFileDownloadableDatasetLoader(
files_func=_dataset_can_files_func,
load_func=_load_and_merge,
)
__can_partial = _SingleFileDownloadableDatasetLoader('hdf/can_0.hdf')
@_deprecate_positional_args
def download_can_crushed_hdf(load=True): # noqa: FBT002
"""Download the crushed can dataset.
File obtained from `Kitware <https://www.kitware.com/>`_. Used
for testing hdf files.
Originally built using VTK v9.2.0rc from:
``VTK/build/ExternalTesting/can-vtu.hdf``
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
Crushed can dataset or path depending on the value of ``load``.
Examples
--------
Plot the crushed can dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_can_crushed_hdf()
>>> dataset.plot(smooth_shading=True)
.. seealso::
:ref:`Can Crushed Hdf Dataset <can_crushed_hdf_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Can Crushed Vtu Dataset <can_crushed_vtu_dataset>`
:ref:`Can Dataset <can_dataset>`
"""
return _download_dataset(_dataset_can_crushed_hdf, load=load)
_dataset_can_crushed_hdf = _SingleFileDownloadableDatasetLoader('hdf/can-vtu.hdf')
@_deprecate_positional_args
def download_can_crushed_vtu(load=True): # noqa: FBT002
"""Download the crushed can dataset.
File obtained from `Kitware <https://www.kitware.com/>`_. Used
for testing vtu files.
Originally from VTKDataFiles-9.3.0.tar.gz.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
Crushed can dataset or path depending on the value of ``load``.
Examples
--------
Plot the crushed can dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_can_crushed_vtu()
>>> dataset.plot(smooth_shading=True)
.. seealso::
:ref:`Can Crushed Vtu Dataset <can_crushed_vtu_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Can Crushed Hdf Dataset <can_crushed_hdf_dataset>`
:ref:`Can Dataset <can_dataset>`
"""
return _download_dataset(_dataset_can_crushed_vtu, load=load)
_dataset_can_crushed_vtu = _SingleFileDownloadableDatasetLoader('can.vtu')
@_deprecate_positional_args
def download_cgns_structured(load=True): # noqa: FBT002
"""Download the structured CGNS dataset mesh.
Originally downloaded from `CFD General Notation System Example Files
<https://cgns.org/current/examples.html#constricting-channel>`_
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
Structured, 12 block, 3-D constricting channel, with example use of
Family_t for BCs (ADF type). If ``load`` is ``False``, then the path of the
example CGNS file is returned.
Examples
--------
Plot the example CGNS dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_cgns_structured()
>>> dataset[0].plot(scalars='Density')
.. seealso::
:ref:`Cgns Structured Dataset <cgns_structured_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cgns Multi Dataset <cgns_multi_dataset>`
"""
return _download_dataset(_dataset_cgns_structured, load=load)
_dataset_cgns_structured = _SingleFileDownloadableDatasetLoader('cgns/sqnz_s.adf.cgns')
@_deprecate_positional_args
def download_tecplot_ascii(load=True): # noqa: FBT002
"""Download the single block ASCII Tecplot dataset.
Originally downloaded from Paul Bourke's
`Sample file <http://paulbourke.net/dataformats/tp/sample.tp>`_
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
Multiblock format with only 1 data block, simple geometric shape.
If ``load`` is ``False``, then the path of the example Tecplot file
is returned.
Examples
--------
Plot the example Tecplot dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_tecplot_ascii()
>>> dataset.plot()
.. seealso::
:ref:`Tecplot Ascii Dataset <tecplot_ascii_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_tecplot_ascii, load=load)
_dataset_tecplot_ascii = _SingleFileDownloadableDatasetLoader('tecplot_ascii.dat')
@_deprecate_positional_args
def download_cgns_multi(load=True): # noqa: FBT002
"""Download a multielement airfoil with a cell centered solution.
Originally downloaded from `CFD General Notation System Example Files
<https://cgns.org/current/examples.html#d-multielement-airfoil>`_
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
Structured, 4 blocks, 2D (2 planes in third dimension) multielement
airfoil, with cell centered solution. If ``load`` is ``False``, then the path of the
example CGNS file is returned.
Examples
--------
Plot the airfoil dataset. Merge the multi-block and then plot the airfoil's
``"ViscosityEddy"``. Convert the cell data to point data as in this
dataset, the solution is stored within the cells.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_cgns_multi()
>>> ugrid = dataset.combine()
>>> ugrid = ugrid = ugrid.cell_data_to_point_data()
>>> ugrid.plot(
... cmap='bwr',
... scalars='ViscosityEddy',
... zoom=4,
... cpos='xz',
... show_scalar_bar=False,
... )
.. seealso::
:ref:`Cgns Multi Dataset <cgns_multi_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cgns Structured Dataset <cgns_structured_dataset>`
"""
return _download_dataset(_dataset_cgns_multi, load=load)
def _cgns_multi_read_func(filename):
reader = pyvista.get_reader(filename)
# disable reading the boundary patch. As of VTK 9.1.0 this generates
# messages like "Skipping BC_t node: BC_t type 'BCFarfield' not supported
# yet."
reader.load_boundary_patch = False
return reader.read()
_dataset_cgns_multi = _SingleFileDownloadableDatasetLoader(
'cgns/multi.cgns',
read_func=_cgns_multi_read_func,
)
@_deprecate_positional_args
def download_dicom_stack(
load: bool = True, # noqa: FBT001, FBT002
) -> pyvista.ImageData | str:
"""Download TCIA DICOM stack volume.
Original download from the `The Cancer Imaging Archive (TCIA)
<https://www.cancerimagingarchive.net/>`_. This is part of the
Clinical Proteomic Tumor Analysis Consortium Sarcomas (CPTAC-SAR)
collection.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or path depending on ``load``.
References
----------
* **Data Citation**
National Cancer Institute Clinical Proteomic Tumor Analysis Consortium
(CPTAC). (2018). Radiology Data from the Clinical Proteomic Tumor
Analysis Consortium Sarcomas [CPTAC-SAR] collection [Data set]. The
Cancer Imaging Archive. DOI: 10.7937/TCIA.2019.9bt23r95
* **Acknowledgement**
Data used in this publication were generated by the National Cancer Institute Clinical
Proteomic Tumor Analysis Consortium (CPTAC).
* **TCIA Citation**
Clark K, Vendt B, Smith K, Freymann J, Kirby J, Koppel P, Moore S, Phillips S,
Maffitt D, Pringle M, Tarbox L, Prior F. The Cancer Imaging Archive (TCIA):
Maintaining and Operating a Public Information Repository, Journal of Digital Imaging,
Volume 26, Number 6, December, 2013, pp 1045-1057. doi: 10.1007/s10278-013-9622-7
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_dicom_stack()
>>> dataset.plot(volume=True, zoom=3, show_scalar_bar=False)
.. seealso::
:ref:`Dicom Stack Dataset <dicom_stack_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
"""
return _download_dataset(_dataset_dicom_stack, load=load)
_dataset_dicom_stack = _SingleFileDownloadableDatasetLoader(
'DICOM_Stack/data.zip',
target_file='data',
)
@_deprecate_positional_args
def download_parched_canal_4k(load=True): # noqa: FBT002
"""Download parched canal 4k dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> texture = examples.download_parched_canal_4k()
>>> texture.dimensions
(4096, 2048)
Use :meth:`~pyvista.ImageDataFilters.resample` to downsample the texture's
underlying image before plotting.
>>> _ = texture.to_image().resample(0.25, inplace=True)
>>> texture.dimensions
(1024, 512)
>>> texture.plot(cpos='xy')
.. seealso::
:ref:`Parched Canal 4k Dataset <parched_canal_4k_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_parched_canal_4k, load=load)
_dataset_parched_canal_4k = _SingleFileDownloadableDatasetLoader(
'parched_canal_4k.hdr',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_cells_nd(load=True): # noqa: FBT002
"""Download example AVS UCD dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_cells_nd()
>>> dataset.plot(cpos='xy')
.. seealso::
:ref:`Cells Nd Dataset <cells_nd_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_cells_nd, load=load)
_dataset_cells_nd = _SingleFileDownloadableDatasetLoader('cellsnd.ascii.inp')
@_deprecate_positional_args
def download_moonlanding_image(load=True): # noqa: FBT002
"""Download the Moon landing image.
This is a noisy image originally obtained from `Scipy Lecture Notes
<https://scipy-lectures.org/index.html>`_ and can be used to demonstrate a
low pass filter.
See the `scipy-lectures license
<http://scipy-lectures.org/preface.html#license>`_ for more details
regarding this image's use and distribution.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
``DataSet`` or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_moonlanding_image()
>>> dataset.plot(
... cpos='xy',
... cmap='gray',
... background='w',
... show_scalar_bar=False,
... )
.. seealso::
:ref:`Moonlanding Image Dataset <moonlanding_image_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`image_fft_example`
Full example using this dataset.
"""
return _download_dataset(_dataset_moonlanding_image, load=load)
_dataset_moonlanding_image = _SingleFileDownloadableDatasetLoader('moonlanding.png')
@_deprecate_positional_args
def download_angular_sector(load=True): # noqa: FBT002
"""Download the angular sector dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_angular_sector()
>>> dataset.plot(scalars='PointId')
.. seealso::
:ref:`Angular Sector Dataset <angular_sector_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_angular_sector, load=load)
_dataset_angular_sector = _SingleFileDownloadableDatasetLoader('AngularSector.vtk')
@_deprecate_positional_args
def download_mount_damavand(load=True): # noqa: FBT002
"""Download the Mount Damavand dataset.
Visualize 3D models of Damavand Volcano, Alborz, Iran. This is a 2D map
with the altitude embedded as ``'z'`` cell data within the
:class:`pyvista.PolyData`.
Originally posted at `banesullivan/damavand-volcano
<https://github.com/banesullivan/damavand-volcano>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download the Damavand dataset and plot it after warping it by its altitude.
>>> from pyvista import examples
>>> dataset = examples.download_mount_damavand()
>>> dataset = dataset.cell_data_to_point_data()
>>> dataset = dataset.warp_by_scalar('z', factor=2)
>>> dataset.plot(cmap='gist_earth', show_scalar_bar=False)
.. seealso::
:ref:`Mount Damavand Dataset <mount_damavand_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_mount_damavand, load=load)
_dataset_mount_damavand = _SingleFileDownloadableDatasetLoader('AOI.Damavand.32639.vtp')
@_deprecate_positional_args
def download_particles_lethe(load=True): # noqa: FBT002
"""Download a particles dataset generated by `lethe <https://github.com/lethe-cfd/lethe>`_ .
See `PyVista discussions #1984
<https://github.com/pyvista/pyvista/discussions/1984>`_
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Download the particles dataset and plot it after generating glyphs.
>>> from pyvista import examples
>>> particles = examples.download_particles_lethe()
>>> particles.plot(
... render_points_as_spheres=True,
... style='points',
... scalars='Velocity',
... background='w',
... scalar_bar_args={'color': 'k'},
... cmap='bwr',
... )
.. seealso::
:ref:`Particles Lethe Dataset <particles_lethe_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_particles_lethe, load=load)
_dataset_particles_lethe = _SingleFileDownloadableDatasetLoader(
'lethe/result_particles.20000.0000.vtu',
)
@_deprecate_positional_args
def download_gif_simple(load=True): # noqa: FBT002
"""Download a simple three frame GIF.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the first frame of a simple GIF.
>>> from pyvista import examples
>>> grid = examples.download_gif_simple()
>>> grid.plot(
... scalars='frame0',
... rgb=True,
... background='w',
... show_scalar_bar=False,
... cpos='xy',
... )
Plot the second frame.
>>> grid.plot(
... scalars='frame1',
... rgb=True,
... background='w',
... show_scalar_bar=False,
... cpos='xy',
... )
.. seealso::
:ref:`Gif Simple Dataset <gif_simple_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_gif_simple, load=load)
_dataset_gif_simple = _SingleFileDownloadableDatasetLoader('gifs/sample.gif')
@_deprecate_positional_args
def download_cloud_dark_matter(load=True): # noqa: FBT002
"""Download particles from a simulated dark matter halo.
This dataset contains 32,314 particles.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PointSet | str
DataSet or filename depending on ``load``.
Examples
--------
Download the dark matter cloud and display its representation.
>>> import numpy as np
>>> from pyvista import examples
>>> pc = examples.download_cloud_dark_matter()
>>> pc
PointSet (...)
N Cells: 0
N Points: 32314
X Bounds: 7.451e+01, 7.892e+01
Y Bounds: 1.616e+01, 2.275e+01
Z Bounds: 8.900e+01, 9.319e+01
N Arrays: 0
Plot the point cloud. Color based on the distance from the center of the
cloud.
>>> pc.plot(
... scalars=np.linalg.norm(pc.points - pc.center, axis=1),
... style='points_gaussian',
... opacity=0.5,
... point_size=1.5,
... show_scalar_bar=False,
... zoom=2,
... )
.. seealso::
:ref:`Cloud Dark Matter Dataset <cloud_dark_matter_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cloud Dark Matter Dense Dataset <cloud_dark_matter_dense_dataset>`
:ref:`point_clouds_example`
Full example using this dataset
"""
return _download_dataset(_dataset_cloud_dark_matter, load=load)
_dataset_cloud_dark_matter = _SingleFileDownloadableDatasetLoader(
'point-clouds/findus23/halo_low_res.npy',
read_func=np.load,
load_func=pyvista.PointSet, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_cloud_dark_matter_dense(load=True): # noqa: FBT002
"""Download a particles from a simulated dark matter halo.
This dataset contains 2,062,256 particles.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PointSet | str
DataSet or filename depending on ``load``.
Examples
--------
Download the dark matter cloud and display its representation.
>>> import numpy as np
>>> from pyvista import examples
>>> pc = examples.download_cloud_dark_matter_dense()
>>> pc
PointSet (...)
N Cells: 0
N Points: 2062256
X Bounds: 7.462e+01, 7.863e+01
Y Bounds: 1.604e+01, 2.244e+01
Z Bounds: 8.893e+01, 9.337e+01
N Arrays: 0
Plot the point cloud. Color based on the distance from the center of the
cloud.
>>> pc.plot(
... scalars=np.linalg.norm(pc.points - pc.center, axis=1),
... style='points_gaussian',
... opacity=0.030,
... point_size=2.0,
... show_scalar_bar=False,
... zoom=2,
... )
.. seealso::
:ref:`Cloud Dark Matter Dense Dataset <cloud_dark_matter_dense_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Cloud Dark Matter Dataset <cloud_dark_matter_dataset>`
:ref:`point_clouds_example`
More details on how to plot point clouds.
"""
return _download_dataset(_dataset_cloud_dark_matter_dense, load=load)
_dataset_cloud_dark_matter_dense = _SingleFileDownloadableDatasetLoader(
'point-clouds/findus23/halo_high_res.npy',
read_func=np.load,
load_func=pyvista.PointSet, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_stars_cloud_hyg(load=True): # noqa: FBT002
"""Download a point cloud of stars as computed by the HYG Database.
See `HYG-Database <https://github.com/astronexus/HYG-Database>`_ for more
details.
This data set is licensed by a Creative Commons Attribution-ShareAlike
license. For more details, read the `Creative Commons page
<https://creativecommons.org/licenses/by-sa/2.5/>`_
See the `README.md
<https://github.com/pyvista/vtk-data/blob/master/Data/point-clouds/hyg-database/README.md>`_
for more details for how the star colors were computed.
Distances are in parsecs from Earth.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot a point cloud of stars within 3,000 light years. Stars
are colored according to their RGBA colors.
>>> import numpy as np
>>> from pyvista import examples
>>> stars = examples.download_stars_cloud_hyg()
>>> stars.plot(
... style='points_gaussian',
... background='k',
... point_size=0.5,
... scalars='_rgba',
... render_points_as_spheres=False,
... zoom=3.0,
... )
>>> stars
PolyData (...)
N Cells: 107857
N Points: 107857
N Strips: 0
X Bounds: -9.755e+02, 9.774e+02
Y Bounds: -9.620e+02, 9.662e+02
Z Bounds: -9.788e+02, 9.702e+02
N Arrays: 3
.. seealso::
:ref:`Stars Cloud Hyg Dataset <stars_cloud_hyg_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`point_clouds_example`
More details on how to plot point clouds.
"""
return _download_dataset(_dataset_stars_cloud_hyg, load=load)
_dataset_stars_cloud_hyg = _SingleFileDownloadableDatasetLoader(
'point-clouds/hyg-database/stars.vtp',
)
@_deprecate_positional_args
def download_fea_bracket(load=True): # noqa: FBT002
"""Download the finite element solution of a bracket.
Contains von-mises equivalent cell stress assuming a vertical (y-axis) load.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot equivalent cell stress.
>>> from pyvista import examples
>>> grid = examples.download_fea_bracket()
>>> grid.plot()
Plot the point stress using the ``'jet'`` color map. Convert the cell data
to point data.
>>> from pyvista import examples
>>> grid = examples.download_fea_bracket()
>>> grid = grid.cell_data_to_point_data()
>>> grid.plot(smooth_shading=True, split_sharp_edges=True, cmap='jet')
.. seealso::
:ref:`Fea Bracket Dataset <fea_bracket_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Fea Hertzian Contact Cylinder Dataset <fea_hertzian_contact_cylinder_dataset>`
:ref:`Aero Bracket Dataset <aero_bracket_dataset>`
:ref:`Notch Stress Dataset <notch_stress_dataset>`
:ref:`Notch Displacement Dataset <notch_displacement_dataset>`
"""
return _download_dataset(_dataset_fea_bracket, load=load)
_dataset_fea_bracket = _SingleFileDownloadableDatasetLoader('fea/kiefer/dataset.vtu')
@_deprecate_positional_args
def download_fea_hertzian_contact_cylinder(load=True): # noqa: FBT002
"""Download a hertzian contact finite element solution.
Hertzian contact is referred to the frictionless contact between two
bodies. Spherical contact is a special case of the Hertz contact, which is
between two spheres, or as in the case of this dataset, between a sphere
and the surface of a half space (flat plane).
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Plot by part ID.
>>> import numpy as np
>>> import pyvista as pv
>>> from pyvista import examples
>>> grid = examples.download_fea_hertzian_contact_cylinder()
>>> grid.plot(scalars='PartID', cmap=['green', 'blue'], show_scalar_bar=False)
Plot the absolute value of the component stress in the Z direction.
>>> pl = pv.Plotter()
>>> z_stress = np.abs(grid['Stress'][:, 2])
>>> _ = pl.add_mesh(
... grid,
... scalars=z_stress,
... clim=[0, 1.2e9],
... cmap='jet',
... lighting=True,
... show_edges=False,
... ambient=0.2,
... )
>>> pl.camera_position = 'xz'
>>> pl.camera.zoom(1.4)
>>> pl.show()
.. seealso::
:ref:`Fea Hertzian Contact Cylinder Dataset <fea_hertzian_contact_cylinder_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`fea_hertzian_contact_pressure_example`
:ref:`Fea Bracket Dataset <fea_bracket_dataset>`
:ref:`Aero Bracket Dataset <aero_bracket_dataset>`
:ref:`Notch Stress Dataset <notch_stress_dataset>`
:ref:`Notch Displacement Dataset <notch_displacement_dataset>`
"""
return _download_dataset(_dataset_fea_hertzian_contact_cylinder, load=load)
_dataset_fea_hertzian_contact_cylinder = _SingleFileDownloadableDatasetLoader(
'fea/hertzian_contact_cylinder/Hertzian_cylinder_on_plate.zip',
target_file='bfac9fd1-e982-4825-9a95-9e5d8c5b4d3e_result_1.pvtu',
)
@_deprecate_positional_args
def download_black_vase(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a black vase scan created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 31 thousand cells is now returned.
Previously, a high-resolution version with 3.1 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_black_vase()
>>> mesh.plot()
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 31366
N Points: 17337
N Strips: 0
X Bounds: -1.091e+02, 1.533e+02
Y Bounds: -1.200e+02, 1.416e+02
Z Bounds: 1.667e+01, 4.078e+02
N Arrays: 0
.. seealso::
:ref:`Black Vase Dataset <black_vase_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_black_vase_high_res, load=load)
return _download_dataset(_dataset_black_vase, load=load)
_dataset_black_vase = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/blackVase_decimated.vtp',
)
__dataset_black_vase_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/blackVase.zip',
target_file='blackVase.vtp',
)
@_deprecate_positional_args
def download_ivan_angel(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a scan of an angel statue created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 36 thousand cells is now returned.
Previously, a high-resolution version with 3.6 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_ivan_angel()
>>> cpos = [
... (-476.14, -393.73, 282.14),
... (-15.00, 11.25, 44.08),
... (0.26, 0.24, 0.93),
... ]
>>> mesh.plot(cpos=cpos)
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 35804
N Points: 18412
N Strips: 0
X Bounds: -1.146e+02, 8.470e+01
Y Bounds: -6.987e+01, 9.254e+01
Z Bounds: -1.166e+02, 2.052e+02
N Arrays: 0
.. seealso::
:ref:`Ivan Angel Dataset <ivan_angel_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_ivan_angel_high_res, load=load)
return _download_dataset(_dataset_ivan_angel, load=load)
_dataset_ivan_angel = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/Angel_decimated.vtp',
)
__dataset_ivan_angel_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/Angel.zip',
target_file='Angel.vtp',
)
@_deprecate_positional_args
def download_bird_bath(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a scan of a bird bath created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 35 thousand cells is now returned.
Previously, a high-resolution version with 3.5 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_bird_bath()
>>> mesh.plot()
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 35079
N Points: 18796
N Strips: 0
X Bounds: -1.600e+02, 1.482e+02
Y Bounds: -1.522e+02, 1.547e+02
Z Bounds: -5.491e-01, 1.408e+02
N Arrays: 0
.. seealso::
:ref:`Bird Bath Dataset <bird_bath_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_bird_bath_high_res, load=load)
return _download_dataset(_dataset_bird_bath, load=load)
_dataset_bird_bath = _SingleFileDownloadableDatasetLoader('ivan-nikolov/birdBath_decimated.vtp')
__dataset_bird_bath_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/birdBath.zip',
target_file='birdBath.vtp',
)
@_deprecate_positional_args
def download_owl(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a scan of an owl statue created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 24 thousand cells is now returned.
Previously, a high-resolution version with 2.4 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_owl()
>>> cpos = [
... (-315.18, -402.21, 230.71),
... (6.06, -1.74, 101.48),
... (0.108, 0.226, 0.968),
... ]
>>> mesh.plot(cpos=cpos)
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 24407
N Points: 12442
N Strips: 0
X Bounds: -5.834e+01, 7.048e+01
Y Bounds: -7.005e+01, 6.657e+01
Z Bounds: 1.814e+00, 2.013e+02
N Arrays: 0
.. seealso::
:ref:`Owl Dataset <owl_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_owl_high_res, load=load)
return _download_dataset(_dataset_owl, load=load)
_dataset_owl = _SingleFileDownloadableDatasetLoader('ivan-nikolov/owl_decimated.vtp')
__dataset_owl_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/owl.zip', target_file='owl.vtp'
)
@_deprecate_positional_args
def download_plastic_vase(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a scan of a plastic vase created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 36 thousand cells is now returned.
Previously, a high-resolution version with 3.6 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_plastic_vase()
>>> mesh.plot()
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 35708
N Points: 18238
N Strips: 0
X Bounds: -1.364e+02, 1.928e+02
Y Bounds: -1.677e+02, 1.602e+02
Z Bounds: 1.209e+02, 4.090e+02
N Arrays: 0
.. seealso::
:ref:`Plastic Vase Dataset <plastic_vase_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_plastic_vase_high_res, load=load)
return _download_dataset(_dataset_plastic_vase, load=load)
_dataset_plastic_vase = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/plasticVase_decimated.vtp'
)
__dataset_plastic_vase_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/plasticVase.zip',
target_file='plasticVase.vtp',
)
@_deprecate_positional_args
def download_sea_vase(load=True, *, high_resolution=False): # noqa: FBT002
"""Download a scan of a sea vase created by Ivan Nikolov.
The dataset was downloaded from `GGG-BenchmarkSfM: Dataset for Benchmarking
Close-range SfM Software Performance under Varying Capturing Conditions
<https://data.mendeley.com/datasets/bzxk2n78s9/4>`_
Original datasets are under the CC BY 4.0 license.
For more details, see `Ivan Nikolov Datasets
<https://github.com/pyvista/vtk-data/tree/master/Data/ivan-nikolov>`_
.. versionchanged:: 0.45
A decimated version of this dataset with 35 thousand cells is now returned.
Previously, a high-resolution version with 3.5 million cells was returned.
Use ``high_resolution=True`` for the high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`decimated <pyvista.PolyDataFilters.decimate>` version
is returned with 99% reduction.
.. versionadded:: 0.45
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_sea_vase()
>>> mesh.plot()
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 35483
N Points: 18063
N Strips: 0
X Bounds: -1.664e+02, 1.463e+02
Y Bounds: -1.741e+02, 1.382e+02
Z Bounds: -1.497e+02, 2.992e+02
N Arrays: 0
.. seealso::
:ref:`Sea Vase Dataset <sea_vase_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
if high_resolution:
return _download_dataset(__dataset_sea_vase_high_res, load=load)
return _download_dataset(_dataset_sea_vase, load=load)
_dataset_sea_vase = _SingleFileDownloadableDatasetLoader('ivan-nikolov/seaVase_decimated.vtp')
__dataset_sea_vase_high_res = _SingleFileDownloadableDatasetLoader(
'ivan-nikolov/seaVase.zip',
target_file='seaVase.vtp',
)
@_deprecate_positional_args
def download_dikhololo_night(load=True): # noqa: FBT002
"""Download and read the dikholo night hdr texture example.
Files hosted at https://polyhaven.com/
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.Texture
HDR Texture.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> gltf_file = examples.gltf.download_damaged_helmet()
>>> texture = examples.download_dikhololo_night()
>>> pl = pv.Plotter()
>>> pl.import_gltf(gltf_file)
>>> pl.set_environment_texture(texture)
>>> pl.show()
.. seealso::
:ref:`Dikhololo Night Dataset <dikhololo_night_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_dikhololo_night, load=load)
def _dikhololo_night_load_func(texture):
texture.SetColorModeToDirectScalars()
texture.SetMipmap(True)
texture.SetInterpolate(True)
return texture
_dataset_dikhololo_night = _SingleFileDownloadableDatasetLoader(
'dikhololo_night_4k.hdr',
read_func=read_texture, # type: ignore[arg-type]
)
@_deprecate_positional_args
def download_cad_model_case(load=True): # noqa: FBT002
"""Download a CAD model of a Raspberry PI 4 case.
The dataset was downloaded from `Thingiverse
<https://www.thingiverse.com/thing:4947746>`_
Original datasets are under the `Creative Commons - Attribution
<https://creativecommons.org/licenses/by/4.0/>`_ license.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
Download and plot the dataset.
>>> from pyvista import examples
>>> mesh = examples.download_cad_model_case()
>>> mesh.plot()
Return the statistics of the dataset.
>>> mesh
PolyData (...)
N Cells: 15446
N Points: 7677
N Strips: 0
X Bounds: -6.460e-31, 9.000e+01
Y Bounds: -3.535e-32, 1.480e+02
Z Bounds: 0.000e+00, 2.000e+01
N Arrays: 2
.. seealso::
:ref:`Cad Model Case Dataset <cad_model_case_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_cad_model_case, load=load)
_dataset_cad_model_case = _SingleFileDownloadableDatasetLoader(
'cad/4947746/Vented_Rear_Case_With_Pi_Supports.vtp',
)
@_deprecate_positional_args
def download_aero_bracket(load=True): # noqa: FBT002
"""Download the finite element solution of an aero bracket.
Data generated from public SimScale examples at `SimScale Project Library -
Turbo <https://www.simscale.com/projects/ayarnoz/turbo/>`_.
Licensing for this dataset is granted to freely and without restriction
reproduce, distribute, publish according to the `SimScale Terms and
Conditions <https://www.simscale.com/terms-and-conditions/>`_.
This project demonstrates the static stress analysis of three aircraft
engine bearing bracket models considering both linear and nonlinear
material definition. The models are tested with horizontal and vertical
loading conditions as provided on the `GrabCAD - Airplane Bearing Bracket
Challenge
<https://grabcad.com/challenges/airplane-bearing-bracket-challenge/entries>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
Download the aero bracket.
>>> from pyvista import examples
>>> dataset = examples.download_aero_bracket()
>>> dataset
UnstructuredGrid (...)
N Cells: 117292
N Points: 187037
X Bounds: -6.858e-03, 1.118e-01
Y Bounds: -1.237e-02, 6.634e-02
Z Bounds: -1.638e-02, 1.638e-02
N Arrays: 3
Show the available point data arrays.
>>> dataset.point_data
pyvista DataSetAttributes
Association : POINT
Active Scalars : None
Active Vectors : None
Active Texture : None
Active Normals : None
Contains arrays :
displacement float32 (187037, 3)
total nonlinear strain float32 (187037, 6)
von Mises stress float32 (187037,)
Plot the von Mises stress.
>>> cpos = [
... (-0.0503, 0.132, -0.179),
... (0.0505, 0.0185, -0.00201),
... (0.275, 0.872, 0.405),
... ]
>>> dataset.plot(
... smooth_shading=True,
... split_sharp_edges=True,
... scalars='von Mises stress',
... cmap='bwr',
... cpos=cpos,
... anti_aliasing='fxaa',
... )
.. seealso::
:ref:`Aero Bracket Dataset <aero_bracket_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Notch Stress Dataset <notch_stress_dataset>`
:ref:`Notch Displacement Dataset <notch_displacement_dataset>`
:ref:`Fea Bracket Dataset <fea_bracket_dataset>`
:ref:`Fea Hertzian Contact Cylinder Dataset <fea_hertzian_contact_cylinder_dataset>`
"""
return _download_dataset(_dataset_aero_bracket, load=load)
_dataset_aero_bracket = _SingleFileDownloadableDatasetLoader('fea/aero_bracket/aero_bracket.vtu')
@_deprecate_positional_args
def download_coil_magnetic_field(load=True): # noqa: FBT002
"""Download the magnetic field of a coil.
These examples were generated from the following `script
<https://github.com/pyvista/vtk-data/tree/master/Data/magpylib/>`_.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData or str
DataSet or filename depending on ``load``.
Examples
--------
Download the magnetic field dataset and generate streamlines from the field.
>>> import pyvista as pv
>>> from pyvista import examples
>>> grid = examples.download_coil_magnetic_field()
>>> seed = pv.Disc(inner=1, outer=5.2, r_res=3, c_res=12)
>>> strl = grid.streamlines_from_source(
... seed,
... vectors='B',
... max_length=180,
... initial_step_length=0.1,
... integration_direction='both',
... )
>>> strl.plot(
... cmap='plasma',
... render_lines_as_tubes=True,
... line_width=2,
... lighting=False,
... zoom=2,
... )
Plot the magnet field strength in the Z direction.
>>> import numpy as np
>>> import pyvista as pv
>>> from pyvista import examples
>>> grid = examples.download_coil_magnetic_field()
>>> # create coils
>>> coils = []
>>> for z in np.linspace(-8, 8, 16):
... coils.append(
... pv.Polygon(center=(0, 0, z), radius=5, n_sides=100, fill=False)
... )
>>> coils = pv.MultiBlock(coils)
>>> # plot the magnet field strength in the Z direction
>>> scalars = np.abs(grid['B'][:, 2])
>>> pl = pv.Plotter()
>>> _ = pl.add_mesh(coils, render_lines_as_tubes=True, line_width=5, color='w')
>>> vol = pl.add_volume(
... grid,
... scalars=scalars,
... cmap='plasma',
... show_scalar_bar=False,
... log_scale=True,
... opacity='sigmoid_2',
... )
>>> vol.prop.interpolation_type = 'linear'
>>> _ = pl.add_volume_clip_plane(
... vol,
... normal='-x',
... normal_rotation=False,
... interaction_event='always',
... widget_color=pv.Color(opacity=0.0),
... )
>>> pl.enable_anti_aliasing()
>>> pl.camera.zoom(2)
>>> pl.show()
.. seealso::
:ref:`Coil Magnetic Field Dataset <coil_magnetic_field_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`magnetic_fields_example`
More details on how to plot with this dataset.
"""
return _download_dataset(_dataset_coil_magnetic_field, load=load)
_dataset_coil_magnetic_field = _SingleFileDownloadableDatasetLoader('magpylib/coil_field.vti')
@_deprecate_positional_args
def download_meshio_xdmf(load=True): # noqa: FBT002
"""Download xdmf file created by meshio.
The dataset was created by ``test_time_series`` test function in meshio.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid or str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_meshio_xdmf()
>>> dataset.plot()
.. seealso::
:ref:`Meshio Xdmf Dataset <meshio_xdmf_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_meshio_xdmf, load=load)
def _meshio_xdmf_files_func():
h5 = _DownloadableFile('meshio/out.h5')
xdmf = _SingleFileDownloadableDatasetLoader('meshio/out.xdmf')
return xdmf, h5
_dataset_meshio_xdmf = _MultiFileDownloadableDatasetLoader(files_func=_meshio_xdmf_files_func)
@_deprecate_positional_args
def download_victorian_goblet_face_illusion(load=True): # noqa: FBT002
"""Download Victorian Goblet face illusion.
This is a replica of a Victorian goblet with an external profile
which resembles that of a face.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid or str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> import pyvista as pv
>>> mesh = examples.download_victorian_goblet_face_illusion()
>>> plotter = pv.Plotter(lighting='none')
>>> _ = plotter.add_mesh(
... mesh, edge_color='gray', color='white', show_edges=True
... )
>>> _ = plotter.add_floor('-x', color='black')
>>> plotter.enable_parallel_projection()
>>> plotter.show(cpos='yz')
.. seealso::
:ref:`Victorian Goblet Face Illusion Dataset <victorian_goblet_face_illusion_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_victorian_goblet_face_illusion, load=load)
_dataset_victorian_goblet_face_illusion = _SingleFileDownloadableDatasetLoader(
'Victorian_Goblet_face_illusion/Vase.stl',
)
@_deprecate_positional_args
def download_reservoir(load=True): # noqa: FBT002
"""Download the UNISIM-II-D reservoir model.
UNISIM-II is a synthetic carbonate reservoir model created by
UNISIM-CEPETRO-Unicamp. The dataset can be used to compare methodologies
and performance of different techniques, simulators, algorithms, among others.
See more at https://www.unisim.cepetro.unicamp.br/benchmarks/br/unisim-ii/overview
This dataset is licenced under the Database Contents License: http://opendatacommons.org/licenses/dbcl/1.0/
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ExplicitStructuredGrid or str
DataSet or filename depending on ``load``.
Examples
--------
Load and plot dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_reservoir()
>>> dataset
ExplicitStructuredGrid (...)
N Cells: 47610
N Points: 58433
X Bounds: 3.104e+05, 3.177e+05
Y Bounds: 7.477e+06, 7.486e+06
Z Bounds: -2.472e+03, -1.577e+03
N Arrays: 6
>>> plot = pv.Plotter()
>>> _ = plot.add_mesh(dataset, show_edges=True)
>>> camera = plot.camera
>>> camera.position = (312452, 7474760, 3507)
>>> camera.focal_point = (314388, 7481520, -2287)
>>> camera.up = (0.09, 0.63, 0.77)
>>> camera.distance = 9112
>>> camera.clipping_range = (595, 19595)
>>> plot.show()
.. seealso::
:ref:`Reservoir Dataset <reservoir_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_reservoir, load=load)
def _reservoir_load_func(grid):
# See loading steps from this example:
# https://examples.vtk.org/site/Python/ExplicitStructuredGrid/LoadESGrid/
grid.ComputeFacesConnectivityFlagsArray()
grid.set_active_scalars('ConnectivityFlags')
# Remove misc data fields stored with the dataset
grid.field_data.remove('dimensions')
grid.field_data.remove('name')
grid.field_data.remove('properties')
grid.field_data.remove('filename')
return grid
_dataset_reservoir = _SingleFileDownloadableDatasetLoader(
'reservoir/UNISIM-II-D.zip',
target_file='UNISIM-II-D.vtu',
read_func=pyvista.ExplicitStructuredGrid, # type: ignore[arg-type]
load_func=_reservoir_load_func,
)
@_deprecate_positional_args
def download_whole_body_ct_male(
load=True, # noqa: FBT002
*,
high_resolution=False,
):
r"""Download a CT image of a male subject with 117 segmented anatomic structures.
This dataset is subject ``'s1397'`` from the TotalSegmentator dataset, version 2.0.1,
available from `zenodo <https://zenodo.org/records/10047292>`_. See the
original paper for details:
Jakob Wasserthal et al., “TotalSegmentator: Robust Segmentation of 104 Anatomic
Structures in CT Images,” Radiology, Jul. 2023, doi: https://doi.org/10.1148/ryai.230024.
The dataset is loaded as a :class:`~pyvista.MultiBlock` with three blocks:
- ``'ct'``: :class:`~pyvista.ImageData` with CT data.
- ``'segmentations'``: :class:`~pyvista.MultiBlock` with 117 :class:`~pyvista.ImageData`
blocks, each containing a binary segmentation label. The blocks are named by
their anatomic structure (e.g. ``'heart'``) and are sorted alphabetically. See the
examples below for a complete list label names.
- ``'label_map'``: :class:`~pyvista.ImageData` with a label map array. The
label map is an alternative representation of the segmentation where
the masks are combined into a single scalar array.
.. note::
The label map is not part of the original data source.
Licensed under Creative Commons Attribution 4.0 International.
.. versionadded:: 0.45
Three dictionaries are now included with the dataset's
:class:`~pyvista.DataObject.user_dict` to map label names to ids and
colors:
- ``'names_to_colors'`` : maps segment names to 8-bit RGB colors.
- ``'names_to_ids'`` : maps segment names to integer ids used by the label map.
- ``'ids_to_colors'`` : maps label ids to colors.
The label ids are the ids used by the included label map.
.. versionchanged:: 0.45
A downsampled version of this dataset with dimensions ``(160, 160, 273)``
is now returned. Previously, a high-resolution version with dimensions
``(320, 320, 547)`` was returned. Use ``high_resolution=True`` for the
high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`resampled <pyvista.ImageDataFilters.resample>` version
with a ``0.5`` sampling rate is returned.
.. versionadded:: 0.45
Returns
-------
pyvista.MultiBlock or str
DataSet or filename depending on ``load``.
Examples
--------
Load the dataset and get some of its properties.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_whole_body_ct_male()
Get the CT image.
>>> ct_image = dataset['ct']
>>> ct_image
ImageData (...)
N Cells: 6876432
N Points: 6988800
X Bounds: 7.500e-01, 4.778e+02
Y Bounds: 7.500e-01, 4.778e+02
Z Bounds: 7.527e-01, 8.182e+02
Dimensions: 160, 160, 273
Spacing: 3.000e+00, 3.000e+00, 3.005e+00
N Arrays: 1
Get the segmentation label names and show the first three.
>>> segmentations = dataset['segmentations']
>>> label_names = segmentations.keys()
>>> label_names[:3]
['adrenal_gland_left', 'adrenal_gland_right', 'aorta']
Get the label map and show its data range.
>>> label_map = dataset['label_map']
>>> label_map.get_data_range()
(np.uint8(0), np.uint8(117))
Show the ``'names_to_colors'`` dictionary with RGB colors for each segment.
>>> dataset.user_dict['names_to_colors'] # doctest: +SKIP
Show the ``'names_to_ids'`` dictionary with a mapping from segment names to segment ids.
>>> dataset.user_dict['names_to_ids'] # doctest: +SKIP
Create a surface mesh of the segmentation labels.
>>> labels_mesh = label_map.contour_labels()
Color the surface using :func:`~pyvista.DataSetFilters.color_labels`. Use the
``'ids_to_colors'`` dictionary that's included with the dataset to map the colors.
>>> colored_mesh = labels_mesh.color_labels(
... colors=dataset.user_dict['ids_to_colors']
... )
Plot the CT image and segmentation labels together.
>>> pl = pv.Plotter()
>>> _ = pl.add_volume(
... ct_image,
... cmap='bone',
... opacity='sigmoid_8',
... show_scalar_bar=False,
... )
>>> _ = pl.add_mesh(colored_mesh)
>>> pl.view_zx()
>>> pl.camera.up = (0, 0, 1)
>>> pl.camera.zoom(1.3)
>>> pl.show()
.. seealso::
:ref:`anatomical_groups_example`
Additional examples using this dataset.
:ref:`Whole Body Ct Male Dataset <whole_body_ct_male_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Whole Body Ct Female Dataset <whole_body_ct_female_dataset>`
Similar dataset of a female subject.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
:ref:`crop_labeled_example`
Example cropping this dataset using a segmentation mask.
:ref:`volume_with_mask_example`
See additional examples using this dataset.
"""
if high_resolution:
return _download_dataset(__dataset_whole_body_ct_male_high_res, load=load)
return _download_dataset(_dataset_whole_body_ct_male, load=load)
class _WholeBodyCTUtilities:
@staticmethod
def import_colors_dict(module_path):
# Import `colors` dict from downloaded `colors.py` module
module_name = 'colors'
spec = importlib.util.spec_from_file_location(module_name, module_path)
if spec is not None:
module = importlib.util.module_from_spec(spec)
sys.modules[spec.name] = module
spec.loader.exec_module(module) # type:ignore[union-attr]
from colors import colors # noqa: PLC0415
return dict(sorted(colors.items()))
else:
msg = 'Unable to load colors.'
raise RuntimeError(msg)
@staticmethod
def add_metadata(dataset: pyvista.MultiBlock, colors_module_path: str):
# Add color and id mappings to dataset
segmentations = cast('pyvista.MultiBlock', dataset['segmentations'])
label_names = sorted(segmentations.keys())
names_to_colors = _WholeBodyCTUtilities.import_colors_dict(colors_module_path)
names_to_ids = {key: i + 1 for i, key in enumerate(label_names)}
dataset.user_dict['names_to_colors'] = names_to_colors
dataset.user_dict['names_to_ids'] = names_to_ids
dataset.user_dict['ids_to_colors'] = dict(
sorted({names_to_ids[name]: names_to_colors[name] for name in label_names}.items())
)
@staticmethod
def label_map_from_masks(masks: pyvista.MultiBlock):
# Create label map array from segmentation masks
# Initialize array with background values (zeros)
n_points = cast('pyvista.ImageData', masks[0]).n_points
label_map_array = np.zeros((n_points,), dtype=np.uint8)
label_names = sorted(masks.keys())
for i, name in enumerate(label_names):
mask = cast('pyvista.ImageData', masks[name])
label_map_array[mask.active_scalars == 1] = i + 1
# Add scalars to a new image
label_map_image = pyvista.ImageData()
label_map_image.copy_structure(cast('pyvista.ImageData', masks[0]))
label_map_image['label_map'] = label_map_array # type: ignore[assignment]
return label_map_image
@staticmethod
def load_func(files):
dataset_file, colors_module = files
dataset = dataset_file.load()
# Create label map and add to dataset
dataset['label_map'] = _WholeBodyCTUtilities.label_map_from_masks(dataset['segmentations'])
# Add metadata
_WholeBodyCTUtilities.add_metadata(dataset, colors_module.path)
return dataset
@staticmethod
def files_func(name):
# Resampled version is saved as a multiblock
target_file = f'{name}.vtm' if 'resampled' in name else name
def func():
# Multiple files needed for read, but only one gets loaded
dataset = _SingleFileDownloadableDatasetLoader(
f'whole_body_ct/{name}.zip',
target_file=target_file,
)
colors = _DownloadableFile('whole_body_ct/colors.py')
return dataset, colors
return func
_dataset_whole_body_ct_male = _MultiFileDownloadableDatasetLoader(
_WholeBodyCTUtilities.files_func('s1397_resampled'),
load_func=_WholeBodyCTUtilities.load_func,
)
__dataset_whole_body_ct_male_high_res = _MultiFileDownloadableDatasetLoader(
_WholeBodyCTUtilities.files_func('s1397'), load_func=_WholeBodyCTUtilities.load_func
)
@_deprecate_positional_args
def download_whole_body_ct_female(
load=True, # noqa: FBT002
*,
high_resolution=False,
):
r"""Download a CT image of a female subject with 117 segmented anatomic structures.
This dataset is subject ``'s1380'`` from the TotalSegmentator dataset, version 2.0.1,
available from `zenodo <https://zenodo.org/records/10047292>`_. See the
original paper for details:
Jakob Wasserthal et al., “TotalSegmentator: Robust Segmentation of 104 Anatomic
Structures in CT Images,” Radiology, Jul. 2023, doi: https://doi.org/10.1148/ryai.230024.
The dataset is loaded as a :class:`~pyvista.MultiBlock` with three blocks:
- ``'ct'``: :class:`~pyvista.ImageData` with CT data.
- ``'segmentations'``: :class:`~pyvista.MultiBlock` with 117 :class:`~pyvista.ImageData`
blocks, each containing a binary segmentation label. The blocks are named by
their anatomic structure (e.g. ``'heart'``) and are sorted alphabetically. See the
examples below for a complete list label names.
- ``'label_map'``: :class:`~pyvista.ImageData` with a label map array. The
label map is an alternative representation of the segmentation where
the masks are combined into a single scalar array.
.. note::
The label map is not part of the original data source.
Licensed under Creative Commons Attribution 4.0 International.
.. versionadded:: 0.45
Three dictionaries are now included with the dataset's
:class:`~pyvista.DataObject.user_dict` to map label names to ids and
colors:
- ``'names_to_colors'`` : maps segment names to 8-bit RGB colors.
- ``'names_to_ids'`` : maps segment names to integer ids used by the label map.
- ``'ids_to_colors'`` : maps label ids to colors.
The label ids are the ids used by the included label map.
.. versionchanged:: 0.45
A downsampled version of this dataset with dimensions ``(160, 160, 273)``
is now returned. Previously, a high-resolution version with dimensions
``(320, 320, 547)`` was returned. Use ``high_resolution=True`` for the
high-resolution version.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
high_resolution : bool, default: False
Set this to ``True`` to return a high-resolution version of this dataset.
By default, a :meth:`resampled <pyvista.ImageDataFilters.resample>` version
with a ``0.5`` sampling rate is returned.
.. versionadded:: 0.45
Returns
-------
pyvista.MultiBlock or str
DataSet or filename depending on ``load``.
Examples
--------
Load the dataset.
>>> from pyvista import examples
>>> import pyvista as pv
>>> dataset = examples.download_whole_body_ct_female()
Get the names of the dataset's blocks.
>>> dataset.keys()
['ct', 'segmentations', 'label_map']
Get the CT image.
>>> ct_image = dataset['ct']
>>> ct_image
ImageData (...)
N Cells: 6825870
N Points: 6937600
X Bounds: 7.500e-01, 4.778e+02
Y Bounds: 7.500e-01, 4.778e+02
Z Bounds: 7.528e-01, 8.122e+02
Dimensions: 160, 160, 271
Spacing: 3.000e+00, 3.000e+00, 3.006e+00
N Arrays: 1
Get the segmentation label names and show the first three.
>>> segmentations = dataset['segmentations']
>>> label_names = segmentations.keys()
>>> label_names[:3]
['adrenal_gland_left', 'adrenal_gland_right', 'aorta']
Get the label map and show its data range.
>>> label_map = dataset['label_map']
>>> label_map.get_data_range()
(np.uint8(0), np.uint8(117))
Show the ``'names_to_colors'`` dictionary with RGB colors for each segment.
>>> dataset.user_dict['names_to_colors'] # doctest: +SKIP
Show the ``'names_to_ids'`` dictionary with a mapping from segment names to segment ids.
>>> dataset.user_dict['names_to_ids'] # doctest: +SKIP
Create a surface mesh of the segmentation labels.
>>> labels_mesh = label_map.contour_labels()
Color the surface using :func:`~pyvista.DataSetFilters.color_labels`. Use the
``'ids_to_colors'`` dictionary included with the dataset to map the colors.
>>> colored_mesh = labels_mesh.color_labels(
... colors=dataset.user_dict['ids_to_colors']
... )
Plot the CT image and segmentation labels together.
>>> pl = pv.Plotter()
>>> _ = pl.add_volume(
... ct_image,
... cmap='bone',
... opacity='sigmoid_7',
... show_scalar_bar=False,
... )
>>> _ = pl.add_mesh(colored_mesh)
>>> pl.view_zx()
>>> pl.camera.up = (0, 0, 1)
>>> pl.camera.zoom(1.3)
>>> pl.show()
.. seealso::
:ref:`anatomical_groups_example`
Additional examples using this dataset.
:ref:`Whole Body Ct Female Dataset <whole_body_ct_female_dataset>`
See this dataset in the Dataset Gallery for more info.
:ref:`Whole Body Ct Male Dataset <whole_body_ct_male_dataset>`
Similar dataset of a male subject.
:ref:`medical_dataset_gallery`
Browse other medical datasets.
:ref:`crop_labeled_example`
Example cropping this dataset using a segmentation mask.
:ref:`volume_with_mask_example`
See additional examples using this dataset.
"""
if high_resolution:
return _download_dataset(__dataset_whole_body_ct_female_high_res, load=load)
return _download_dataset(_dataset_whole_body_ct_female, load=load)
_dataset_whole_body_ct_female = _MultiFileDownloadableDatasetLoader(
_WholeBodyCTUtilities.files_func('s1380_resampled'),
load_func=_WholeBodyCTUtilities.load_func,
)
__dataset_whole_body_ct_female_high_res = _MultiFileDownloadableDatasetLoader(
_WholeBodyCTUtilities.files_func('s1380'), load_func=_WholeBodyCTUtilities.load_func
)
@_deprecate_positional_args
def download_room_cff(load=True): # noqa: FBT002
"""Download a room model in CFF format.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock or tuple
DataSet or tuple of filenames depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> blocks = examples.download_room_cff()
>>> mesh = blocks[0]
>>> mesh.plot(cpos='xy', scalars='SV_T')
.. seealso::
:ref:`Room Cff Dataset <room_cff_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_room_cff, load=load)
def _dataset_room_cff_files_func():
cas = _SingleFileDownloadableDatasetLoader('FLUENTCFF/room.cas.h5')
dat = _DownloadableFile('FLUENTCFF/room.dat.h5')
return cas, dat
_dataset_room_cff = _MultiFileDownloadableDatasetLoader(_dataset_room_cff_files_func)
@_deprecate_positional_args
def download_m4_total_density(load=True): # noqa: FBT002
"""Download a total density dataset of the chemistry.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> filename = examples.download_m4_total_density(load=False)
>>> reader = pv.get_reader(filename)
>>> reader.hb_scale = 1.1
>>> reader.b_scale = 10.0
>>> grid = reader.read()
>>> poly = reader.read(grid=False)
Add the outline and volume to the plotter.
>>> pl = pv.Plotter()
>>> outline = pl.add_mesh(grid.outline(), color='black')
>>> volume = pl.add_volume(grid)
Add atoms and bonds to the plotter.
>>> atoms = pl.add_mesh(poly.glyph(geom=pv.Sphere()), color='red')
>>> bonds = pl.add_mesh(poly.tube(), color='white')
>>> pl.show(cpos='zx')
.. seealso::
:ref:`M4 Total Density Dataset <m4_total_density_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_m4_total_density, load=load)
_dataset_m4_total_density = _SingleFileDownloadableDatasetLoader('m4_TotalDensity.cube')
@_deprecate_positional_args
def download_headsq(load=True): # noqa: FBT002
"""Download the headsq dataset.
The headsq dataset is a 3D MRI scan of a human head.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_headsq()
>>> mesh.plot(cpos='xy')
.. seealso::
:ref:`Headsq Dataset <headsq_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_headsq, load=load)
def _dataset_headsq_files_func():
return tuple(
[_SingleFileDownloadableDatasetLoader('headsq/quarter.nhdr')]
+ [_DownloadableFile('headsq/quarter.' + str(i)) for i in range(1, 94)],
)
_dataset_headsq = _MultiFileDownloadableDatasetLoader(_dataset_headsq_files_func)
@_deprecate_positional_args
def download_prism(load=True): # noqa: FBT002
"""Download a prism model.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_prism()
>>> mesh.plot()
.. seealso::
:ref:`Prism Dataset <prism_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_prism, load=load)
_dataset_prism = _SingleFileDownloadableDatasetLoader('prism.neu')
@_deprecate_positional_args
def download_t3_grid_0(load=True): # noqa: FBT002
"""Download a T3 grid 0 image.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_t3_grid_0()
>>> mesh.plot()
.. seealso::
:ref:`T3 Grid 0 Dataset <t3_grid_0_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_t3_grid_0, load=load)
_dataset_t3_grid_0 = _SingleFileDownloadableDatasetLoader('t3_grid_0.mnc')
@_deprecate_positional_args
def download_caffeine(load=True): # noqa: FBT002
"""Download the caffeine molecule.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> filename = examples.download_caffeine(load=False)
>>> reader = pv.get_reader(filename)
>>> poly = reader.read()
Add atoms and bonds to the plotter.
>>> pl = pv.Plotter()
>>> atoms = pl.add_mesh(poly.glyph(geom=pv.Sphere(radius=0.1)), color='red')
>>> bonds = pl.add_mesh(poly.tube(radius=0.1), color='gray')
>>> pl.show(cpos='xy')
.. seealso::
:ref:`Caffeine Dataset <caffeine_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_caffeine, load=load)
_dataset_caffeine = _SingleFileDownloadableDatasetLoader('caffeine.pdb')
@_deprecate_positional_args
def download_e07733s002i009(load=True): # paragma: no cover # noqa: FBT002
"""Download a e07733s002i009 image.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_e07733s002i009()
>>> mesh.plot()
.. seealso::
:ref:`E07733s002i009 Dataset <e07733s002i009_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_e07733s002i009, load=load)
_dataset_e07733s002i009 = _SingleFileDownloadableDatasetLoader('E07733S002I009.MR')
@_deprecate_positional_args
def download_particles(load=True): # noqa: FBT002
"""Download a particle dataset.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> import pyvista as pv
>>> from pyvista import examples
>>> filename = examples.download_particles(load=False)
>>> reader = pv.get_reader(filename)
>>> reader.reader.SetDataByteOrderToBigEndian()
>>> reader.reader.Update()
>>> mesh = reader.read()
>>> mesh.plot()
.. seealso::
:ref:`Particles Dataset <particles_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_particles, load=load)
_dataset_particles = _SingleFileDownloadableDatasetLoader('Particles.raw')
@_deprecate_positional_args
def download_prostar(load=True): # noqa: FBT002
"""Download a prostar dataset.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_prostar()
>>> mesh.plot()
.. seealso::
:ref:`Prostar Dataset <prostar_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_prostar, load=load)
def _prostar_files_func():
# Multiple files needed for read, but only one gets loaded
prostar_cel = _DownloadableFile('prostar.cel')
prostar_vrt = _SingleFileDownloadableDatasetLoader('prostar.vrt')
return prostar_vrt, prostar_cel
_dataset_prostar = _MultiFileDownloadableDatasetLoader(_prostar_files_func)
@_deprecate_positional_args
def download_3gqp(load=True): # noqa: FBT002
"""Download a 3GQP dataset.
.. versionadded:: 0.44.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.PolyData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> mesh = examples.download_3gqp()
>>> mesh.plot()
.. seealso::
:ref:`3gqp Dataset <3gqp_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_3gqp, load=load)
_dataset_3gqp = _SingleFileDownloadableDatasetLoader('3GQP.pdb')
@_deprecate_positional_args
def download_full_head(load=True): # noqa: FBT002
"""Download the full head image.
.. versionadded:: 0.45.0
Parameters
----------
load : bool, optional
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_full_head()
>>> dataset.plot(volume=True)
.. seealso::
:ref:`Full Head Dataset <full_head_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_full_head, load=load)
def _full_head_files_func():
full_head_raw = _DownloadableFile('FullHead.raw.gz')
full_head_mha = _SingleFileDownloadableDatasetLoader('FullHead.mhd')
return full_head_mha, full_head_raw
_dataset_full_head = _MultiFileDownloadableDatasetLoader(_full_head_files_func)
@_deprecate_positional_args
def download_nek5000(load=True): # noqa: FBT002
"""Download 2D nek5000 data example.
.. versionadded:: 0.45.0
Parameters
----------
load : bool, optional
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned. True requires
vtk >= 9.3.
Returns
-------
pyvista.UnstructuredGrid | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_nek5000()
>>> dataset.plot(scalars='Velocity', cpos='xy')
.. seealso::
:ref:`Nek5000 Dataset <nek5000_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
# Silence info messages about 2D mesh found
with pyvista.vtk_verbosity('off'):
return _download_dataset(_dataset_nek5000, load=load)
def _nek_5000_download():
nek5000 = _SingleFileDownloadableDatasetLoader('nek5000/eddy_uv.nek5000')
data_files = [_DownloadableFile(f'nek5000/eddy_uv0.f{str(i).zfill(5)}') for i in range(1, 12)]
return (nek5000, *data_files)
_dataset_nek5000 = _MultiFileDownloadableDatasetLoader(_nek_5000_download)
@_deprecate_positional_args
def download_biplane(load=True): # noqa: FBT002
"""Download biplane dataset.
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.MultiBlock | str
DataSet or filename depending on ``load``.
Examples
--------
>>> from pyvista import examples
>>> dataset = examples.download_biplane()
>>> dataset.plot(cpos='zy', zoom=1.5)
.. seealso::
:ref:`Biplane Dataset <biplane_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_biplane, load=load)
_dataset_biplane = _SingleFileDownloadableDatasetLoader('biplane_rms_pressure_bs.exo')
def download_yinyang(*, load=True):
"""Download yinyang dataset.
.. versionadded:: 0.46.0
Parameters
----------
load : bool, default: True
Load the dataset after downloading it when ``True``. Set this
to ``False`` and only the filename will be returned.
Returns
-------
pyvista.ImageData | str
DataSet or filename depending on ``load``.
Examples
--------
Load the image and plot it as grayscale pixel cells.
>>> from pyvista import examples
>>> dataset = examples.download_yinyang()
>>> pixel_cells = dataset.points_to_cells()
>>> pixel_cells.plot(
... cmap='gray',
... clim=[0, 255],
... cpos='xy',
... zoom='tight',
... lighting=False,
... show_scalar_bar=False,
... show_axes=False,
... )
.. seealso::
:ref:`Yinyang Dataset <yinyang_dataset>`
See this dataset in the Dataset Gallery for more info.
"""
return _download_dataset(_dataset_yinyang, load=load)
_dataset_yinyang = _SingleFileDownloadableDatasetLoader('yinyang/Yinyang.png')