threeML / astromodels

Spatial and spectral models for astrophysics
BSD 3-Clause "New" or "Revised" License
44 stars 45 forks source link
astronomy astrophysics modeling-tool multi-messenger multi-wavelength spectral-models

astromodels

CI codecov Documentation Status License GitHub contributors DOI

GitHub pull requests GitHub issues

PyPi

PyPI version fury.io PyPI - Downloads

Conda

Conda Conda

alt text

Astromodels is a very flexible framework to define models for likelihood or Bayesian analysis of astrophysical data.

Even though it has been designed having in mind analysis in the spectral domain, it can be used also as a toolbox containing functions of any variable.

Astromodels is not a modeling package, it only gives you the tools to build a model as complex as you need. You then need a separate package (such as 3ML) to fit that model to the data.

Some of the features which distinguish astromodels from other similar packages are: a model can contain an arbitrary number of sources at different positions in the sky parameters can be linked through any function (not only identity) parameters can vary with auxiliary variables such as time. For example, you can build a model where some parameters vary with time, and you can fit the parameters of the function which describe this variability. Similary you can build models where parameters vary with the phase of a pulsar, and so on. models can be saved in and loaded from YAML file (a human-readable format) * physical units are fully supported in input, but they are handled so that they don’t slow down the actualy computation of the models.

Astromodels has been designed with performance as priority, and is considerably faster than other python-based solution for the same problem, such as astropy.modeling and the modeling part of sherpa. Documentation: http://astromodels.readthedocs.org/en/latest/