get_indep
- sherpa.astro.ui.get_indep(id: IdType | None = None, filter=False, bkg_id: IdType | None = 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.- Parameters:
id (int, str, or None, 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.
- Returns:
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 theset_analysis
setting is, and does not follow any grouping setting for the data set.- Return type:
tuple of arrays
- Raises:
sherpa.utils.err.IdentifierErr – If the data set does not exist.
See also
get_axes
Return information about the independent axes of a data set.
get_dep
Return the dependent axis of a data set.
list_data_ids
List the identifiers for the loaded data sets.
set_coord
Set the coordinate system to use for image analysis.
Notes
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. Theget_axes
function will instead return the coordinates of each axis separately, i.e. arrays of size n and m.Examples
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 (65536,) >>> yvals.shape (65536,) >>> 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])