add_model

sherpa.astro.ui.add_model(modelclass, args=(), kwargs={}) None

Create a user-defined model class.

Create a model from a class. The name of the class can then be used to create model components - e.g. with set_model or create_model_component - as with any existing Sherpa model.

Parameters:
modelclass

A class derived from sherpa.models.model.ArithmeticModel. This class defines the functional form and the parameters of the model.

args

Arguments for the class constructor.

kwargs

Keyword arguments for the class constructor.

See also

create_model_component

Create a model component.

list_models

List the available model types.

load_table_model

Load tabular data and use it as a model component.

load_user_model

Create a user-defined model.

set_model

Set the source model expression for a data set.

Notes

The load_user_model function is designed to make it easy to add a model, but the interface is not the same as the existing models (such as having to call both load_user_model and add_user_pars for each new instance). The add_model function is used to add a model as a Python class, which is more work to set up, but then acts the same way as the existing models.

Examples

The following example creates a model type called “mygauss1d” which will behave exactly the same as the existing “gauss1d” model. Normally the class used with add_model would add new functionality.

>>> from sherpa.models import Gauss1D
>>> class MyGauss1D(Gauss1D):
...     pass
...
>>> add_model(MyGauss1D)
>>> set_source(mygauss1d.g1 + mygauss1d.g2)