Difference between revisions of "VTKpytools"

From PHASTA Wiki
Jump to: navigation, search
(Tutorials/Related pages: Add tutorial videos)
(Tutorials/Related pages: Add pyvista documentation links)
Line 41: Line 41:
  
 
Here's a list of tutorial pages related to vtkpytools. This is manually updated, so [[:Category:VTKpytools]] may have more up-to-date references to vtkpytools related wiki pages (''Hint: if it does, add them onto this page!'')
 
Here's a list of tutorial pages related to vtkpytools. This is manually updated, so [[:Category:VTKpytools]] may have more up-to-date references to vtkpytools related wiki pages (''Hint: if it does, add them onto this page!'')
 +
 +
* [https://docs.pyvista.org/ pyvista Documentation]
 +
** vtkpytools is built on top of pyvista, so some knowledge of how it works is helpful to understand and debug stuff
 +
** Two recommended pages on their documentation:
 +
*** [https://docs.pyvista.org/user-guide/what-is-a-mesh.html What is a Mesh?]: For general terminology and basic usage
 +
*** [https://docs.pyvista.org/user-guide/simple.html# Basic API Usage]: For understand how to interact with pyvista-wrapped vtk objects
  
 
* [[Bar2vtk]]
 
* [[Bar2vtk]]
 
** Documentation for the <code>bar2vtk</code> command
 
** Documentation for the <code>bar2vtk</code> command
 
** Takes spanwise average "bar" files and loads that data onto a [[Barfiletools#VTM_File_Format|"blank" vtm file]].
 
** Takes spanwise average "bar" files and loads that data onto a [[Barfiletools#VTM_File_Format|"blank" vtm file]].
 +
 
* [[Barfiletools]]
 
* [[Barfiletools]]
 
** Comprehensive tutorial of using vtkpytools for post-processing spanwise averaged data:
 
** Comprehensive tutorial of using vtkpytools for post-processing spanwise averaged data:

Revision as of 09:39, 9 July 2021

vtkpytools is a python package developed in house that has useful tools for generating Visualization ToolKit (VTK) files, and for extracting and manipulating data from VTK files. The code is hosted on a repository in PHASTA's GitHub organization.

vtkpytools heavily utilizes the pyvista Python package, which provides a Pythonic interface to VTK objects, and the Python bindings for the VTK library itself (which are simply one-to-one copies of the C++ API).

Using vtkpytools

Installation

Normal Use

vtkpytools is already installed on the global (main) conda environment installed on the viz nodes. This also makes all vtkpytool scripts (ie. bar2vtk.py and barsplit.py, etc.) available in your $PATH when the conda environment is active, allowing them to be used in command line without specifying a path to them.

This installation is with be updated periodically as updates are made. It is installed from a cloned repository at /projects/tools/vtkpytools and running pip install . with the conda environment active (see Anaconda#Activating_conda_Environment). Please do not make any changes to this repository; clone/fork your own copy and make any changes you want there. See next section for how to use your own copy of the package repository

Development Use

If you're making changes to the code and want to test it out, there are two ways to "override" the normal installation.

Adding to Path

First is adding the development repository to the path that Python searches for packages. This maybe done by modifying the $PYTHONPATH environment variable:

PYTHONPATH=path/to/vtkpytools/repository/directory:$PYTHONPATH

or by using the following commands in a script:

import sys                                                
sys.path.insert(0, 'path/to/vtkpytools/repository/directory') 
Creating a New (personal) Conda Environment

The second way is creating a new (personal) conda environment and installing your copy of the repository there. If going this route, it is recommended to install the package via python setup.py develop as this will allow updates to be tested without reinstalling the package every time.

Abbreviation

In Python, it is somewhat customary to use an abbreviation for packages when importing them (numpy -> np or pandas -> pd). In that same vein, vtkpytools maybe abbreviated to vpt. For those unfamiliar, this maybe done by

import vtkpytools as vpt

Expanding vtkpytools

Currently, the vtkpytools repository is structured so that it can be expanded to host useful functions/utilities/scripts for many different kinds of problems/uses. If you would like to make changes/additions to the package, see the (to be added) CONTRIBUTING.md file in the repository for instructions.

Tutorials/Related pages

Here's a list of tutorial pages related to vtkpytools. This is manually updated, so Category:VTKpytools may have more up-to-date references to vtkpytools related wiki pages (Hint: if it does, add them onto this page!)

  • pyvista Documentation
    • vtkpytools is built on top of pyvista, so some knowledge of how it works is helpful to understand and debug stuff
    • Two recommended pages on their documentation:
  • Bar2vtk
    • Documentation for the bar2vtk command
    • Takes spanwise average "bar" files and loads that data onto a "blank" vtm file.
  • Barfiletools
    • Comprehensive tutorial of using vtkpytools for post-processing spanwise averaged data:
      • creating a 2D "blank" vtm file,
      • Loading the data onto the resulting vtm file
      • Using vtkpytools for post-processing (calculating values, obtaining profiles, etc.)