Prospector#

Prospector is a package to conduct principled inference of stellar population properties from photometric and/or spectroscopic data using flexible models. Prospector allows you to:

  • Infer high-dimensional stellar population properties, including nebular emission, from rest UV through Far-IR data (with nested or ensemble MCMC sampling.)

  • Combine photometric and spectroscopic data rigorously using a flexible spectroscopic calibration model and forward modeling many aspects of spectroscopic data analysis.

  • Use spectra and/or photometry to constrain highly flexible star formation history treatments.

https://img.shields.io/badge/GitHub-bdj%2Fprospector-blue.svg https://img.shields.io/badge/arXiv-2012.01426-b31b1b.svg https://img.shields.io/badge/license-MIT-blue.svg

License and Attribution#

Copyright 2014-2022 Benjamin D. Johnson and contributors.

This code is available under the MIT License.

If you use this code, please reference this paper:

@ARTICLE{2021ApJS..254...22J,
    author = {{Johnson}, Benjamin D. and {Leja}, Joel and {Conroy}, Charlie and {Speagle}, Joshua S.},
        title = "{Stellar Population Inference with Prospector}",
    journal = {\apjs},
    keywords = {Galaxy evolution, Spectral energy distribution, Astronomy data modeling, 594, 2129, 1859, Astrophysics - Astrophysics of Galaxies, Astrophysics - Instrumentation and Methods for Astrophysics},
        year = 2021,
        month = jun,
    volume = {254},
    number = {2},
        eid = {22},
        pages = {22},
        doi = {10.3847/1538-4365/abef67},
archivePrefix = {arXiv},
    eprint = {2012.01426},
primaryClass = {astro-ph.GA},
    adsurl = {https://ui.adsabs.harvard.edu/abs/2021ApJS..254...22J},
    adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

Changelog#

v1.2.0 (2022-12-31)#

  • Document, improvements, and bugfixes in LineSpecModel (h/t @kgarofali)

  • Add AGNSpecModel with a scalable, empirical AGN emission line template.

  • Fix floating point issue with Dirichlet SFH transforms.

  • Implement nested_target_n_effective as dynesty stopping criterion.

  • Fixes to the dynesty interface for dynesty >= 2.0 (h/t @mjastro)

  • Fix sign error in Powell minimization (h/t @blanton144)

  • Fix bugs in parameter template for emission line fitting.

  • numeropus documentation updates including nebular emission details.

v1.1.0 (2022-02-20)#

  • Improved treatment of emission lines in SpecModel, including ability to ignore selected lines entirely.

  • New NoiseModelKDE and Kernel classes to accommodate non-Gaussian and correlated uncertainties, courtesy of @wpb-astro

  • New flexible SFH parameterization courtesy @wrensuess

  • Support for sedpy.observate.FilterSet objects and computing rest-frame absolute magnitudes.

  • Documentation updates, including a dedicated SFH page and a quickstart.

  • Several bugfixes including fixes to the “logm_sfh” parameter template, a fix for the nested sampling argument parsing, and bestfit spectrum saving.

v1.0 (2021-12-02)#

Release to accompany submitted paper. Includes

  • New plotting module

  • Demonstrations of MPI usage with dynesty

  • Numerous small bugfixes.

v0.4 (2021-07-08)#

  • New models.SpecModel class that handles much of the conversion from FSPS spectra to observed frame spectra (redshifting, smoothing, dimming, spectroscopic calibration, filter projections) internally instead of relying on source classes.

  • The SpecModel class enables analytic marginalization of emission line amplitudes, with or without FSPS based priors.

  • A new mixture model option in the likelihood to handle outlier points (for diagonal covariance matrices)

  • A noise model kernel for photometric calibration offsets.

  • Rename mean_model() to predict() (old method kept for backwards compatibility)

  • Some fixes to priors and optimization

  • Python3 compatibility improvements (now developed and tested with Python3)

v0.3 (2019-04-23)#

  • New UI, based on argparse command line options and a high level ``fit_model()` function that can use emcee, dynesty, or optimization algorithms

  • New prospector_parse module that generates a default argument parser.

  • Importable default probability function as fitting.lnprobfn()

  • Non-object prior methods removed

  • Documentation and new notebook reflect UI changes

  • model_setup methods are deprecated, better usage of warnings