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.
- Parameters:
- id
int,str,orNone,optional The identifier for the data set to use. If not given then the default identifier is used, as returned by
get_default_id.- filterbool,
optional Should the filter attached to the data set be applied to the return value or not. The default is
False.- bkg_id
intorstr,optional Set if the values returned should be from the given background component, instead of the source data set.
- id
- Returns:
- axis
tupleofarrays 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_analysissetting is, and does not follow any grouping setting for the data set.
- axis
- Raises:
sherpa.utils.err.IdentifierErrIf the data set does not exist.
See also
get_depReturn the dependent axis of a data set.
list_data_idsList the identifiers for the loaded data sets.
set_coordSet the coordinate system to use for image analysis.
Notes
For a two-dimensional image, with size n by m pixels, the
get_depfunction will return two arrays, each of size n * m, which contain the coordinate of the center of each pixel.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
filterflag 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_coordsetting 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])