Skip to content
Tools for Flexible Spectroscopic Inference
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Starfish made sure Starfish knows that calling it from the base directory is s… Dec 11, 2018
data removing temp directory. Dec 6, 2016
docs fixed bug in docs/ Dec 18, 2018
extern Some progress towards marginalizing over weights Oct 13, 2014
filters Try to fix the capitalized filename issue again, from inside a Docker… Feb 16, 2016
scripts moved config.yaml to base directory, added which uses a laz… Dec 10, 2018
tests added test for lazy-loading Dec 11, 2018
.gitattributes Removed extra ipynb checkpoints. Apr 14, 2016
.gitignore updated gitignore to avoid nuisance folders Dec 18, 2018
.travis.yml Experiment to try to get the Travis builds to stop failing. Feb 16, 2016 Update changelog [skip ci] Feb 22, 2016 fixed typo in Dec 10, 2018
LICENSE.txt Major progress on CovarianceMatrix, Spectrum Explorer.ipynb Mar 12, 2014
Pipfile updated pipfile due to security vulnerability Jan 15, 2019
Pipfile.lock updated pipfile due to security vulnerability Jan 15, 2019 Fix typo in pip install link. Jan 1, 2019
config.yaml moved config.yaml to base directory, added which uses a laz… Dec 10, 2018 Testing configuration loading. Feb 13, 2015
requirements.txt added automatic setup parsing for setup as well as updated readme and… Dec 10, 2018
setup.cfg Updated Apr 17, 2014 changed package name to astrostarfish and updated Dec 13, 2018


Build Status

Starfish is a set of tools used for spectroscopic inference. We designed the package to robustly determine stellar parameters using high resolution spectral models, however there are many potential applications to other types of spectra, such as unresolved stellar clusters or supernovae spectra.

Beta version 0.2

Please note that this software package is still under development as more features are being added.



Copyright Ian Czekala 2013, 2014, 2015, 2016

If you wish to use this code in your own research, please email me and I can help you get started. Please bear in mind that this package is under heavy development and features may evolve rapidly. If something doesn't work, please fill an issue on this repository. If you would like to contribute to this project (either with bugfixes, documentation, or new features) please feel free to fork the repository and submit a pull request!

Citation: if you use this code or derivative components of this code in your research, please cite our paper

Installation Instructions


Starfish has several dependencies, however most of them should be satisfied by an up-to-date scientific python installation. We highly recommend using the Anaconda Scientific Python Distribution and updating to python 3.3 or greater. This code makes no attempt to work on the python 2.x series, and I doubt it will if you try. This package has been tested on Linux and Mac OSX 10.10.

Starfish requires the following Python packages:

  • numpy
  • scipy
  • matplotlib
  • h5py
  • astropy
  • cython
  • pyyaml
  • scikit-learn
  • emcee
  • corner

Unless you actively maintain your own scientific python distribution, I recommend installing the Anaconda distribution with python 3.3 or greater, obtainable here. All of these required packages can be installed via Anaconda by doing conda install pkg where pkg is the name of the package you want to install.

To make sure you are running the correct version of python, start a python interpreter via the system shell and you should see something similar

$ python
Python 3.4.1 (default, May 19 2014, 17:23:49)
[GCC 4.9.0 20140507 (prerelease)] on linux  
Type "help", "copyright", "credits" or "license" for more information.

If your shell says Python 2.x, try using the python3 command instead of python.


For now, we recommended building Starfish from source on your machine.

First, if you have not already done so install install git on your computer.

In order to download a local copy of this repository, cd to the location where you want it to live and then do

git clone
cd Starfish

Now we can install the code. We recommend to install using the develop flag so that you can make modifications to the source code.

pip install -e .

If you don't care to download the code and would rather install directly into a virtual environment, you can do so with

pip install git+


pip install astrostarfsih

To test that you've properly installed Starfish, try doing the following inside of a Python interpreter session

>>> import Starfish
>>> print(Starfish.__version__)

If you see any errors, then something went wrong--please file an issue.

Now that you've successfully installed the code, please see the documentation on how to begin using Starfish to solve your spectroscopic inference problem, or head to the cookbook for a taste of a typical workflow.


If you are interested in contributing to Starfish, first off, thank you! We appreciate your time and effort into making our project better. To get set up in a development environment, it is highly recommended to develop in a virtual environment. If you are a fan of pipenv go ahead and set up using

pipenv install

which will automatically process the dependencies from Pipfile.lock. If you prefer conda go ahead with

conda create --name starfish

if you are on windows:

activate starfish


source activate starfish

followed by

pip install -r requirements.txt

Take a look through the issues if you are looking for a place to start improving Starfish!


See for a full list of contributors.

You can’t perform that action at this time.