"""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-`` 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 `_. 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Gourds Pnm Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Gourds Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Gourds Dataset ` :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Sky Box Nz Texture Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Sky Box Nz Dataset ` :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Great White Shark Dataset ` Similar dataset. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Shark Dataset ` Similar dataset. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Shark Dataset ` Similar dataset. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 `_. 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Cubemap Space 4k Dataset ` :ref:`Cubemap Space 16k Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Cubemap Space 4k Dataset ` :ref:`Cubemap Space 16k Dataset ` :ref:`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 `_ and converting it using https://jaxry.github.io/panorama-to-cubemap/ See `vtk-data/cubemap_space `_ 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Cubemap Space 16k Dataset ` :ref:`Cubemap Park Dataset ` :ref:`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 `_ and converting it using https://jaxry.github.io/panorama-to-cubemap/ See `vtk-data/cubemap_space `_ 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Cubemap Space 4k Dataset ` :ref:`Cubemap Park Dataset ` :ref:`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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Notch Displacement Dataset ` :ref:`Aero Bracket Dataset ` :ref:`Fea Bracket Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`Notch Stress Dataset ` :ref:`Aero Bracket Dataset ` :ref:`Fea Bracket Dataset ` :ref:`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 `_ 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 `_. 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 ` 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 `_. Licensing for this dataset is granted to freely and without restriction reproduce, distribute, publish according to the `SimScale 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 ` 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 `_ 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 ` 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 `_. Licensing for this dataset is granted freely and without restriction to reproduce, distribute, and publish according to the `SimScale 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 ` 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 `_. Licensing for this dataset is granted to freely and without restriction reproduce, distribute, publish according to the `SimScale 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 ` 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 `_. 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Can Crushed Hdf Dataset ` :ref:`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 `_. 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Can Crushed Vtu Dataset ` :ref:`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 `_. 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Can Crushed Hdf Dataset ` :ref:`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 `_ 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 `_ 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 ` 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 `_ 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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) `_. 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 ` 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 ` 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 ` 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 `_ and can be used to demonstrate a low pass filter. See the `scipy-lectures 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 ` 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 ` 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 `_. 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 ` 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 `_ . See `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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 `_ for more details. This data set is licensed by a Creative Commons Attribution-ShareAlike license. For more details, read the `Creative Commons page `_ See the `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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Fea Hertzian Contact Cylinder Dataset ` :ref:`Aero Bracket Dataset ` :ref:`Notch Stress Dataset ` :ref:`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 ` See this dataset in the Dataset Gallery for more info. :ref:`fea_hertzian_contact_pressure_example` :ref:`Fea Bracket Dataset ` :ref:`Aero Bracket Dataset ` :ref:`Notch Stress Dataset ` :ref:`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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 `_ Original datasets are under the CC BY 4.0 license. For more details, see `Ivan Nikolov Datasets `_ .. 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 ` 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 ` 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 ` 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 `_ Original datasets are under the `Creative Commons - Attribution `_ 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 ` 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 `_. Licensing for this dataset is granted to freely and without restriction reproduce, distribute, publish according to the `SimScale 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 `_. 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 ` See this dataset in the Dataset Gallery for more info. :ref:`Notch Stress Dataset ` :ref:`Notch Displacement Dataset ` :ref:`Fea Bracket Dataset ` :ref:`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 `_. 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 ` 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 ` 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 ` 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 ` 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 `_. 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 `_. 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 ` 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 ` See this dataset in the Dataset Gallery for more info. :ref:`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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` See this dataset in the Dataset Gallery for more info. """ return _download_dataset(_dataset_yinyang, load=load) _dataset_yinyang = _SingleFileDownloadableDatasetLoader('yinyang/Yinyang.png')