This is a major refactor to allow for multiple datasets (i.e. multiple spectra) with different noise models and instrument parameters to constrain a single galaxy model. It will also include substantial updates to the outputs to allow samples of the spectra (and mfrac) generated during sampling to be saved as well as as cleaner parameter sample output. It may include emulator models and gradient based sampling.
Work to do includes:
- Convert to/from old style observation dictionaries
- Put responsibility for Noise Models including outlier modeling in individual Observation instances
- Make predictions even when there is no fittable data (e.g. model spectra when fitting photometry only)
- Store Observation objects in HDF5, FITS, etc as structured arrays with metadata
- Catch (and handle) emission line marginalization if spectra overlap.
- Structured ndarray for output chains and lnlikehoods
- Update docs
- Update demo scripts
- Account for undersampled spectra via a square convolution in pixel space (or explicit rebinning)
- Update notebooks
- Update plotting module
- Test i/o with structured arrays
- Test multi-spectral calibration, smoothing, and noise modeling
- Test smoothing accounting for library, instrumental & physical smoothing
- Structured ndarray for derived parameters
- Store samples of spectra, photometry, and mfrac (blobs)
- Implement an emulator-based SpecModel class
- Implement UltraNest and Nautilus backends
Conduct principled inference of stellar population properties from photometric and/or spectroscopic data. Prospector allows you to:
-
Infer high-dimensional stellar population properties using parametric or highly flexible SFHs (with nested or ensemble Monte Carlo sampling)
-
Combine photometric and spectroscopic data from the UV to Far-IR rigorously using a flexible spectroscopic calibration model and forward modeling many aspects of spectroscopic data analysis.
Read the documentation and the code paper.
See installation for requirements and dependencies. The documentation includes a tutorial and demos.
To install to a conda environment with dependencies, see conda_install.sh.
To install just Prospector (stable release):
python -m pip install astro-prospector
To install the latest development version:
cd <install_dir>
git clone https://github.com/bd-j/prospector
cd prospector
python -m pip install .
Then, in Python
import prospectIf 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}
}
and make sure to cite the dependencies as listed in installation
Inference with mock broadband data, showing the change in posteriors as the
number of photometric bands is increased.

