XSModel

class sherpa.astro.xspec.XSModel(name, pars=())[source] [edit on github]

Bases: sherpa.models.model.RegriddableModel1D

The base class for XSPEC models.

It is expected that sub-classes are used to represent the five different types of XSPEC model (additive, multiplicative, convolution, pile up, mixing, and tables), although not all are currently supported in Sherpa.

Notes

The XSPEC models are evaluated on a one-dimensional, integrated, contiguous grid. When the calc method is called with both low and high bin values, the arrays are converted into a single array matching the XSPEC calling convention - that is elo_0, elo_1, …, elo_n for n bins (so the last value is the upper edge of the last bin) - adding in any bins to account for a non-contiguous input. This array is used to evaluate the model, and then the return value is created by removing any extra bins that had to be added to account for non-contiguous input values.

If used on an unbinned dataset, so only one array is sent to calc, then the input values are taken to match the XSPEC calling convention - i.e. a contiguous grid where the last element represents the upper edge of the last bin. This means that for an input grid of n points, the returned array will contain n values, but the last element will be zero.

Attributes Summary

cache

The maximum size of the cache.

ndim

A one-dimensional model.

thawedparhardmaxes

The hard maximum values for the thawed parameters.

thawedparhardmins

The hard minimum values for the thawed parameters.

thawedparmaxes

Access to the maximum limits for the thawed parameters

thawedparmins

Access to the minimum limits for the thawed parameters

thawedpars

Access to the thawed parameters of the model

version_enabled

Methods Summary

apply(outer, *otherargs, **otherkwargs)

cache_clear()

Clear the cache.

cache_status()

Display the cache status.

calc(*args, **kwargs)

Calculate the model given the parameters and grid.

get_center()

guess(dep, *args, **kwargs)

Set an initial guess for the parameter values.

regrid(*args, **kwargs)

The class RegriddableModel1D allows the user to evaluate in the requested space then interpolate onto the data space.

reset()

Reset the parameter values.

set_center(*args, **kwargs)

startup([cache])

Called before a model may be evaluated multiple times.

teardown()

Called after a model may be evaluated multiple times.

Attributes Documentation

cache = 5

The maximum size of the cache.

ndim = 1

A one-dimensional model.

thawedparhardmaxes

The hard maximum values for the thawed parameters.

thawedparhardmins

The hard minimum values for the thawed parameters.

thawedparmaxes

Access to the maximum limits for the thawed parameters

thawedparmins

Access to the minimum limits for the thawed parameters

thawedpars

Access to the thawed parameters of the model

version_enabled = True

Methods Documentation

apply(outer, *otherargs, **otherkwargs) [edit on github]
cache_clear() [edit on github]

Clear the cache.

cache_status() [edit on github]

Display the cache status.

Information on the cache - the number of “hits”, “misses”, and “requests” - is displayed at the INFO logging level.

Example

>>> pl.cache_status()
 powlaw1d.pl                size:    5  hits:   633  misses:   240  check=  873
calc(*args, **kwargs)[source] [edit on github]

Calculate the model given the parameters and grid.

Notes

XSPEC models must always be evaluated with low and high bin edges. Although supported by the XSPEC model interface the ability to evaluate using an XSPEC-style grid (n+1 values for n bins which we pad with a 0), we do not allow this here since it complicates the handling of the regrid method.

Keyword arguments are ignored.

get_center() [edit on github]
guess(dep, *args, **kwargs) [edit on github]

Set an initial guess for the parameter values.

Attempt to set the parameter values, and ranges, for the model to match the data values. This is intended as a rough guess, so it is expected that the model is only evaluated a small number of times, if at all.

regrid(*args, **kwargs) [edit on github]

The class RegriddableModel1D allows the user to evaluate in the requested space then interpolate onto the data space. An optional argument ‘interp’ enables the user to change the interpolation method.

Examples

>>> import numpy as np
>>> from sherpa.models.basic import Box1D
>>> mybox = Box1D()
>>> request_space = np.arange(1, 10, 0.1)
>>> regrid_model = mybox.regrid(request_space, interp=linear_interp)
reset() [edit on github]

Reset the parameter values.

set_center(*args, **kwargs) [edit on github]
startup(cache=False) [edit on github]

Called before a model may be evaluated multiple times.

Parameters

cache (bool, optional) – Should a cache be used when evaluating the models.

See also

teardown

teardown() [edit on github]

Called after a model may be evaluated multiple times.

See also

startup