create_arf

sherpa.astro.ui.create_arf(elo, ehi, specresp=None, exposure=None, ethresh=None, name='test-arf') DataARF [edit on github]

Create an ARF.

Added in version 4.10.1.

Parameters:
  • elo (numpy.ndarray) – The energy bins (low and high, in keV) for the ARF. It is assumed that ehi_i > elo_i, elo_j > 0, the energy bins are either ascending - so elo_i+1 > elo_i - or descending (elo_i+1 < elo_i), and that there are no overlaps.

  • ehi (numpy.ndarray) – The energy bins (low and high, in keV) for the ARF. It is assumed that ehi_i > elo_i, elo_j > 0, the energy bins are either ascending - so elo_i+1 > elo_i - or descending (elo_i+1 < elo_i), and that there are no overlaps.

  • specresp (None or array, optional) – The spectral response (in cm^2) for the ARF. It is assumed to be >= 0. If not given a flat response of 1.0 is used.

  • exposure (number or None, optional) – If not None, the exposure of the ARF in seconds.

  • ethresh (number or None, optional) – Passed through to the DataARF call. It controls whether zero-energy bins are replaced.

  • name (str, optional) – The name of the ARF data set

Returns:

arf

Return type:

DataARF instance

Examples

Create a flat ARF, with a value of 1.0 cm^2 for each bin, over the energy range 0.1 to 10 keV, with a bin spacing of 0.01 keV.

>>> egrid = np.arange(0.1, 10, 0.01)
>>> arf = create_arf(egrid[:-1], egrid[1:])

Create an ARF that has 10 percent more area than the ARF from the default data set:

>>> arf1 = get_arf()
>>> elo = arf1.energ_lo
>>> ehi = arf1.energ_hi
>>> y = 1.1 * arf1.specresp
>>> arf2 = create_arf(elo, ehi, y, exposure=arf1.exposure)