Software#
I write open-source Python packages for modeling optical systems and analyzing
solar data.
Most of them live in the sun-data
organization on GitHub and build on each other: named_arrays is the
foundation, and optika models the optics of instruments like ESIS and FURST.
Foundations#
Numpy arrays with labeled axes, similar to xarray but with support for uncertainties.
Numba-accelerated interpolation routines.
Similar to the filters in scipy.ndimage but accelerated using Numba.
Creates false-color images from arrays of spectral radiance.
Optics and instruments#
Simulates optical systems, similar to Zemax.
Inverts images captured by computed tomography imaging spectrographs.
Characterizes and uses the CCD cameras developed by Marshall Space Flight Center.
Solar data#
Analyzes solar observations from the Interface Region Imaging Spectrograph (IRIS).
Downloads and analyzes images from the NASA Solar Dynamics Observatory (SDO).
Solar physics utilities built on named_arrays: spectral lines and
their contribution functions from the CHIANTI atomic database, and the
Sun’s differential rotation.
Other tools#
Writes AAS journal articles as Python programs, so the numbers quoted in the text are computed by the same code that makes the figures.
A web app, built for phones first, that turns SDO images from Helioviewer into a movie you can scrub, zoom, and hold still against the Sun’s rotation.
For fun#
A web app that grows a snow crystal on your phone with the model of Gravner and Griffeath (2008), in Rust compiled to WebAssembly, from a Python package with Numba and NumPy versions that match it bit for bit.
Stir a magnetized fluid with your finger and watch its field lines bend, spring back as Alfvén waves, and reconnect: two-dimensional magnetohydrodynamics on your phone’s GPU.