ePSproc wavefunction plotting tests & demo


This notebook demos (continuum photoelectron) wavefunction plotting from ePS gridded file outputs. The plotting is handled with pyVista, with itkwidgets for interactive plotting. Both tools are built on the ITK/VTK toolchain.


  • Implement wfPlot.py module.

  • Test & demo.

See also:


# Standard libs
import sys
import os
from pathlib import Path
import numpy as np
import xarray as xr

from datetime import datetime as dt
timeString = dt.now()

# For reporting
import scooby
# scooby.Report(additional=['holoviews', 'hvplot', 'xarray', 'matplotlib', 'bokeh'])
# TODO: set up function for this, see https://github.com/banesullivan/scooby
# Installed package version
# import epsproc as ep

# ePSproc test codebase (local)
if sys.platform == "win32":
    modPath = r'D:\code\github\ePSproc'  # Win test machine
    modPath = r'/home/femtolab/github/ePSproc/'  # Linux test machine

import epsproc as ep
* plotly not found, plotly plots not available.
* pyevtk not found, VTK export not available.

wfPlotter class

This provides a basic interface to pyVista plotting methods. An object is created with the wavefunction data (from file(s)) and set as a pyVista object, .vol, with a set of data arrays.

For testing, there’s a single demo data file in the ePSproc repo, DABCOSA2PPCA2PP_10.5eV_Orb.dat, which is an example wavefunction for DABCO scattering at 10.5eV, \(A_{2}"\) continuum symmetry.

For more general use, an interface to ePSdata and Zenodo is in development.

# Load class and data
from epsproc.vol.wfPlot import wfPlotter

# Load data from modPath\data
dataPath = os.path.join(modPath, 'data', 'wavefn')

wfClass = wfPlotter(fileBase = dataPath)