Open-source software

This page describes some of the open-source software which I have released, see my GitHub page for more details and a few other projects.

gptools: an obsessively complete implementation of Gaussian process regression

There are lots of tools to perform Gaussian process regression in Python. Very few of them can handle constraints on and predictions of the gradients of the fitted curve. Most of them are structured in a way which makes using a non-stationary covariance kernel difficult if not impossible. gptools is the only software I am aware of which can handle both non-stationary covariance kernels and gradient constraints/predictions.

Here is a picture of the 2D squared exponential covariance kernel and a few of its derivatives, produced using gptools:

2D SE

This is the posterior distribution for the hyperparameters of a 1D non-stationary covariance kernel fit to density profile data produced by calling emcee from gptools:

ne marginals

And here are the associated data and fitted profiles (blue is marginalized with MCMC, red is the MAP estimate – the means are similar, but the uncertainty envelopes are not):

fitted ne profile

profiletools: making it a little less painful to get profile data out of MDSplus

profiletools is a Python package for grabbing plasma physics profile data from the MDSplus tree (a data storage system used throughout the plasma physics community), removing bad channels, getting it into a consistent data structure, and smoothing profiles with non-stationary Gaussian process regression.

Here is an example of fitting a temperature profile with a non-stationary Gaussian process using the gpfit GUI written using profiletools:

gpfit

eqtools: everything you ever wanted to do with magnetic equilibrium reconstructions

eqtools is a piece of software I wrote with several of my colleagues to provide a much-needed Python interface to data from magnetic equilibrium reconstructions. It abstracts away the details of data storage so that the user does not have to worry about remembering obtuse MDSplus node names, and allows users to take their analysis codes to any machine – even if the machines use completely different reconstruction codes and data systems.

Here is a plot of magnetic field lines traced using eqtools. The coloring is proportional to the field strength, which makes the 1/R dependence clear:

magnetic field lines

And here are the flux surfaces and diagnostic locations, plotted using eqtools and profiletools:

equilibrium reconstruction

gEEProg: a user-friendly, cross-platform GUI for D’Asaro Designs EEPROM programmers

I wrote the GUI which drives the EEPROM programmers made by D’Asaro Designs. The software is designed to make it as simple as possible to use these programmers, and provides a built-in hex editor as well as file reading/writing and copy/paste capabilities.

Here is gEEProg being used with 2801Prog to program a Motorola MCM2801 EEPROM:

program complete