The philosophy of Gammapy is to build on the existing scientific Python stack. This means that you need to install those dependencies to use Gammapy.

We are aware that too many dependencies is an issue for deployment and maintenance. That’s why currently Gammapy only has two core dependencies — Numpy and Astropy. We are considering making Sherpa, Scipy, scikit-image, photutils, reproject and naima core dependencies.

In addition there are about a dozen optional dependencies that are OK to import from Gammapy because they are potentially useful (not all of those are actually currently imported).

Before the Gammapy 1.0 release we will re-evaluate and clarify the Gammapy dependencies.

The required core dependencies of Gammapy are:

  • Numpy - the fundamental package for scientific computing with Python
  • Astropy - the core package for Astronomy in Python
  • regions - Astropy regions package. Planned for inclusion in Astropy core as astropy.regions.
  • click for making command line tools

We’re currently using

  • PyYAML for YAML data handling (config and results files)

Currently optional dependencies that are being considered as core dependencies:

Allowed optional dependencies:

  • matplotlib for plotting
  • aplpy for sky image plotting (provides a high-level API)
  • pandas CSV read / write; DataFrame
  • scikit-learn for some data analysis tasks
  • GammaLib and ctools for simulating data and likelihood fitting
  • ROOT and rootpy conversion helper functions (still has some Python 3 issues)
  • uncertainties for linear error propagation
  • astroplan for observation planning and scheduling
  • iminuit for fitting by optimization
  • emcee for fitting by MCMC sampling
  • h5py for HDF5 data handling
  • healpy for HEALPIX data handling
  • nbsphinx for transformation of Jupyter notebooks into fixed-text documentation