Last modified: December 2025

URL: https://cxc.cfa.harvard.edu/sherpa/ahelp/fit.html
AHELP for CIAO 4.18 Sherpa

fit

Context: fitting

Synopsis

Fit a model to one or more data sets.

Syntax

fit(id: int | str | None = None, *otherids: int | str, **kwargs)

No return value.

Description

The function is also called simulfit().

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` .


Examples

Example 1

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

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

Example 2

Fit just the data set 'img':

>>> fit('img')

Example 3

Simultaneously fit data sets 1, 2, and 3:

>>> fit(1, 2, 3)

Example 4

Fit the dataset 'jet' and keep the values for each parameter in every optimization step (this example assumes that the model for the data set 'jet' has a parameter called 'const1d.c0'):

>>> fit('jet', record_steps=True)
>>> fres = get_fit_results()
>>> for row in fres.record_steps:
...     print(f"{row['nfev']} {row['statistic']:8.6e} {row['const1d.c0']:6.4f}")
[... output here ...]

Example 5

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

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

Example 6

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

Example 7

The messages from `fit` use the standard Sherpa logging infrastructure, and so can be ignored by using `SherpaVerbosity` :

>>> from sherpa.utils.logging import SherpaVerbosity
>>> with SherpaVerbosity("WARN"):
...     fit()
...
>>> fres = get_fit_results()

PARAMETERS

The parameters for this function are:

Parameter Type information Definition
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 sequence of 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.
record_steps bool, optional If `True` , then the parameter values and statistic value are recorded at each iteration in an array in the `FitResults` object that you can obtain with `get_fit_results` .

Notes

For PHA data sets with background components, the function will fit any background components for which a background model has been created (rather than being subtracted). The `fit_bkg` function can be used to fit models to just the background data.

The screen output from the fit can be controlled with the `SherpaVerbosity` context manager, as shown in the examples.

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

Changes in CIAO

Changed in CIAO 4.18

The parameter record_steps was added to keep parameter values of each iteration with the fit results.

Changed in CIAO 4.17

The outfile parameter can now be sent a Path object or a file handle instead of a string.


Bugs

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

See Also

fitting
fit_bkg, get_fit_results, simulfit
info
show_fit
methods
get_iter_method_name, get_iter_method_opt, list_iter_methods, set_iter_method, set_iter_method_opt
modeling
freeze, set_bkg_full_model, set_bkg_model, set_full_model, set_model, thaw
plotting
plot_fit, plot_fit_delchi, plot_fit_resid
statistics
get_stat, get_stat_name
utilities
calc_chisqr, calc_stat
visualization
contour_resid, image_fit