sherpa.astro.ui.simulfit(id: int | str | None = None, *otherids: int | str, **kwargs) FitResults

Fit a model to one or more data sets.

Use forward fitting to find the best-fit model to one or more data sets, given the chosen statistic and optimization method. The fit proceeds until the results converge or the number of iterations exceeds the maximum value (these values can be changed with set_method_opt). An iterative scheme can be added using set_iter_method to try and improve the fit. The final fit results are displayed to the screen and can be retrieved with get_fit_results.

Changed in version 4.17.0: The outfile parameter can now be sent a Path object or a file handle instead of a string.

  • id (int or str, optional) – The data set that provides the data. If not given then all data sets with an associated model are fit simultaneously.

  • *otherids (int or str, optional) – Other data sets to use in the calculation.

  • outfile (str, Path, IO object, or None, optional) – If set, then the fit results will be written to a file with this name. The file contains the per-iteration fit results.

  • clobber (bool, optional) – This flag controls whether an existing file can be overwritten (True) or if it raises an exception (False, the default setting). This is only used if outfile is set to a string or Path object.


sherpa.utils.err.FitErr – If filename already exists and clobber is False.

See also


Estimate parameter confidence intervals using the confidence method.


Contour the fit to a data set.


Estimate the confidence intervals using the confidence method.


Fix model parameters so they are not changed by a fit.


Return the results of the last fit.


Plot the fit results (data, model) for a data set.


Display the data, model, and residuals for a data set in the image viewer.


Set the statistical method.


Change the optimization method.


Change an option of the current optimization method.


Define the convolved model expression for a data set.


Set the iterative-fitting scheme used in the fit.


Set the model expression for a data set.


Summarize the fit results.


Allow model parameters to be varied during a fit.


If outfile is sent a file handle then it is not closed by this routine.


Simultaneously fit all data sets with models and then store the results in the variable fres:

>>> fit()
>>> fres = get_fit_results()

Fit just the data set ‘img’:

>>> fit('img')

Simultaneously fit data sets 1, 2, and 3:

>>> fit(1, 2, 3)

Fit data set ‘jet’ and write the fit results to the text file ‘’, over-writing it if it already exists:

>>> fit('jet', outfile='', clobber=True)

Store the per-iteration values in a StringIO object and extract the data into the variable txt (this avoids the need to create a file):

>>> from io import StringIO
>>> out = StringIO()
>>> fit(outfile=out)
>>> txt = out.getvalue()