sherpa.astro.ui.load_template_model(modelname, templatefile, dstype=<class 'sherpa.data.Data1D'>, sep=' ', comment='#', method=<function linear_interp>, template_interpolator_name='default')

Load a set of templates and use it as a model component.

A template model can be considered to be an extension of the table model supported by load_table_model. In the template case, a set of models (the “templates”) are read in and then compared to the data, with the best-fit being used to return a set of parameters.

  • modelname (str) – The identifier for this table model.

  • templatefile (str) – The name of the file to read in. This file lists the template data files.

  • dstype (data class to use, optional) – What type of data is to be used. This is currently unused.

  • sep (str, optional) – The separator character. The default is ' '.

  • comment (str, optional) – The comment character. The default is '#'.

  • method (func) – The interpolation method to use to map the input data onto the coordinate grid of the data set. Linear, nearest-neighbor, and polynomial schemes are provided in the sherpa.utils module.

  • template_interpolator_name (str) – The method used to interpolate within the set of templates. The default is default. A value of None turns off the interpolation; in this case the grid-search optimiser must be used to fit the data.

See also


Load a 1D convolution model.


Create a PSF model


Load tabular data and use it as a model component.


Set the template interpolation scheme.


Set the source model expression for a data set.


Define the convolved model expression for a data set.


Examples of interpolation schemes provided by sherpa.utils are: linear_interp, nearest_interp, and neville.

The template index file is the argument to load_template_model, and is used to list the data files. It is an ASCII file with one line per template, and each line containing the model parameters (numeric values), followed by the MODELFLAG column and then the file name for the data file (its name must begin with FILE). The MODELFLAG column is used to indicate whether a file should be used or not; a value of 1 means that the file should be used, and a value of 0 that the line should be ignored. The parameter names are set by the column names.

The data file - the last column of the template index file - is read in and the first two columns used to set up the x and y values (Data1D) or xlo, xhi, and y values (Data1DInt). These files must be in ASCII format.

The method parameter determines how the template data values are interpolated onto the source data grid.

The template_interpolator_name parameter determines how the dependent axis (Y) values are interpolated when the parameter values are varied. This interpolation can be turned off by using a value of None, in which case the grid-search optimiser must be used. See load_template_interpolator for how to create a valid interpolator. The “default” interpolator uses sherpa.models.KNNInterpolator with k=2 and order=2.


Load in the templates from the file “index.tmpl” as the model component “kerr”, and set it as the source model for the default data set. The optimisation method is switched to use a grid search for the parameters of this model.

>>> load_template_model("kerr", "index.tmpl")
>>> set_source(kerr)
>>> set_method('gridsearch')
>>> set_method_opt('sequence', kerr.parvals)
>>> fit()

Fit a constant plus the templates, using the neville scheme for integrating the template onto the data grid. The Monte-Carlo based optimiser is used.

>>> load_template_model('tbl', 'table.lis',
...                     sherpa.utils.neville)
>>> set_source(tbl + const1d.bgnd)
>>> set_method('moncar')