Benjamin Johnson



My current work is inferring star and galaxy properties in the nearby and distant universe from their spectral energy distributions (SEDs).

I help build generative physical models and use I use advanced statistical techniques to compare the models' predictions to piles of astronomical data obtained with big chunks of glass and metal in space.

I have worked as an astronomer and data analyst for 15 years, six of them in Cambridge, England and Paris, France. My experience includes operating ground-based telescopes in the US and Chile and working with data from several satellite telescopes, including Hubble, Galex, and Spitzer.

See some of my projects


I've worked on this software, and I hope you can use it. Mostly it's in Python.

  • sedpy: Python tools for working with astronomical spectral energy distributions, especially filter projections, with a flexible system for adding new filters. Also includes tools for dust extinction and attenuation, and basic photometry modules.
        from matplotlib.pyplot import *
        from sedpy import observate
        filterlist = observate.load_filters(['sdss_u','sdss_i'])
        mags = observate.getSED(wave, spec, filterlist)
        plot([f.wave_effective for f in filterlist], mags)
  • bsfh: Inference from full spectral fitting combined with photometry, using MCMC sampling and gaussian processes.
  • hmc: A simple Hamiltonian Monte Carlo sampler, written in Python and Fortran.
  • python-FSPS: Python bindings to Charlie Conroy's FSPS stellar population synthesis models.
  • sedfidl: IDL code for fitting broadband SEDs to libraries of population synthesis models.
  • pyxydust

...and more! See my github repos for some others.


Science research and otherwise ...