VTKpytools

From PHASTA Wiki
(Redirected from Vtkpytools)
Jump to: navigation, search

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') 
Using vtkpytools executables

When wanting to use an executable from a specific version of vtkpytools, in addition to modifying your $PYTHONPATH, you must also modify your $PATH such that it includes the path to the bin directory of the desired vtkpytools installation

export PATH=path/to/vtkpytools/repository/directory/bin:$PATH

Note that often only the $PYTHONPATH needs to be adjusted. For example, the code for bar2vtk simply imports vtkpytools and runs the bar2vtk_main() function. Thus, only the $PYTHONPATH needs to be modified such that the script imports the correct version of vtkpytools.

Note also that the above means that you must modify $PYTHONPATH to get the executable working as expected; the script will import whichever version of vtkpytools it finds and use it.

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.)

Subpages