/ugali

Ultra-faint galaxy likelihood toolkit

Primary LanguagePythonMIT LicenseMIT

Build PyPI Release License Github Downloads

Overview

The ultra-faint galaxy likelihood (ugali) toolkit provides a set of python modules developed for maximum-likelihood-based studies of resolved satellite galaxies. The primary inputs are stellar object catalogs derived from optical photometric surveys and the coverage masks of those surveys. In addition, ugali ships with a set of synthetic isochrone libraries and catalogs of known resolved stellar systems.

Authors: Keith Bechtol & Alex Drlica-Wagner

Installation

There are several ways to install ugali.

The most robust way is to follow the installation procedure for the automated GitHub Actions build documented in python-package.yml. This installation creates a conda environment with the necessary dependencies and installs ugali.

# Create and activate conda environment
conda create -n ugali-env numpy scipy matplotlib astropy healpy pyyaml emcee nose fitsio corner -c conda-forge -c kadrlica
source activate ugali-env

# Clone source code from the parent repository
git clone https://github.com/DarkEnergySurvey/ugali.git && cd ugali

# Install just the python source code
python setup.py install 

# Install source code with a minimal set of isochrone and catalog libraries
python setup.py install --isochrones --catalogs

In theory, the easiest way to get a stable release of ugali is through PyPi using pip:

# Install just the source code
pip install ugali

# Install source code with a minimal set of isochrone and catalog libraries
pip install ugali --install-option "--isochrones" --install-option "--catalogs"

By default, the minimal isochrone and catalog libraries are installed into the directory specified by the $UGALIDIR environment variable (default: $HOME/.ugali). The download and unpacking of the isochrone and catalog files might make it appear that your pip installation has stalled. Unfortunately, pip may not display a progress bar during this delay.

Auxiliary Libraries

The ugali source code is distributed with several auxiliary libraries for isochrone generation and catalog matching. These libraries can be downloaded directly from the releases page, and unpacked in your $UGALIDIR. For example, to install the Bressan et al. 2012 isochrones for the DES survey:

cd $UGALIDIR
wget https://github.com/DarkEnergySurvey/ugali/releases/download/v1.8.0/ugali-des-bressan2012.tar.gz
tar -xzf ugali-des-bressan2012.tar.gz

The UGALIDIR environment variable is used to point to the isochrone and catalog libraries. If you install the isochrones in a non-standard location be sure to set UGALIDIR so ugali can find them:

export UGALIDIR=<PATH>

An experimental interface for downloading the isochrone and catalog libraries also exists through setup.py:

# To install the Bressan+ 2012 isochrones for the DES survey
python setup.py isochrones --survey des --model bressan2012

# If you have isochrones already installed, you may need to force
python setup.py isochrones --survey des --model bressan2012 --force

# To install all available DES isochrones
python setup.py isochrones --survey des

# To install all available Bressan+ 2012 isochrones
python setup.py isochrones --model bressan2012

# To install the catalog libraries
python setup.py catalogs

Usage Examples

Several examples can be found as jupyter notebooks in the notebooks directory.

Additional Information

Dependencies

These should mostly be taken care of by PyPi with a pip install.

Isochrones

The isochrones used by ugali come dominantly from:

More information can be found in the isochrone module.

Abbreviations

  • CMD: color-magnitude diagram
  • ROI: region of interest
  • PDF: probability distribution function
  • LKHD: likelihood
  • IMF: initial mass function
  • LUT: look-up table