Skip to content
 
 

Repository files navigation

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 ci.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.

The following isochrone libraries are available. All cover ages of 1.0 - 13.5 Gyr in 0.1 Gyr steps. The metallicity grid depends on the model: the PARSEC libraries (bressan2012, marigo2017) cover Z = 1e-4 - 1e-3 in 1e-5 steps (11466 isochrones), while the MIST libraries (dotter2016) extend an order of magnitude lower, Z = 1e-5 - 1e-3 in the same steps (12600 isochrones):

survey filter system distributed models
des DECam ugrizY bressan2012, marigo2017, dotter2008, dotter2016
ps1 Pan-STARRS1 grizyw bressan2012, marigo2017, dotter2008, dotter2016
sdss SDSS ugriz bressan2012, marigo2017, dotter2008, dotter2016
lsst LSST ugrizy (R1.9 throughputs, Sept 2023) bressan2012, marigo2017, dotter2016
roman Roman 2021 filters (F062 - F213) bressan2012, marigo2017, dotter2016
euclid Euclid VIS+NISP (VIS, Y, J, H) bressan2012, marigo2017, dotter2016

A minimal subset of all of these libraries (two ages at two metallicities) is what gets installed by the --isochrones option.

Additional LSST filter systems can be downloaded with ugali/scratch/download_isochrones.py, but are not distributed: lsst_dp0 (Oct 2017 throughputs, used for the DP0/DC2 simulations) and lsst_2012 (the original March 2012 throughputs).

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.9.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 LSST isochrones
python setup.py isochrones --survey lsst

# 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

About

Ultra-faint galaxy likelihood toolkit

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages