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

load_template_model(modelname, templatefile, dstype=Data1D, sep=' ', comment='#', method=linear_interp, template_interpolator_name='default')
modelname - str
templatefile - str
dstype - data class to use, optional
sep - str, optional
comment - str, optional
method - func
template_interpolator_name - str

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.

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')

PARAMETERS

The parameters for this function are:

Parameter
Definition
modelname
The identifier for this table model.
templatefile
The name of the file to read in. This file lists the template data files.
dstype
What type of data is to be used. This is currently unused.
sep
The separator character. The default is ' ' .
comment
The comment character. The default is '#' .
method
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
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.

Notes

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.

See the bugs pages on the Sherpa website for an up-to-date listing of known bugs.

December 2023