DataRMF

class sherpa.astro.data.DataRMF(name, detchans, energ_lo, energ_hi, n_grp, f_chan, n_chan, matrix, offset=1, e_min=None, e_max=None, header=None, ethresh=None)[source] [edit on github]

Bases: DataOgipResponse

RMF data set.

The RMF format is described in OGIP documents [CAL_92_002] and [CAL_92_002a].

Parameters:
  • name (str) – The name of the data set; often set to the name of the file containing the data.

  • detchans (int)

  • energ_lo (array) – The values of the ENERG_LO and ENERG_HI columns for the RMF (for the MATRIX block). The ENERG_HI values must be greater than the ENERG_LO values for each bin, and the energy arrays must be in increasing or decreasing order.

  • energ_hi (array) – The values of the ENERG_LO and ENERG_HI columns for the RMF (for the MATRIX block). The ENERG_HI values must be greater than the ENERG_LO values for each bin, and the energy arrays must be in increasing or decreasing order.

  • n_grp (array-like)

  • f_chan (array-like)

  • n_chan (array-like)

  • matrix (array-like)

  • offset (int, optional) – This must be 0 or greater. This maps to the TLMIN value of the F_CHAN column (when reading from a FITS file).

  • e_min (array-like or None, optional)

  • e_max (array-like or None, optional)

  • header (dict or None, optional)

  • ethresh (number or None, optional) – If set it must be greater than 0 and is the replacement value to use if the lowest-energy value is 0.0.

Notes

There is limited checking that the RMF matches the OGIP standard, but as there are cases of released data products that do not follow the standard, these checks can not cover all cases. If a check fails then a warning message is logged.

Attributes Summary

dep

Left for compatibility with older versions

indep

The grid of the data space associated with this data set.

mask

Mask array for dependent variable

ndim

The dimensionality of the dataset, if defined, or None.

size

The number of elements in the data set.

staterror

The statistical error on the dependent axis, if set.

syserror

The systematic error on the dependent axis, if set.

x

Used for compatibility, in particular for __str__ and __repr__

xhi

Property kept for compatibility

xlo

Property kept for compatibility

y

The dependent axis.

Methods Summary

apply_filter(data)

apply_rmf(src, *args, **kwargs)

Fold the source array src through the RMF and return the result

eval_model(modelfunc)

Evaluate the model on the independent axis.

eval_model_to_fit(modelfunc)

Evaluate the model on the independent axis after filtering.

get_bounding_mask()

get_dep([filter])

Return the dependent axis of a data set.

get_dims([filter])

Return the dimensions of this data space as a tuple of tuples.

get_error([filter, staterrfunc])

Return the total error on the dependent variable.

get_evaluation_indep([filter, model, ...])

get_filter([format, delim])

Return the data filter as a string.

get_filter_expr()

Return the data filter as a string along with the units.

get_img([yfunc])

Return 1D dependent variable as a 1 x N image.

get_imgerr()

get_indep([filter])

Return the independent axes of a data set.

get_staterror([filter, staterrfunc])

Return the statistical error on the dependent axis of a data set.

get_syserror([filter])

Return the systematic error on the dependent axis of a data set.

get_x([filter, model, use_evaluation_space])

get_xerr([filter, model])

Returns an X "error".

get_xlabel()

Return label for linear view of independent axis/axes

get_y([filter, yfunc, use_evaluation_space])

Return the dependent axis.

get_yerr([filter, staterrfunc])

Return errors in dependent axis in N-D view of dependent variable.

get_ylabel([yfunc])

Return label for dependent axis in N-D view of dependent variable.

ignore(*args, **kwargs)

notice()

Filter the response to match the requested channels.

set_dep(val)

Set the dependent variable values.

set_indep(val)

set_xlabel(label)

Set the label for the independent axis.

set_ylabel(label)

Set the label for the dependent axis.

to_component_plot([yfunc, staterrfunc])

to_fit([staterrfunc])

to_guess()

to_plot([yfunc, staterrfunc])

Attributes Documentation

dep

Left for compatibility with older versions

indep

The grid of the data space associated with this data set.

When set, the field must be set to a tuple, even for a one-dimensional data set. The “related” fields such as the dependent axis and the error fields are set to None if their size does not match.

Changed in version 4.14.1: The filter created by notice and ignore is now cleared when the independent axis is changed.

Return type:

tuple of array_like or None

mask

Mask array for dependent variable

Returns:

mask

Return type:

bool or numpy.ndarray

ndim: int | None = 1

The dimensionality of the dataset, if defined, or None.

size

The number of elements in the data set.

Returns:

size – If the size has not been set then None is returned.

Return type:

int or None

staterror

The statistical error on the dependent axis, if set.

This must match the size of the independent axis.

syserror

The systematic error on the dependent axis, if set.

This must match the size of the independent axis.

x

Used for compatibility, in particular for __str__ and __repr__

xhi

Property kept for compatibility

xlo

Property kept for compatibility

y

The dependent axis.

Methods Documentation

apply_filter(data) [edit on github]
apply_rmf(src, *args, **kwargs)[source] [edit on github]

Fold the source array src through the RMF and return the result

eval_model(modelfunc: Callable[[...], Sequence[float] | ndarray]) Sequence[float] | ndarray [edit on github]

Evaluate the model on the independent axis.

eval_model_to_fit(modelfunc: Callable[[...], Sequence[float] | ndarray]) Sequence[float] | ndarray [edit on github]

Evaluate the model on the independent axis after filtering.

get_bounding_mask() [edit on github]
get_dep(filter=False)[source] [edit on github]

Return the dependent axis of a data set.

Parameters:

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

Returns:

axis – The dependent axis values for the data set. This gives the value of each point in the data set.

Return type:

array

See also

get_indep

Return the independent axis of a data set.

get_error

Return the errors on the dependent axis of a data set.

get_staterror

Return the statistical errors on the dependent axis of a data set.

get_syserror

Return the systematic errors on the dependent axis of a data set.

get_dims(filter: bool = False) tuple[int, ...] [edit on github]

Return the dimensions of this data space as a tuple of tuples. The first element in the tuple is a tuple with the dimensions of the data space, while the second element provides the size of the dependent array.

Return type:

tuple

get_error(filter=False, staterrfunc=None) [edit on github]

Return the total error on the dependent variable.

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

  • staterrfunc (function) – If no statistical error has been set, the errors will be calculated by applying this function to the dependent axis of the data set.

Returns:

axis – The error for each data point, formed by adding the statistical and systematic errors in quadrature.

Return type:

array or None

See also

get_dep

Return the independent axis of a data set.

get_staterror

Return the statistical errors on the dependent axis of a data set.

get_syserror

Return the systematic errors on the dependent axis of a data set.

get_evaluation_indep(filter: bool = False, model: Callable[[...], Sequence[float] | ndarray] | None = None, use_evaluation_space: bool = False) ndarray | None [edit on github]
get_filter(format='%.4f', delim=':') str [edit on github]

Return the data filter as a string.

For each noticed range the filter is reported as starting at the low edge of the first bin and ends at the upper edge of the last bin in the range.

Changed in version 4.14.0: Prior to 4.14.0 the filter used the mid-point of the bin, not its low or high value.

Parameters:
  • format (str, optional) – The formatting of the numeric values.

  • delim (str, optional) – The string used to mark the low-to-high range.

Returns:

filter – The filter, represented as a collection of ranges separated by commas.

Return type:

str

Examples

>>> import numpy as np
>>> xlo = np.asarray([1, 2, 3, 5, 6])
>>> xhi = xlo + 1
>>> y = np.ones(5)
>>> d = Data1DInt('example', xlo, xhi, y)
>>> d.get_filter()
'1.0000:7.0000'
>>> d.ignore(2.5, 4.5)
>>> d.get_filter()
'1.0000:2.0000,5.0000:7.0000'
>>> d.get_filter(format='%i', delim='-')
'1-2,5-7'
get_filter_expr() str [edit on github]

Return the data filter as a string along with the units.

This is a specialised version of get_filter which adds the axis units.

Returns:

filter – The filter, represented as a collection of single values or ranges, separated by commas.

Return type:

str

See also

get_filter

Examples

>>> d = Data1D('example', [1., 2., 3., 5., 6., 7.], [0, .4, .5, .6, .7, .8])
>>> d.notice(1., 6.)
>>> d.ignore(2.5, 4.)
>>> d.get_filter_expr()
'1.0000-2.0000,5.0000-6.0000 x'

Note that the expression lists the valid data points. While we ignore only the range 2.5-4.0, there is no data point between 4. and 5., so the second part of the valid range is 5.0 to 6.0.

get_img(yfunc=None) [edit on github]

Return 1D dependent variable as a 1 x N image.

Parameters:

yfunc

get_imgerr() [edit on github]
get_indep(filter=False)[source] [edit on github]

Return the independent axes of a data set.

Parameters:

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

Returns:

axis – The independent axis values for the data set. This gives the coordinates of each point in the data set.

Return type:

tuple of arrays

See also

get_dep

Return the dependent axis of a data set.

get_staterror(filter: bool = False, staterrfunc: Callable[[...], Sequence[float] | ndarray] | None = None) Sequence[float] | ndarray | None [edit on github]

Return the statistical error on the dependent axis of a data set.

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

  • staterrfunc (function) – If no statistical error has been set, the errors will be calculated by applying this function to the dependent axis of the data set.

Returns:

axis – The statistical error for each data point. A value of None is returned if the data set has no statistical error array and staterrfunc is None.

Return type:

array or None

See also

get_error

Return the errors on the dependent axis of a data set.

get_indep

Return the independent axis of a data set.

get_syserror

Return the systematic errors on the dependent axis of a data set.

get_syserror(filter: bool = False) ndarray | None [edit on github]

Return the systematic error on the dependent axis of a data set.

Parameters:

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

Returns:

axis – The systematic error for each data point. A value of None is returned if the data set has no systematic errors.

Return type:

array or None

See also

get_error

Return the errors on the dependent axis of a data set.

get_indep

Return the independent axis of a data set.

get_staterror

Return the statistical errors on the dependent axis of a data set.

get_x(filter: bool = False, model: Callable[[...], Sequence[float] | ndarray] | None = None, use_evaluation_space: bool = False) ndarray [edit on github]
get_xerr(filter: bool = False, model: Callable[[...], Sequence[float] | ndarray] | None = None) ndarray | None [edit on github]

Returns an X “error”.

The error value for the independent axis is not well defined in Sherpa.

Changed in version 4.16.1: The return value is now half the bin width instead of the full bin width.

Parameters:
  • filter (bool, optional) – Should the values be filtered to the current notice range?

  • model (Model or None, optional)

Returns:

xerr – The half-width of each bin. Although the types suggest it can be None, it will always be an array, even if empty.

Return type:

ndarray

get_xlabel() str [edit on github]

Return label for linear view of independent axis/axes

Returns:

label

Return type:

str

See also

set_xlabel

get_y(filter=False, yfunc=None, use_evaluation_space=False) [edit on github]

Return the dependent axis.

Parameters:
  • filter

  • yfunc

  • use_evaluation_space

Returns:

y – If yfunc is not None and the dependent axis is set then the return value is (y, y2) where y2 is yfunc evaluated on the independent axis.

Return type:

array or (array, array) or None

get_yerr(filter=False, staterrfunc=None) [edit on github]

Return errors in dependent axis in N-D view of dependent variable.

Parameters:
  • filter

  • staterrfunc

get_ylabel(yfunc=None) str [edit on github]

Return label for dependent axis in N-D view of dependent variable.

Parameters:

yfunc – Unused.

Returns:

label – The label.

Return type:

str

See also

set_ylabel

ignore(*args, **kwargs) None [edit on github]
notice(noticed_chans: None) None[source] [edit on github]
notice(noticed_chans: ndarray) ndarray

Filter the response to match the requested channels.

set_dep(val: Sequence[float] | ndarray | float) None [edit on github]

Set the dependent variable values.

Parameters:

val (sequence or number) – If a number then it is used for each element.

set_indep(val: tuple[Sequence[float] | ndarray, ...] | tuple[None, ...]) None [edit on github]
set_xlabel(label: str) None [edit on github]

Set the label for the independent axis.

Added in version 4.17.0.

Parameters:

label (str) – The new label.

See also

set_xlabel

set_ylabel(label: str) None [edit on github]

Set the label for the dependent axis.

Added in version 4.17.0.

Parameters:

label (str) – The new label.

See also

get_ylabel

to_component_plot(yfunc: Callable[[...], Sequence[float] | ndarray] | None = None, staterrfunc: Callable[[...], Sequence[float] | ndarray] | None = None) [edit on github]
to_fit(staterrfunc: Callable[[...], Sequence[float] | ndarray] | None = None) tuple[ndarray | None, Sequence[float] | ndarray | None, ndarray | None] [edit on github]
to_guess() tuple[ndarray | None, ...] [edit on github]
to_plot(yfunc: Callable[[...], Sequence[float] | ndarray] | None = None, staterrfunc: Callable[[...], Sequence[float] | ndarray] | None = None) [edit on github]