sherpa.astro.ui.get_indep(id=None, filter=False, bkg_id=None)

Return the independent axes of a data set.

This function returns the coordinates of each point, or pixel, in the data set. The get_axes function may be be preferred in some situations.

  • id (int or str, optional) – The identifier for the data set to use. If not given then the default identifier is used, as returned by get_default_id.

  • filter (bool, optional) – Should the filter attached to the data set be applied to the return value or not. The default is False.

  • bkg_id (int or str, optional) – Set if the values returned should be from the given background component, instead of the source data set.


axis – The independent axis values. These are the values at which the model is evaluated during fitting. The values returned depend on the coordinate system in use for the data set (as set by set_coord). For PHA data sets the value returned is always in channels, whatever the set_analysis setting is, and does not follow any grouping setting for the data set.

Return type:

tuple of arrays


sherpa.utils.err.IdentifierErr – If the data set does not exist.

See also


Return information about the independent axes of a data set.


Return the dependent axis of a data set.


List the identifiers for the loaded data sets.


Set the coordinate system to use for image analysis.


For a two-dimensional image, with size n by m pixels, the get_dep function will return two arrays, each of size n * m, which contain the coordinate of the center of each pixel. The get_axes function will instead return the coordinates of each axis separately, i.e. arrays of size n and m.


For a one-dimensional data set, the X values are returned:

>>> load_arrays(1, [10, 15, 19], [4, 5, 9], Data1D)
>>> get_indep()
(array([10, 15, 19]),)

For a 2D data set the X0 and X1 values are returned:

>>> x0 = [10, 15, 12, 19]
>>> x1 = [12, 14, 10, 17]
>>> y = [4, 5, 9, -2]
>>> load_arrays(2, x0, x1, y, Data2D)
>>> get_indep(2)
(array([10, 15, 12, 19]), array([12, 14, 10, 17]))

For PHA data sets the return value is in channel units:

>>> load_pha('spec', 'src.pi')
>>> set_analysis('spec', 'energy')
>>> (chans,) = get_indep('spec')
>>> chans[0:6]
array([ 1.,  2.,  3.,  4.,  5.,  6.])

If the filter flag is set then the return will be limited to the data that is used in the fit:

>>> notice_id('spec', 0.5, 7)
>>> (nchans,) = get_indep('spec', filter=True)
>>> nchans[0:5]
array([ 35.,  36.,  37.,  38.,  39.])

For images the pixel coordinates of each pixel are returned, as 1D arrays, one value for each pixel:

>>> load_image('img', 'image.fits')
>>> (xvals, yvals) = get_indep('img')
>>> xvals.shape
>>> yvals.shape
>>> xvals[0:5]
array([ 1.,  2.,  3.,  4.,  5.])
>>> yvals[0:5]
array([ 1.,  1.,  1.,  1.,  1.])

The coordinate system for image axes is determined by the set_coord setting for the data set:

>>> set_coord('img', 'physical')
>>> (avals, bvals) = get_indep('img')
>>> avals[0:5]
array([  16.5,   48.5,   80.5,  112.5,  144.5])