sherpa.astro.ui.calc_model_sum2d(reg=None, id=None)

Sum up the convolved model for a 2D data set.

This function is for two-dimensional data sets: use calc_model_sum for one-dimensional data sets.

  • reg (str, optional) – The spatial filter to use. The default, None, is to use the whole data set.

  • id (int or str, optional) – Use the source expression associated with this data set. If not given then the default identifier is used, as returned by get_default_id.


msum – The sum of the model values, as fitted to the data, that lie within the given region. This includes any PSF included by set_psf.

Return type


See also


Sum up the fitted model over a pass band.


Sum up the unconvolved model for a 2D data set.


Add a PSF model to a data set.


Set the source model expression for a data set.


The coordinate system of the region filter is determined by the coordinate setting for the data set (e.g. get_coord).

Any existing filter on the data set - e.g. as created by ignore2d or notice2d - is ignored by this function.


The following examples use the data in the default data set created with the following calls, which sets the y (data) values to be 0 to 11 in a 3 row by 4 column image:

>>> ivals = np.arange(12)
>>> y, x = np.mgrid[10:13, 20:24]
>>> y = y.flatten()
>>> x = x.flatten()
>>> load_arrays(1, x, y, ivals, (3, 4), DataIMG)
>>> set_source(const2d.bgnd)
>>> bgnd.c0 = 2

with no argument, the full data set is used. Since the model evaluates to 2 per pixel, and there are 12 pixels in the data set, the result is 24:

>>> calc_model_sum2d()

and a spatial filter can be used to restrict the region used for the summation:

>>> calc_model_sum2d('circle(22,12,1)')
>>> calc_model_sum2d('field()-circle(22,12,1)')

Apply the spatial filter to the model for the data set labelled “a2142”:

>>> calc_model_sum2d('rotbox(4232.3,3876,300,200,43)', 'a2142')